KEBUTUHAN PERANGKAT
- Arduino (uno)
- LED (12 buah)
- Resistor 220 ohm maks 1 kilo-ohm (12 buah)
- kabel jumper (warna-warni)
- Untuk menghubungkan 1 buah LED ke arduino, silakan lihat tutorial Blinking LED. Silakan duplikat rangkaian LED tsb hingga berjumlah 12 buah rangkaian. Masing2 kaki positif-nya dihubungkan ke pin digital D2 hingga D13. Pin D0 dan D1 tidak dapat digunakan sebagai output dikarenakan sudah memiliki fungsi khusus sebagai RX dan TX.
Lihat rangkaian skematik di Blinking LED.
KODE
Setelah membuat rangkaian sirkuitnya:
- sambungkan Arduino ke komputer
- jalankan Arduino Software (IDE). Jika belum terinstal, silakan didownload disini.
- masukkan kode berikut:
//#define _CDEBUG_ // uncomment for DEBUGGINGVIDEO
#define LED_NUM 12
int aLedPin[LED_NUM] = {13,12,11,10,9,8,7,6,5,4,3,2}; // PIN D0 & D1 can not be set as OUTPUT because of dedicated function as RX & TX
int i = 0, iPos = 0;
int iDir = 1;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
for (i=0; i<LED_NUM; i++) {
pinMode(aLedPin[i], OUTPUT);
digitalWrite(aLedPin[i], LOW);
}
}
void loop() {
// test all LEDs are blinking simulatenously?
//LEDAllBlinks(); // uncomment to display blinking 12-LEDs
// knight rider led
LEDKnightRider(); // uncomment to display Knight Rider LED (using 12 LEDs)
}
void LEDKnightRider() {
#ifdef _CDEBUG_
Serial.println(iPos);
#endif
digitalWrite(aLedPin[iPos], HIGH);
delay(50);
digitalWrite(aLedPin[iPos], LOW);
iPos = iPos + iDir;
if ((iPos == LED_NUM - 1) || (iPos == 0)) {
iDir = iDir * -1;
}
}
void LEDAllBlinks() {
for (i=0; i<LED_NUM; i++) {
digitalWrite(aLedPin[i], HIGH);
}
delay(1000);
for (i=0; i<LED_NUM; i++) {
digitalWrite(aLedPin[i], LOW);
}
delay(1000);
}
Berikut adalah video hasil tutorial diatas:
12-LEDs are blinking simultaneously
Knight Rider LED (12-LEDs)
SUMBER
https://www.arduino.cc/en/Tutorial/Blink
Selamat mencoba!
No comments:
Post a Comment