Loading...
OUR BLOG

Kawal LED menggunakan Potentiometer dengan NodeMCU ESP8266

Pada tutorial sebelum ini, kami dah tunjukkan bagaimana nak kawal LED menggunakan PWM. Tapi kalini, objektif dia sama je macam sebelum ini untuk mengawal terang malap LED, tetapi dengan menggunakan Potentiometer dan fungsi map() pada NodeMCU ESP8266. Jadi, sebelum kita bermula, saya akan terangkan serba sedikit fungsi potentiometer. 

 

Potentiometer dalam bahasa melayu adalah “Perintang boleh laras” yang mana ia berfungsi seperti resistor yang boleh mengawal nilai voltage. Apabila kita pusing knob pada potentiometer, ia boleh mengurangkan atau meningkatkan nilai resistance pada litar kita.

 

 

Untuk tutorial ini, komponen yang akan kita gunakan adalah:

 

i. Potentiometer

ii. LED

iii. NodeMCU ESP8266

iv. Jumper

v. Breadboard

 

Ikuti langkah-langkah ini:

1. Sambungkan Litar

Sambungan litar perlulah dibuat terlebih dahulu. Anda boleh ikut cara sambungan litar seperti ini:

p/s: Pemilihan board nodeMCU pada Arduino IDE anda adalah bergantung kepada jenis NodeMCU ESP8266 yang anda gunakan.

Pastikan GROUND pada potentiometer dan LED disambung pada pin ground NodeMCU ESP8266 board anda.

 

Cara untuk kita sambungkan kaki potentiometer:

 

Disebabkan potentiometer berfungsi untuk menghantar nilai analog, jadi kaki signal perlulah disambungkan pada Analog pin untuk dapat nilai yang lebih tepat. Jika anda sambungkan kaki signal potentiometer pada digital pin, nilai yang anda akan dapat adalah sama ada HIGH atau LOW sahaja. Anda boleh search berkenaan Analog dan Digital pin untuk ketahui lebih lanjut.

 

2. Sambungkan NodeMCU ESP8266 pada USB komputer

 

3. Memulakan sketch/code untuk LED kawal guna potentiometer

 

Anda boleh paste atau tulis semula code yang saya berikan dalam Arduino IDE anda.

 

void setup() {

  Serial.begin(9600);//jika menggunakan Serial.print kena ada Serial.begin

                     //digunakan untuk set up berapa cepat data dihantar dalam bits per second

  pinMode(A0, INPUT);//declare analog pin yang digunakan pada board. 

                     //untuk analog, terpulang pada anda nak declare atau tidak.

  pinMode(D4, OUTPUT);//declare LED pin 

}


void loop() {

  

  int valbefore = analogRead(A0); //baca analog pin A0

  int valafter = map(valbefore, 0, 1023, 0, 255);//mapping kan balik value yang kita 

            //dapat pada value yang kita nak

            //valbefore = baca analog pin A0

            //0 = INPUT nilai terendah yang kita nak map pada potentiometer 

            //1023 = INPUT nilai tertinggi pada potentiometer 

            //0 = OUTPUT nilai terendah pada LED 

            //255 = OUTPUT nilai tertinggi pada LED 


  analogWrite(D4, valafter);//baca LED dan value after


  Serial.println("before");//display pada serial monitor

  Serial.println(valbefore);//display nilai value before pada serial monitor

  Serial.println("after");//display pada serial monitor

  Serial.println(valafter);//display nilai value after pada serial monitor

  delay(1000);// delay selama 1 saat


}

 

 

 

Apa fungsi map() dalam code kita?

 

map(nilai, fromLow, fromHigh, toLow, toHigh)

 

Map() ni berfungsi untuk mapping kan value yang kita dapat pada value yang kita nak. Map() ni hanya menerima nilai dalam int sahaja sama ada positive atau negative. Jadi, dalam code kita nak kawal terang malap LED yang mana, pada LED kita set kan 0 (toLow) ~ 255 (toHigh) untuk output LED. Dan pada potentiometer pula 0 (fromLow) ~ 1023 (fromHigh) nilai INPUT. Jadi, apabila potentiometer dipusing pada nilai paling tinggi iaitu 1023, LED menyala paling terang iaitu pada nilai 255. Jika potentiometer dipusingkan pada nilai 0, maka LED akan paling malap pada nilai 0 juga.

 

Jika anda sudah selesai paste atau menaip semula code yang saya berikan, anda boleh tekan butang verify untuk memeriksa code anda, ada kesalahan ataupun tidak. Jika code anda tiada masalah, anda boleh teruskan tekan butang upload untuk upload code dalam board anda.

 

Apabila code sudah selesai di upload dalam board, anda boleh tekan serial monitor pada tab bahagian atas belah kanan. Seperti yang saya highlight pada gambar Arduino IDE diatas.

 

Output yang anda akan dapat adalah seperti ini:

 

 

Ini output yang akan display pada serial monitor anda. Anda boleh lihat dalam gambar dibawah output yang anda akan dapat apabila anda memusingkan knob potentiometer sampai habis, akan dapat value sebelum adalah 1024 dan selepas adalah 255. Value yang dipaparkan adalah mengikut gerakan pusingan knob potentiometer sama ada dari nilai tinggi ke rendah atau rendah ke tinggi.

 

 

Output ini pula untuk nilai paling rendah yang kita declare iaitu 0. Jika output anda tidak dapat nilai tepat 0 seperti yang telah kita declare dalam code, dan nilai yang anda dapat adalah dalam range 0 - 10, tidak mengapa. Kerana, ia masih jugak dalam range rendah. Bila buat sambungan komponen pada litar, anda perlu memastikan sambungan kaki potentiometer dan LED pada NodeMCU ESP8266 adalah betul.

 

 

Selain resistor, Potentiometer adalah salah satu komponen yang mudah untuk kita gunakan bagi mengawal nilai voltage pada circuit kita. 

 

Anda terlepas tutorial kami sebelum ini? Boleh tengok dekat blog kami. Jangan lupa untuk follow Facebook dan Instagram kami, kat situ ada bermacam info dan update terkini yang akan kami kongsikan kepada anda. Itu sahaja untuk tutorial kami. Stay update dan selamat mencuba!

 

Unsure Whether You Need Our Help?

Have you got an awesome new idea or project that you want to talk about? We're here to talk you through it. Flick us an email or give us a call to get started.