Advertisement
justhrun

Arduino_3Blink

Jul 10th, 2014
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.34 KB | None | 0 0
  1. /* program 3 led 1 button : dgn 3 mode tekan...
  2. tekan ke 1 = lampu 1 berkedip - kedip terus
  3. tekan ke 2 = lampu 1 mati, lampu 2 berkedip - kedip terus
  4. tekan ke 3 = lampu 2 mati, lampu 3 berkedip - kedip terus
  5. tekan ke 4 = lampu 3 mati
  6. */
  7. int led1 = 12; // nomor pin led
  8. int led2 = 11; // nomor pin led
  9. int led3 = 10; // nomor pin led
  10. // int button1 = A0; // nomor pin push button
  11. /* ###############################################
  12. R5(100R) pindahkan, jangan konak ke A0, tapi ke D2
  13. ############################################### */
  14.  
  15. const byte PIN_IRQ = 0;  // INT0 / DIP_PIN4 / DIGITAL_PIN2 / PD2
  16. volatile int pulseCount = 0;
  17. volatile boolean berbuah = false;
  18.  
  19. // int state =0;
  20. // boolean hidup =0;
  21. // boolean lasthidup = 0;
  22.  
  23. void pulseCounter() {  pulseCount++; berbuah = true; }
  24.  
  25. void setup() { // untuk menginisialisasi variabel, mode pin, mengatur baud rate serial
  26.   pinMode(led1, OUTPUT); // menginisialisasi pin LED sebagai output
  27.   pinMode(led2, OUTPUT); // menginisialisasi pin LED sebagai output
  28.   pinMode(led3, OUTPUT); // menginisialisasi pin LED sebagai output
  29. //  pinMode(button1, INPUT); // menginisialisasi pin push button sebagai input
  30.   attachInterrupt(PIN_IRQ, pulseCounter, RISING);
  31. }
  32.  
  33. void loop() {
  34.   if(berbuah) {
  35.     berbuah = false;
  36.     switch(pulseCount) {
  37.         case 1:  // tekan ke 1 = lampu 1 berkedip - kedip terus
  38.          while(!berbuah) {
  39.            digitalWrite(led1,HIGH);
  40.            delay(500);
  41.            digitalWrite(led1,LOW);
  42.            delay(500);
  43.          }
  44.          digitalWrite(led1,LOW); // make sure exit while led1 mate
  45.          break;
  46.     case 2:  // tekan ke 2 = lampu 1 mati, lampu 2 berkedip - kedip terus
  47.          while(!berbuah) {
  48.            digitalWrite(led2,HIGH);
  49.            delay(500);
  50.            digitalWrite(led2,LOW);
  51.            delay(500);
  52.          }
  53.          digitalWrite(led2,LOW); // make sure exit while led2 mate
  54.          break;
  55.     case 3:  // tekan ke 3 = lampu 2 mati, lampu 3 berkedip - kedip terus
  56.          while(!berbuah) {
  57.            digitalWrite(led3,HIGH);
  58.            delay(500);
  59.            digitalWrite(led3,LOW);
  60.            delay(500);
  61.          }
  62.          digitalWrite(led3,LOW); // make sure exit while led2 mate
  63.          break;
  64.     case 4:  // tekan ke 4 = lampu 3 mati
  65.          pulseCount = 0;  // reset counter
  66.          break;
  67.     }
  68.   }
  69.   delay(125);
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement