You are on page 1of 55

LOGO

UNIV/
POLTEK

DTS 2019
Internet of Things
Pertemuan-13
Aktuator

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

1
Interfacing Motor DC
dengan NodeMCU

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Pendahuluan

• Motor DC menggunakan Direct Current (energi listrik) untuk menghasilkan gerakan mekanis
yaitu gerakan rotasi. Ketika mengubah energi listrik menjadi energi mekanik maka itu disebut
sebagai motor DC dan ketika mengubah energi mekanik menjadi energi listrik maka disebut
sebagai generator DC.

• Prinsip kerja motor DC didasarkan pada kenyataan


bahwa ketika konduktor pembawa arus ditempatkan
dalam medan magnet, ia mengalami gaya mekanik
dan mulai berputar. Arah rotasi tergantung pada
Aturan Tangan Kiri Fleming.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Motor DC memiliki dua bagian utama,


1.Stator - Bagian statis dari motor.
2.Rotor - Memutar bagian motor.
• Kutub Selatan dan Utara magnet permanen atau Electromagnet adalah bagian stator motor DC dan armature yang
terhubung dengan komutator memutar bagian dari motor DC.
• Kutub Selatan dan Utara digunakan untuk membuat medan magnet seperti yang ditunjukkan pada gambar.
• Armature adalah bahan konduksi yang ditempatkan di antara medan magnet yang diproduksi oleh kutub Utara &
Selatan.

• Arus (i) yang ditunjukkan pada gambar mengalir melalui Armature.


• Brushes digunakan untuk melampirkan pasokan DC ke Armature
melalui komutator.
• Komutator memiliki segmen yang melekat pada masing-masing
ujung Armature. Oleh karena itu, komutator juga berputar dengan
Armature. Brushes adalah bagian stator yang selalu berhubungan
dengan komutator

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Pengendalian Kecepatan Motor DC


Kecepatan (N) motor DC diukur dalam RPM (Rotasi Per Menit) dan
diberikan oleh,
N = 60AE / PZ Φ
dimana,
                        E = Back EMF                        A = Jalur
paralel
                        Z = Jumlah konduktor jangkar                 P = Jumlah
poles
                        Φ = Fluks Dari parameter kontrol kecepatan di atas, kita dapat

Konstanta K = 60A / PZ menemukan bahwa V dan RA terkait dengan rangkaian

Back EMF E = V - IARA jangkar dan Φ terkait dengan medan magnet, maka mereka

Karenanya, kecepatan N = K * (V - IARA) / Φ diklasifikasikan sebagai,

Kecepatan motor DC dapat dikontrol melalui, • Armature control method

• Tegangan terminal armature yaitu V • Field control method

• Perlawanan eksternal dengan jangkar yaitu RA Kita dapat memvariasikan V di terminal motor dengan

• Fluks bidang yaitu Φ menggunakan metode PWM.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
Teknik Modulasi Lebar Pulsa
Pulse Width Modulation adalah teknik populer untuk mengendalikan kecepatan motor DC. Teknik ini
mengontrol tegangan rata-rata (V) yang diterapkan pada terminal motor DC dengan cara lebar pulsa
seperti yang ditunjukkan pada gambar di bawah ini

• TON adalah waktu untuk sinyal yang TINGGI


dan TOFF adalah waktu untuk yang RENDAH. 
• Jadi tegangan terminal berlaku untuk motor DC
hanya untuk periode TON (ON).
Misalnya
• Jika PWM dengan siklus kerja 50% , akan
memberikan tegangan rata-rata %50% ke
terminal motor..
• Duty cycle yang lebih tinggi memberikan
kecepatan yang lebih tinggi dan duty cycle yang
lebih rendah memberikan kecepatan yang lebih
rendah.
digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Motor DC Dua Arah Menggunakan Konfigurasi H-Bridge


• Memutar motor DC di kedua arah (Searah jarum jam / berlawanan arah jarum jam)
dengan hanya mengubah polaritas terminal mereka. 
• Kita dapat mengendalikan arah motor DC dengan menggunakan konsep H-Bridge
• Karena semua sakelar MATI, Motor tetap terputus yaitu MATI.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

