Advertisement
justhrun

Arduino_5Lampu

Jul 10th, 2014
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None | 0 0
  1. const byte PIN_IRQ = 0;  // INT0 / DIP_PIN4 / DIGITAL_PIN2 / PD2
  2.  
  3. #define  LAMP1    3
  4. #define  LAMP2    4
  5. #define  LAMP3    5
  6. #define  LAMP4    6
  7. #define  LAMP5    7
  8.  
  9. volatile int pulseCount = 0;
  10. volatile boolean berbuah = false;
  11.  
  12. void pulseCounter() {  pulseCount++; berbuah = true; }
  13.  
  14. void setup() {
  15.   pinMode(LAMP1, OUTPUT); digitalWrite(LAMP1,LOW);
  16.   pinMode(LAMP2, OUTPUT); digitalWrite(LAMP2,LOW);
  17.   pinMode(LAMP3, OUTPUT); digitalWrite(LAMP3,LOW);
  18.   pinMode(LAMP4, OUTPUT); digitalWrite(LAMP4,LOW);
  19.   pinMode(LAMP5, OUTPUT); digitalWrite(LAMP5,LOW);
  20.   attachInterrupt(PIN_IRQ, pulseCounter, FALLING);
  21. };
  22.  
  23. void loop() {
  24.   if(berbuah) {
  25.     berbuah = false;
  26.     detachInterrupt(PIN_IRQ);
  27.     // yg ini: lampu nyala bergantian dari 1 s/d 5 dan kembali ke 1
  28.     switch(pulseCount) {
  29.       case 1: digitalWrite(LAMP1,HIGH); break;
  30.       case 2: digitalWrite(LAMP1,LOW); digitalWrite(LAMP2,HIGH); break;
  31.       case 3: digitalWrite(LAMP2,LOW); digitalWrite(LAMP3,HIGH); break;
  32.       case 4: digitalWrite(LAMP3,LOW); digitalWrite(LAMP4,HIGH); break;
  33.       case 5: digitalWrite(LAMP4,LOW); digitalWrite(LAMP5,HIGH); break;
  34.       case 6: digitalWrite(LAMP5,LOW); pulseCount=0; break;
  35.     }
  36.  
  37. /*
  38.     // yg ini: lampu11 nyala, kmudian lampu2, sampe akhirnya bareng nyala semua
  39.     switch(pulseCount) {
  40.       case 1: digitalWrite(LAMP1,HIGH); break;
  41.       case 2: digitalWrite(LAMP2,HIGH); break;
  42.       case 3: digitalWrite(LAMP3,HIGH); break;
  43.       case 4: digitalWrite(LAMP4,HIGH); break;
  44.       case 5: digitalWrite(LAMP5,HIGH); break;
  45.       case 6: digitalWrite(LAMP1,LOW); digitalWrite(LAMP2,LOW); digitalWrite(LAMP3,LOW);
  46.               digitalWrite(LAMP4,LOW); digitalWrite(LAMP5,LOW); pulseCount=0; break;
  47.     }
  48. */
  49.  
  50. /*
  51.     // yg ini: lampu nyala bergantian dari 1 s/d 5 dan kembali ke 4 3 2 1
  52.     switch(pulseCount) {
  53.       case 1: digitalWrite(LAMP1,HIGH); break;
  54.       case 2: digitalWrite(LAMP1,LOW); digitalWrite(LAMP2,HIGH); break;
  55.       case 3: digitalWrite(LAMP2,LOW); digitalWrite(LAMP3,HIGH); break;
  56.       case 4: digitalWrite(LAMP3,LOW); digitalWrite(LAMP4,HIGH); break;
  57.       case 5: digitalWrite(LAMP4,LOW); digitalWrite(LAMP5,HIGH); break;
  58.       case 6: digitalWrite(LAMP5,LOW); digitalWrite(LAMP4,HIGH); break;
  59.       case 7: digitalWrite(LAMP4,LOW); digitalWrite(LAMP3,HIGH); break;
  60.       case 8: digitalWrite(LAMP3,LOW); digitalWrite(LAMP2,HIGH); break;
  61.       case 9: digitalWrite(LAMP2,LOW); digitalWrite(LAMP1,HIGH); pulseCount=1; break;
  62.     }
  63. */
  64.     attachInterrupt(PIN_IRQ, pulseCounter, FALLING);
  65.   }
  66.   delay(125);
  67.  
  68. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement