bangnaga

Khadijah-ATKP-Relay Sequence

Aug 9th, 2021 (edited)
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.86 KB | None | 0 0
  1. int relay1 = 8;
  2. int relay2 = 9;
  3. int relay3 = 10;
  4. char tmp;
  5. int in1= 2;
  6. int in2= 3;
  7. int in3= 4;
  8. int mode ; // Mode1= Sequence , Mode2 = Control
  9. int status1 = 0;
  10. int status2 = 0;
  11. int status3 = 0;
  12.  
  13. //the delay
  14. int pause = 200;
  15. //count to decide which relays are HIGH and which are LOW
  16. int count = 0;
  17. // will store last time relay was updated
  18. unsigned long previousMillis = 0;
  19.  
  20. // the setup routine runs once when you press reset:
  21. void setup() {
  22.   // initialize the digital pin as an output.
  23.  
  24.    pinMode(in1, INPUT);
  25.    pinMode(in2, INPUT);
  26.    pinMode(in3, INPUT);
  27.    
  28.   pinMode(relay1, OUTPUT);
  29.   pinMode(relay2, OUTPUT);
  30.   pinMode(relay3, OUTPUT);
  31.  
  32.    digitalWrite(relay1, HIGH);
  33.    digitalWrite(relay2, HIGH);
  34.    digitalWrite(relay3, HIGH);
  35.   // initialize serial communication at 9600 bits per second:
  36.   Serial.begin(9600);
  37.   //tampildata();
  38. }
  39.  
  40. // the loop routine runs over and over again forever:
  41. void loop() {
  42.  
  43.  
  44.  
  45.  if (Serial.available() > 0){
  46.    tmp = Serial.read();
  47.    if (tmp == 'o'){
  48.       modeonall();
  49.       mode =2;
  50.    }
  51.    else if (tmp == 'f'){
  52.       modeoffall();
  53.       mode = 2;
  54.    }  
  55.    else if (tmp == 't'){
  56.       modeonall();
  57.       delay (4000);
  58.       tampildata();
  59.      
  60.       mode = 2;
  61.  
  62.   } else if (tmp == '1'){
  63.       //modeflipflop();
  64.       mode = 1;
  65.   }
  66.  
  67. }
  68.  
  69.  
  70. if (mode== 1){
  71.   modeflipflop();
  72. }
  73. if (mode== 2){
  74.   //tampildata();  
  75. }  
  76.  
  77.  
  78. //delay (1);
  79. //  tampildata();
  80. }
  81.  
  82.  
  83. void tampildata(){
  84.   status1 = ! digitalRead (in1);
  85.   status2 = ! digitalRead (in2);
  86.   status3 = ! digitalRead (in3);
  87.  
  88.  
  89.   Serial.print (status1);
  90.   Serial.print (",");
  91.   Serial.print (status2);
  92.   Serial.print (",");
  93.   Serial.println (status3);
  94.  
  95. }
  96. void modeoffall(){
  97.    //delay (1000);
  98.    digitalWrite(relay1, HIGH);
  99.    digitalWrite(relay2, HIGH);
  100.    digitalWrite(relay3, HIGH);
  101.    
  102.    //tampildata();
  103.   // Serial.println ("Mode off");
  104. }
  105.  
  106. void modeonall(){
  107.    digitalWrite(relay1, LOW);
  108.    digitalWrite(relay2, LOW);
  109.    digitalWrite(relay3, LOW);
  110. //   Serial.println ("Mode On");
  111. //    tampildata();
  112. }
  113.  
  114.  
  115. void modeflipflop(){
  116.  // tampildata();
  117.   unsigned long currentMillis = millis();
  118.  
  119.  
  120.  
  121.   if (currentMillis - previousMillis >= pause) {
  122.     // save the last time you blinked the relay
  123.     previousMillis = currentMillis;
  124.  
  125.     if (count == 0) {
  126.       digitalWrite(relay1, LOW);
  127.       digitalWrite(relay2, HIGH);
  128.       digitalWrite(relay3, HIGH);
  129.       tampildata();
  130.  
  131.     }
  132.     else if (count == 1){
  133.       digitalWrite(relay1, HIGH);
  134.       digitalWrite(relay2, LOW);
  135.       digitalWrite(relay3, HIGH);
  136.       tampildata();
  137.     }
  138.     else if (count == 2) {
  139.       digitalWrite(relay1, HIGH);
  140.       digitalWrite(relay2, HIGH);
  141.       digitalWrite(relay3, LOW);
  142.       tampildata();
  143.     }
  144.     else if (count == 3) {
  145.  
  146.       count = -1;
  147.     }
  148.  
  149.     count++;
  150.   }
  151.  // tampildata();
  152. }
Advertisement
Add Comment
Please, Sign In to add comment