• Motor DC mengubah energi listrik dalam bentuk Arus Searah menjadi energi mekanik
dalam bentuk gerakan rotasi poros motor.
• Kecepatan motor DC dapat dikontrol dengan menerapkan tegangan DC yang bervariasi
dengan menggunakan teknik PWM
• Arah putaran motor dapat diubah dengan membalikkan arah arus yang melaluinya
dengan menggunakan sirkuit H-Bridge atau IC driver motor yang menggunakan teknik
H-Bridge.
• ESP8266 berbasis NodeMCU dapat digunakan untuk mengontrol kecepatan dan arah
putaran Motor DC karena fitur PWM pada pin GPIO-nya yang dapat digunakan untuk
mengendalikan motor DC

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
• Potensiometer digunakan sebagai sarana untuk
mengontrol kecepatan dengan fitur ADC yang
dimiliki
• Input dari sakelar taktil digunakan untuk
mengubah arah motor dengan fitur interupsi GPIO

• Driver motor IC L293D digunakan untuk


mengendalikan arah motor. Gelombang PWM
yang dihasilkan pada NodeMCU digunakan untuk
memberikan tegangan variabel ke motor melalui
L293D

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
bool d1 = HIGH;
bool d2 = LOW;
Sketsa Arduino void motor_direction()
{
untuk Motor DC d1 = !d1;
d2 = !d2;
for(inti = 0; i<10000; i++)
for(int j =0; j<10000; j++);
}
void setup()
{
Serial.begin(9600);
pinMode(D5, OUTPUT); /* PWM pin for Speed Control */
pinMode(D6, OUTPUT); /* Motor control pin 1 */
pinMode(D7, OUTPUT); /* Motor control pin 2 */
pinMode(D8, INPUT_PULLUP); /* Interrupt pin for direction control */
attachInterrupt(D8, motor_direction, HIGH);
/* call motor direction function on HIGH level at pin 8 */
}
void loop()
{
intpwm_adc;
pwm_adc = analogRead(A0); /* Input from Potentiometer for speed control */
digitalWrite(D6,d1);
digitalWrite(D7,d2);
analogWrite(D5,pwm_adc);
delay(100);
digitalent.kominfo.go.id }
LOGO
UNIV/
POLTEK

Praktek Motor DC dengan NodeMCU

Bahan dan Alat yang dibutuhkan


• Motor DC 6V :1
• L293D Driver :1
• EPS8266 :1
• Kabel mini USB :1
• Beardboard :1

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Langkah Percobaan
1. Buatlah rangkaian seperti gambar
2. Jalankan program Arduino Anda
3. Buatlah software seperti pada teori di atas dan simpan dengan
memberi nama sesuai keinginan anda
4. Hubungkan kabel mini USB ke laptop anda
5. Isikan program Arduino anda
6. Putar potensiometer sampai motor DC berputar
7. Kemanakah arah gerakan motor DC nya?
8. Jika push button ditekan, kemanakah arah gerakan motor DC nya
9. Apakah pengaruh dari potensiometer?

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

2
Interfacing Motor Servo
dengan NodeMCU

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK Pendahuluan
• Servo motor adalah perangkat listrik yang dapat digunakan untuk memutar objek (seperti lengan robot) secara
tepat.
• Terdiri dari motor DC dengan mekanisme umpan balik negatif pengindraan kesalahan. Ini memungkinkan
kontrol yang presisi atas kecepatan sudut dan posisi motor. Dalam beberapa kasus, motor AC digunakan.
• Sistem loop tertutup di mana ia menggunakan umpan balik negatif untuk mengontrol gerak dan posisi akhir
poros.
• Tidak digunakan untuk rotasi terus menerus seperti motor AC / DC konvensional.
• Memiliki sudut rotasi yang bervariasi dari 0 ° hingga 180 °.

• ESP8266 berbasis NodeMCU dapat digunakan untuk


