KOMUNIKASI SERIAL ARDUINO UNO DENGAN KEYBOARD DAN PUSH BUTTON
A. Alat dan Bahan
1. Arduino UNO (1 buah)
2. Potensio/VR 100k (1 buah)
3. Resistor 330Ohm (5 buah)
4. LED (9 buah)
5. Kabel Jumper Mele (18 buah)
6. Push Button (2 buah)
7. Protoboard (2 buah)
8. Seperangkat PC
9. Kabel Data Arduino Uno
B. Tujuan
Untuk melatih siswa - siswi SMK LEONARDO agar lebih tangkas dalam memprogram arduino uno dengan logika - logika tertentu.
C. Cara Kerja
1. Jika push button 1 ditekan maka led akan menyala secara running dan led indikator push button 1 akan menyala.
2. Jika push button 2 ditekan maka led akan menyala secara flip - flop dan led indikator push button 2 akan menyala.
3. Saat serial port menerima huruf "r" dari keyboard maka led akan menyala secara running dan led indikator akan menyala. (seperti cara kerja 1)
4. Saat serial port menerima huruf "f" dari keyboard maka led akan menyala secara flip - flop dan led indikator akan menyala. (seperti cara kerja 2)
D. Langkah Kerja
1. Hidupkan Komputer
2. Siapkan alat dan bahan lainnya
3. Buka program arduino uno yang ada pada desktop
4. Lalu tuliskan program yang akan digunakan.
#define PB A0
#define PBdua A1
#define POT A2
int kondisiPOT = 0;
int kondisiPB = 0;
int kondisiPBdua = 0;
int dataserial = 0;
#define led1 2
#define led2 3
#define led3 4
#define led4 5
#define led5 6
#define led6 7
#define led7 8
#define ledPB 9
#define ledPBdua 10
void setup() {
Serial.begin(9600);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
pinMode(led7,OUTPUT);
pinMode(ledPB,OUTPUT);
pinMode(ledPBdua,OUTPUT);
}
void loop(){
looping:
digitalWrite(led4,LOW);
digitalWrite(led3,LOW);
digitalWrite(led2,LOW);
digitalWrite(led1,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(ledPB,LOW);
digitalWrite(ledPBdua,LOW);
dataserial = Serial.read();
kondisiPB = digitalRead(PB);
kondisiPBdua = digitalRead(PBdua);
Serial.print("UBAH KONDISI");
Serial.println();
delay(300);
if (kondisiPB == HIGH){
digitalWrite(ledPB,HIGH);
Serial.print("PB Satu di Tekan");
Serial.println();
RunLed(); }
if (kondisiPBdua == HIGH){
digitalWrite(ledPBdua,HIGH);
Serial.print("PB Dua di Tekan");
Serial.println();
Flipflop(); }
if (dataserial == 'r'){
digitalWrite(ledPB,HIGH);
Serial.print("keyboard r di Tekan");
Serial.println();
RunLed(); }
if (dataserial == 'f'){
digitalWrite(ledPBdua,HIGH);
Serial.print("keyboard f di Tekan");
Serial.println();
Flipflop();}
}
void RunLed(){
digitalWrite(ledPBdua,LOW);
kondisiPOT = analogRead(POT)+50;
dataserial = Serial.read();
kondisiPB = digitalRead(PB);
kondisiPBdua = digitalRead(PBdua);
digitalWrite(led4,LOW);
digitalWrite(led3,LOW);
digitalWrite(led2,LOW);
digitalWrite(led1,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
if (kondisiPBdua == HIGH){
digitalWrite(ledPB,LOW);
Serial.print("PB dua di tekan");
Serial.println();
Flipflop(); }
if (dataserial == 'f'){
digitalWrite(ledPB,HIGH);
Serial.print("keyboard f di tekan");
Serial.println();
Flipflop(); }
digitalWrite(led1,HIGH);
digitalRead(kondisiPBdua);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
digitalWrite(led1,LOW);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
digitalWrite(led2,HIGH);
digitalRead(kondisiPBdua);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
digitalWrite(led2,LOW);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
digitalWrite(led3,HIGH);
digitalRead(kondisiPBdua);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
digitalWrite(led3,LOW);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
digitalWrite(led4,HIGH);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
digitalWrite(led4,LOW);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
digitalWrite(led5,HIGH);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
digitalWrite(led5,LOW);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
digitalWrite(led6,HIGH);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
digitalWrite(led6,LOW);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
digitalWrite(led7,HIGH);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
digitalWrite(led7,LOW);
delay(kondisiPOT);
kondisiPOT = analogRead(POT)+50;
if (kondisiPBdua == HIGH){
digitalWrite(ledPB,LOW);
Serial.print("PB dua di tekan");
Serial.println();
Flipflop(); }
if (dataserial == 'f'){
digitalWrite(ledPB,HIGH);
Serial.print("keyboard f di tekan");
Serial.println();
Flipflop(); }
RunLed();
}
void Flipflop(){
digitalWrite(ledPB,LOW);
dataserial = Serial.read();
kondisiPB = digitalRead(PB);
kondisiPBdua = digitalRead(PBdua);
digitalWrite(ledPBdua,HIGH);
digitalWrite(led4,LOW);
digitalWrite(led3,LOW);
digitalWrite(led2,LOW);
digitalWrite(led1,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
kondisiPOT = analogRead(POT)+100;
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
delay(kondisiPOT);
digitalWrite(led7,HIGH);
digitalWrite(led6,HIGH);
digitalWrite(led5,HIGH);
digitalWrite(led3,LOW);
digitalWrite(led2,LOW);
digitalWrite(led1,LOW);
delay(kondisiPOT);
if (kondisiPB == HIGH){
digitalWrite(ledPB,HIGH);
Serial.print("PB Satu di Tekan");
Serial.println();
RunLed();}
if (dataserial == 'r'){
digitalWrite(ledPB,HIGH);
Serial.print("keyboard r di tekan");
Serial.println();
RunLed();
}
Flipflop();
}
5. Compile program dengan menekan CTRL + R.
6. Rangkai led, potensio, reistors, arduino, pada protoboard.
7. Sambungkan bahan - bahan tersebut dengan kabel jamper mele.
8. Sambungkan arduino dengan kabel data arduino pada komputer
9. Periksa COMM pada softwere arduinoIDE.
10. Setelah arduino terhubung dengan COMM, Upload pprogram tersebut dengan menekan
CTRL + U]
E. Hasil Kerja