Selasa, 11 Oktober 2016

KOMUKASI SERIAL INPUT ARDUINO DENGAN PUSH BUTTON DAN KEYBOARD



I. Alat dan Bahan
   1. Led (9buah)
   2. Kabel jumper male (18buah)
   3. Resistor (5buah)
   4. ArduinoUNO (1buah)
   5. Potensio 100k (1buah)
   6. Push button (2buah)
   7. Protoboard (1buah)
   8. Seperangkat PC 
   9. Kabel data Arduino UNO

II. Tujuan
    * Untuk melatih siswa dalam memprogram Arduino dan mengetahui fungsi fungsi pemrograman .

III.Cara kerja 
   1. Jika push button 1 ditekan maka Led akan menyala secara running dan led indikator menyala              (putih)
   2. Jika push button 2 ditekan maka Led akan menyala secara flip flop dan Led indikator akan                  menyala (merah)
   3.Jika serial Monitor menerima data 'r' dari Keyboard maka Led akan menyala secara running dan         Led indikator menyala (putih)
   4.Jika serial Monitor menerima data 'f' dari Keyboard maka Led akan menyala secara flip dlop dan         Led indikator menyala (merah)
  

IV.Proses kerja 
   1.Nyalakan komputer dan masuk ke PC
   2. Ketik program seperti dibawah ini :

#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();

}

   3 .Compile program dengan menekan CTRL+R
   4. Rangkai rangkaian LED dengan potensio dan pushbutton
   5. Sambungkan Arduino dengan port USB pada PC
   6. Periksa port dan COMM Arduino pada software ArduinoIDE
   7. Setelah port dan COMM tersambung dan terbaca di software Arduino maka upload program               dengan menekan CTRL+U  
   8 . Setelah "DONE UPLOADING" kemudian jalankan rangkaian dengan mengetik di Keyboard              atau Pushbutton.


V. Rangkaian











( Contoh vidio "klik HERE" )

Tidak ada komentar:

Posting Komentar