mengontrol motor servo karena memiliki fitur PWM
pada GPIO-nya

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
• Posisi motor servo dikendalikan oleh sinyal modulasi lebar pulsa (PWM). 
• Lebar pulsa sinyal kontrol digunakan untuk mengubah posisi poros motor servo. 
• Variasikan SG90 Micro rotasi motor servo sudut di antara 0 ° hingga 180 ° sudut dengan sinyal
PWM seperti yang ditunjukkan pada gambar di bawah ini.

• PWM frekuensi 50Hz dengan variasi TON


dari 1ms ke 2ms. Motor servo berputar 90 ° ke
arah mana pun dari posisi tengahnya sehingga
memberikan kontrol atas 180 ° putarannya.
• Pada ~ 1ms (siklus kerja 5%) kami
mendapatkan posisi poros pada -90 °
putarannya.

• Pada 1,5ms (7,5% siklus kerja) kami mendapatkan posisi poros pada 0 ° (netral) dari rotasinya.
• Pada ~ 2ms (10% duty cycle) kami mendapatkan posisi poros pada + 90 ° putarannya.
digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
Library motor Servo
hadir bersama dengan
Arduino IDE dengan
paket ESP8266. Untuk
membuka contoh Servo,
buka File -> Example ->
Servo (esp8266) ->
Sweep seperti yang
ditunjukkan pada
Gambar.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

• Potensiometer digunakan sebagai sarana untuk


mengontrol posisi poros motor servo dengan
memanfaatkan fitur ADC dari NodeMCU

• Untuk motor servo, sinyal PWM 50Hz dibuat pada pin


D2 NodeMCU. 
• Untuk mengontrol posisi poros motor servo dalam 180
derajat, diperlukan duty cycle PWM dalam 5% hingga
10%. 
• Didapatkan beberapa nilai praktis dari duty cycle PWM
yang bervariasi dari 2,5% hingga 10,75% untuk
mengontrol posisi poros motor servo dalam 180 derajat

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
Sketsa Arduino untuk servo
uint8_t ServoMotorpin = D2;
void setup()
{
analogWrite(ServoMotorpin, 512);
analogWriteFreq(50); /* Set PWM frequency to 50Hz */
}
void loop()
{
uint16_t dutycycle= analogRead(A0); /* Read potentiometer to control servo motor */
if(dutycycle> 1023) dutycycle = 1023;
dutycycle = 25+((85*dutycycle/1023)); /* make it in range 20 to 110 */
analogWrite(ServoMotorpin, dutycycle); /* Write duty cycle to pin */
delay(100);
}

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Praktek Motor Servo dengan NodeMCU

Bahan dan Alat yang dibutuhkan


• Motor Servo 5V :1
• Potensiometer :1
• EPS8266 :1
• Kabel mini USB :1
• Beardboard :1

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Langkah Percobaan
1. Buatlah rangkaian seperti gambar
2. Jalankan program Arduino Anda
3. Buatlah software seperti pada teori di atas
dan simpan dengan memberi nama sesuai
keinginan anda
4. Hubungkan kabel mini USB ke laptop anda
5. Isikan program Arduino anda
6. Putar potensiometer sampai motor
servo berubah posisi ke kanan dan
ke kiri
7. Apakah pengaruh dari
potensiometer?

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

3
Interfacing Motor Stepper
dengan NodeMCU

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Pendahuluan
• Stepper Motor adalah Motor DC brushless. 
• Sinyal kontrol diterapkan ke motor stepper untuk memutarnya secara bertahap.
• Kecepatan putarannya bergantung pada kecepatan penerapan sinyal kontrol. 
• Ada berbagai motor stepper yang tersedia dengan sudut langkah minimum yang disyaratkan.
• Motor stepper terutama terdiri dari dua bagian, stator dan rotor. 
• Stator terbuat dari gulungan koil
• Rotor adalah magnet permanen atau bahan feromagnetik.

Arus yang mengalir melalui belitan menciptakan kutub Utara


dan Selatan yang magnetis pada koil. Jika kita membungkus
jari tangan kanan kita di sekitar kumparan ke arah arus yang
mengalir melalui kumparan, maka arah ibu jari menunjukkan
Kutub Utara magnetik.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
Sekarang jika kita memberi energi pada belitan B, itu akan

Dua belitan, A dan B adalah stator motor. Magnet membuat kutub Utara dan Selatan pada belitan B seperti

permanen yang memiliki kutub Utara dan Selatan yang ditunjukkan pada gambar di bawah ini, akan menarik

adalah rotor motor. kutub berlawanan magnet ke arah itu. Ini menyebabkan rotor
(magnet permanen) berputar dengan langkah.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
Sekarang, sama untuk lilitan A, jika kita memberi energi lilitan A, maka kutub yang tidak sama akan
tertarik dan membuat langkah seperti yang ditunjukkan pada gambar di bawah ini.

Dengan cara ini, kami dapat memberikan urutan langkah-langkah untuk membuat rotasi.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
Sudut Langkah
• Sudut langkah adalah sudut minimum yang akan ditutupi oleh motor stepper dalam satu gerakan /
langkah. 
• Jumlah langkah yang diperlukan untuk menyelesaikan satu rotasi tergantung pada sudut langkah. 
• Misalnya, jika sudut langkah 45 ° maka 8 langkah diperlukan untuk menyelesaikan satu rotasi
seperti yang ditunjukkan pada gambar di bawah ini.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
Motor Stepper Unipolar
• Unipolar Stepper Motor mempunyai 5 kabel (Jika kedua pusat terhubung secara internal) atau 6 kabel seperti yang
ditunjukkan pada gambar di bawah ini.
• Secara umum, koneksi yang common ini terhubung ke catu daya.
• Dengan menyediakan jalur common ke sadapan belitan, dapat memungkinkan aliran arus melalui setiap setengah
koil yang menghasilkan kutub magnet. 
• Dengan mengubah kutub secara berurutan, kita dapat memutar rotor.

Arus searah dalam motor unipolar.


• Karena tap tengah, setiap belitan dibagi yaitu
arus mengalir melalui setengah belitan.
• Karena pengaturan tap pusatnya, kita tidak
perlu mengubah arah arus untuk mengubah
kutub magnet pada belitan. 
• Di sini kita hanya perlu mengubah koneksi
ground pada ujung yang berliku.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Motor Bipolar Stepper


• Bipolar stepper Motor tidak memiliki koneksi keran tengah. 
• Biasanya itu dari dua gulungan yaitu 4 ujung kawat seperti yang ditunjukkan pada gambar di bawah
ini.
Arus mengalir melalui belitan penuh stator.
• Arus adalah dua arah dalam motor stepper Bipolar yaitu kita perlu mengubah arah arus melalui
belitan untuk mengubah kutub magnet belitan itu.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Cara Memutar Motor Stepper


Motor stepper berputar dalam langkah-langkah dan untuk rotasi sudut kontinu atau terbatas kita perlu
memberikan langkah-langkah berurutan. Sebagian besar ada dua urutan langkah yang digunakan untuk
memutar Stepper Motor seperti yang ditunjukkan pada gambar di bawah ini yaitu
Urutan Langkah Penuh
                   Di sini motor bergerak melalui sudut langkah dasarnya.
                   Pada suatu waktu dua gulungan aktif.
Setengah Langkah Urutan
                    Di sini motor bergerak setengah dari sudut langkah dasarnya.
                    Setengah langkah dapat dicapai dengan menarik koil saat ini dan berikutnya.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Full Step

Langkah A B C D
1 1 0 0 1
2 1 1 0 0
3 0 1 1 0
4 0 0 1 1

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Half Step

Langkah A B C D
1 1 0 0 1
2 1 0 0 0
3 1 1 0 0
4 0 1 0 0
5 0 1 1 0
6 0 0 1 0
7 0 0 1 1
8 0 0 0 1
digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

• Memutar motor stepper searah jarum jam dan berlawanan arah jarum jam.
• Menggunakan motor stepper unipolar enam kabel. 
• Hanya empat kabel yang diperlukan untuk mengendalikan motor stepper ini. 
• Dua kabel common dari motor stepper terhubung ke tegangan 5V.
• Driver ULN2003 digunakan untuk menggerakkan motor stepper unipolar.

Catatan: Untuk menemukan kumparan lilitan dan common nya, ukur tahanan di antara terminal. Dari lead tengah
kita akan mendapatkan setengah nilai resistansi dibandingkan dengan resistansi antara ujung belitan.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
Sketsa Arduino untuk Motor Stepper

uint8_t wire1 = D8;


uint8_t wire2 = D7;
uint8_t wire3 = D6;
uint8_t wire4 = D5;
const uint16_t _delay = 50; /* delay in between two steps. minimum delay more the rotational speed */
void sequence(bool a, bool b, bool c, bool d)
/* four step sequence to stepper motor */
{
digitalWrite(wire1, a);
digitalWrite(wire2, b);
digitalWrite(wire3, c);
digitalWrite(wire4, d);
delay(_delay);
}

void setup()
{
pinMode(wire1, OUTPUT); /* set four wires as output */
pinMode(wire2, OUTPUT);
pinMode(wire3, OUTPUT);
pinMode(wire4, OUTPUT);
}

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
void loop() /* Rotation in one direction */
{
for(int i = 0; i<12; i++)
{
sequence(HIGH, LOW, LOW, LOW);
sequence(HIGH, HIGH, LOW, LOW);

sequence(LOW, HIGH, LOW, LOW);


sequence(LOW, HIGH, HIGH, LOW);

sequence(LOW, LOW, HIGH, LOW);


sequence(LOW, LOW, HIGH, HIGH);

sequence(LOW, LOW, LOW, HIGH);


sequence(HIGH, LOW, LOW, HIGH);
}
sequence(HIGH, LOW, LOW, LOW);
/* Rotation in opposite direction */
for(int j = 0; j<12; j++)
{
sequence(LOW, LOW, LOW, HIGH);
sequence(LOW, LOW, HIGH, HIGH);

sequence(LOW, LOW, HIGH, LOW);


sequence(LOW, HIGH, HIGH, LOW);

sequence(LOW, HIGH, LOW, LOW);


digitalent.kominfo.go.id sequence(HIGH, HIGH, LOW, LOW);
LOGO
UNIV/
POLTEK

Praktek Motor Stepper dengan NodeMCU

Bahan dan Alat yang dibutuhkan


• Motor Stepper :1
• ULN2003 Driver :1
• EPS8266 :1
• Kabel mini USB :1
• Beardboard :1

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Langkah Percobaan
1. Buatlah rangkaian seperti gambar
2. Jalankan program Arduino Anda
3. Buatlah software seperti pada teori di atas
dan simpan dengan memberi nama sesuai
keinginan anda
4. Hubungkan kabel mini USB ke laptop
anda
5. Isikan program Arduino anda
6. Kemanakah gerakan dari motor stepper?
7. Buatlah software jika diinginkan motor
stepper bergerak ke kiri 90 derajat,
kembali ke tengah dan ke kanan 90 derajat
dengan metode half stepp
digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

4
Interfacing Display OLED
dengan NodeMCU

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
Pendahuluan

 OLED adalah dioda pemancar cahaya organik yang memancarkan cahaya sebagai respons terhadap
arus listrik. 
 Layar OLED berfungsi tanpa lampu latar sehingga dapat menampilkan tingkat hitam pekat. 
 Ukurannya kecil dan ringan dari Liquid Crystal Displays
 Layar 128x64 OLED adalah tampilan grafik dot matrix sederhana. 
 Memiliki 128 kolom dan 64 baris yang membuatnya menampilkan total 128x64 = 8192 piksel. 
 Dengan hanya menghidupkan / mematikan piksel ini, kita dapat menampilkan gambar grafis dari
bentuk apa pun di atasnya.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Layar 128x64 OLED


Layar OLED digerakkan oleh IC driver SSD1306. SSD1306 adalah driver CMOS OLED dengan pengontrol
untuk sistem tampilan grafis OLED dot-matrix. Karena penggunaan driver SSD1306, jumlah komponen
eksternal yang diperlukan dan konsumsi daya telah berkurang.
 Layar OLED digunakan untuk menampilkan teks, gambar, dan berbagai pola. Ini juga cocok untuk sub-
tampilan ponsel, pemutar MP3, kalkulator dll.
 Layar OLED memiliki 256 langkah untuk kontrol kecerahan.
 Layar OLED juga tersedia dengan resolusi berbeda seperti 128x32, 128x64. Tampilan OLED pada gambar
di atas memiliki resolusi 128x64 piksel.

Antarmuka yang tersedia untuk OLED


• 6800/8000 series Parallel Interface yang kompatibel
Pengiriman / penerimaan data 8-bit dapat dilakukan melalui jalur paralel yaitu D0-D7.
• Antarmuka I2C
Pengiriman / penerimaan data dapat dilakukan secara serial melalui jalur SDA.
• Serial Peripheral Interface
Pengiriman / penerimaan data dapat dilakukan secara serial melalui jalur SDI dan SDO.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Pin Display OLED


SDA (Data Serial):
SDA digunakan untuk mengirimkan data antara master dan slave. Data dan status
dikirim melalui SDA.
SCL (Serial Clock):
Pin ini mentransmisikan clock ke slave, SCL. Data akan dikirim ke perangkat lain
pada event tick clock. Hanya perangkat master yang memiliki kendali atas jalur
SCL ini
VCC:
Ini adalah pin catu daya tegangan + 3,3V. Pasokan lebih dari 3,3 V dapat merusak
layar.
GND:
Hubungkan ke GND catu daya.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
Alamat I2C tampilan OLED
Dalam antarmuka I2C, perangkat dikenali oleh alamat slave mereka. Tampilan OLED memiliki
format alamat pendukung seperti yang ditunjukkan pada gambar di bawah ini.

SA0 (Alamat Slave) bit:


 Bit ini menyediakan dua opsi alamat slave untuk dipilih.
R / W (Baca / Tulis) bit:
 Bit ini digunakan untuk menentukan mode operasi yaitu operasi menulis I2C atau membaca
I2C. 1 untuk operasi baca dan 0 untuk operasi tulis.
Sekarang jika bit SA0 adalah 0 , maka mikrokontroler dapat melakukan operasi baca / tulis dengan
tampilan OLED menggunakan alamat I2C di bawah ini.
 Alamat tulis I2C adalah 0x78
 Alamat baca I2C adalah 0x79
digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
Tampilan OLED dipetakan dengan GDDRAM dari SSD1306.

Struktur halaman GDDRAM dari SSD1306


GDDRAM (Graphics Display Data RAM) adalah
RAM statis yang sedikit dipetakan. Ini memegang
pola bit untuk ditampilkan.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Struktur piksel Layar OLED


 Ukuran GDDRAM adalah 128 x 64 bit dan dibagi menjadi delapan halaman, dari PAGE0 hingga
PAGE7, yang digunakan untuk tampilan matriks monokrom 128x64 dot
 Ketika byte data (D0-D7) ditulis ke dalam GDDRAM, semua baris data piksel dari halaman yang
sama dari kolom saat ini terisi. Bit data D0 ditulis di baris atas, sedangkan bit data D7 ditulis ke baris
bawah

Pemetaan Baris dan Kolom pada OLED


 Tampilan memiliki total 8 halaman, 64 baris dan 128 Kolom.
 Setiap halaman berisi 8 baris dan 128 kolom
 Tampilan memiliki total 128 kolom yang disebut sebagai segmen.
 Untuk menampilkan data di lokasi pertama, atur alamat halaman ke 0 dan alamat
kolom ke 0. Kita juga harus memilih alamat akhir halaman dan kolom.
 Alamat akhir maksimum halaman adalah 07H dan alamat kolom maksimum
adalah 7F H.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Atur Display Clock Divide Ratio / Frekuensi Oscillator (0xD5 h):


 Bit 3 hingga 0: Display Divide Ratio (D) Atur rasio pembagian untuk menghasilkan DCLK (Display
Clock) dari CLK. Rasio pembagian adalah dari 1 hingga 16, dengan nilai reset = 1.
 Bit 7 hingga 4: Tetapkan frekuensi osilator. Nilai 4-bit menghasilkan 16 pengaturan frekuensi yang
berbeda. Pengaturan standar adalah 1000b.
 
Setel Multiplex Ratio (0xA8 h):
 Perintah ini mengalihkan 63 mode multipleks default ke rasio multipleks apa pun, mulai dari 16 hingga
63.
 
Tetapkan Garis Mulai Tampilan (0x40 H ~ 0x7F H):
 Perintah ini mengatur register Baris Mulai Display untuk menentukan alamat awal RAM tampilan, dengan
memilih nilai dari 0 hingga 63. Dalam program kami, kami menetapkan ini ke nol dan memetakan baris
RAM 0 hingga COM 0.
 

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Atur Mode Pengalamatan Memori (0x20 H):


Ada tiga mode pengalamatan berbeda di SSD1306:
1. Mode pengalamatan halaman
2. Mode pengalamatan horizontal
3. Mode pengalamatan vertikal

1. Mode Pengalamatan Halaman :


 Dalam mode pengalamatan halaman, setelah RAM tampilan dibaca / ditulis, penunjuk
alamat kolom bertambah secara otomatis sebesar 1.                                                          
    
 Jika penunjuk alamat kolom mencapai alamat ujung kolom, penunjuk alamat kolom
diatur ulang ke alamat awal kolom tetapi penunjuk alamat halaman tidak mengarah ke
halaman berikutnya.
 Oleh karena itu, kita perlu mengatur alamat halaman dan kolom baru untuk mengakses
konten RAM halaman berikutnya.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

 Kita perlu mengatur dua bit lebih rendah ke '1' dan '0' untuk Mode Pengalamatan Halaman.

Address Pointer Gerakan mode pengalamatan halaman


Dalam mode pengalamatan halaman, langkah-langkah berikut diperlukan untuk menentukan lokasi
penunjuk akses RAM awal:
 Atur alamat mulai halaman dari lokasi tampilan target dengan perintah B0h ke B7h.
 Tetapkan alamat mulai kolom bawah pointer dengan perintah 00h ~ 0Fh.
 Tetapkan alamat kolom awal dari pointer dengan perintah 10h ~ 1Fh.
 
Misalnya, jika alamat halaman diset ke B2h, alamat kolom bawah adalah 03 dan alamat kolom atas adalah
10 , maka itu berarti kolom awal adalah SEG3 dari PAGE2. Pointer akses RAM terletak seperti yang
ditunjukkan pada Gambar. Byte data input akan ditulis ke dalam posisi RAM kolom 3.

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Contoh pengaturan penunjuk akses GDDRAM dalam Mode Pengalamatan Halaman

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

2. Mode Pengalamatan Horisontal:


 Dalam mode pengalamatan horizontal, setelah RAM tampilan dibaca / ditulis, penunjuk alamat kolom
bertambah secara otomatis sebesar 1.
 Jika penunjuk alamat kolom mencapai alamat ujung kolom, penunjuk alamat kolom diatur ulang ke alamat
awal kolom dan penunjuk alamat halaman meningkat sebesar 1.
 Ketika pointer kolom dan alamat halaman mencapai alamat akhir, pointer direset ke alamat mulai kolom dan
alamat mulai halaman
 Kita perlu mengatur dua digit terakhir ke '0' dan '0' untuk mode pengalamatan horizontal .

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
Mode Pengalamatan Vertikal:
 Dalam mode pengalamatan vertikal, setelah RAM tampilan dibaca / ditulis, penunjuk alamat halaman
meningkat secara otomatis sebesar 1.
 Jika penunjuk alamat halaman mencapai alamat ujung halaman, penunjuk alamat halaman diatur ulang
ke alamat mulai halaman dan penunjuk alamat kolom bertambah 1.
 Ketika pointer kolom dan alamat halaman mencapai alamat akhir, pointer direset ke alamat mulai kolom
dan alamat mulai halaman.
 Kita perlu mengatur dua digit terakhir ke '0' dan '1' untuk mode pengalamatan vertikal .

• Dalam data tampilan normal RAM membaca atau menulis dan mode pengalamatan horizontal / vertikal ,
langkah-langkah berikut diperlukan untuk menentukan lokasi penunjuk akses RAM:
 Setel kolom alamat mulai dan akhiri lokasi tampilan target dengan perintah 21j.
• Atur halaman mulai dan akhiri alamat lokasi tampilan target dengan perintah 22h
digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK
• Jika Anda menggunakan sketsa contoh, pastikan Anda menggunakan alamat perangkat I2C yang
sesuai. 
• Di library Adafruit, alamat perangkat yang digunakan adalah 0x3C atau 0x3D. 
• Gunakan salah satu dari alamat ini. Anda harus mencari tahu mana yang merupakan alamat perangkat
Anda. 
• Alamat ini bukan alamat perangkat 8-bit; itu adalah alamat yang dibentuk oleh 7-bit tanpa
mempertimbangkan bit baca atau tulis. Coba salah satu dari alamat ini, jika tidak berhasil, gunakan
yang lain

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Sketsa Arduino untuk NodeMCU


#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET D5 /* Object named display, of the class Adafruit_SSD1306 */
Adafruit_SSD1306 display(OLED_RESET);
#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
uint8_t s = 0, m = 0, h = 0;
void setup()
{
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); /* Initialize display with address 0x3C */
display.clearDisplay(); /* Clear display */
display.setTextSize(1); /* Select font size of text. Increases with size of argument. */
display.setTextColor(WHITE); /* Color of text*/
}
void loop()
{
updateWatch(); /* Every second increment clock and display */
delay(1000);
}

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

void updateWatch()
{
s = s + 1;
if (s == 60)
{
s = 0;
m = m + 1; void writeOLED()
} {
if (m == 60) char time[30];
{ display.clearDisplay(); /* Clear display */
m = 0; sprintf(time, "%02d:%02d:%02d", h, m, s);
h = h + 1; drawStr(50, 10, "Timer");
} drawStr(40, 30, time);
if (h == 13) drawStr(20, 50, "Electronic ITS");
h = 1; display.display();
writeOLED(); }
} void drawStr(uint8_t x, uint8_t y, char* str)
{
display.setCursor(x, y); /* Set x,y coordinates */
display.println(str);
}

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Praktek OLED Display dengan NodeMCU

Bahan dan Alat yang dibutuhkan


• Motor OLED Display :1
• EPS8266 :1
• Kabel mini USB :1
• Beardboard :1

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

Langkah Percobaan
1. Buatlah rangkaian seperti gambar
2. Jalankan program Arduino Anda
3. Buatlah software seperti pada teori di atas
dan simpan dengan memberi nama sesuai
keinginan anda
4. Hubungkan kabel mini USB ke laptop
anda
5. Isikan program Arduino anda
6. Display apakah yang anda lihat

digitalent.kominfo.go.id
LOGO
UNIV/
POLTEK

IKUTI KAMI

digitalent.kominfo
digitalent.kominfo
DTS_kominfo
Digital Talent Scholarship 2019

Pusat Pengembangan Profesi dan Sertifikasi


Badan Penelitian dan Pengembangan SDM
Kementerian Komunikasi dan Informatika
Jl. Medan Merdeka Barat No. 9
(Gd. Belakang Lt. 4 - 5)
Jakarta Pusat, 10110

digitalent.kominfo.go.id
digitalent.kominfo.go.id

You might also like