Advertisement
Guest User

Fire_fighter_tank

a guest
Dec 12th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. #include <Servo.h>
  3. Servo myservo;
  4. #define chA 8   //channel for Forward and Backward
  5. #define chB 9   //channel for Left turn and Right turn
  6. #define chC 10  //channel for extinguisher_motor
  7. #define ch_Pot 11 //channel for nozzle direction
  8. #define ch_gripper 13 //channel for extinguisher_gripper
  9.  
  10. #define Flame_sensor 7 //flame sensor digital pin
  11.  
  12. int cha;        //forward/backward value
  13. int chb;        //left/right value
  14. int chc;        //extinguisher_motor value
  15. int ch_potv;     //nozzle_servo value
  16. int noz_servo_deg;   //nozzle_servo degree
  17. int ch_grip;     //extinguisher_grip value
  18. int fs_value;   //Flame sensor value
  19. unsigned long currentMillis = 0; //for flame auto detect interval
  20. unsigned long previousMillis = 0; // for flame auto detect interval
  21. unsigned long interval = 60000;
  22. int count = 0;
  23. #define La 22   //Left_motor pin a
  24. #define Lb 23   //Left_motor pin b
  25. #define Ra 24   //Right_motor pin a
  26. #define Rb 25   //Right_motor pin b
  27. #define Ga 26   //Grip_motor pin a
  28. #define Gb 27   //Grip_motor pin b
  29.  
  30. void setup() {
  31.   Serial.begin(9600);
  32.   myservo.attach(12);
  33.   pinMode(chA,INPUT);
  34.   pinMode(chB,INPUT);
  35.   pinMode(chC,INPUT);
  36.   pinMode(ch_Pot,INPUT);
  37.   pinMode(ch_grip,INPUT);
  38.   pinMode(La,OUTPUT);
  39.   pinMode(Lb,OUTPUT);
  40.   pinMode(Ra,OUTPUT);
  41.   pinMode(Rb,OUTPUT);
  42.   pinMode(Ga,OUTPUT);
  43.   pinMode(Gb,OUTPUT);
  44.   pinMode(Flame_sensor,OUTPUT);
  45.  
  46. }
  47.  
  48. void loop() {
  49.   cha = pulseIn(chA,HIGH);
  50.   chb = pulseIn(chB,HIGH);
  51.   chc = pulseIn(chC,HIGH);
  52.   ch_grip = pulseIn(ch_gripper,HIGH);
  53.   ch_potv = pulseIn(ch_Pot,HIGH);
  54.   noz_servo_deg = map(ch_potv,1000,2000,0,180);
  55.   myservo.write(noz_servo_deg);
  56.   /*Serial.println("channel_0 ");
  57.   Serial.print(cha);Serial.println("");
  58.   Serial.println("channel_1 ");
  59.   Serial.print(chb);Serial.println("");
  60.   Serial.println("channel_2 ");
  61.   Serial.print(chc);Serial.println("");*/
  62.   Serial.println(chb);
  63.   if(cha > 1200 && cha < 1800){
  64.   if(chb > 1600){//forward
  65.     Go_Forward();
  66.   }
  67.   else if(chb < 1300){//backward
  68.     Go_Back();
  69.   }
  70.   else if(chb > 1300 && chb < 1600){//stop
  71.     Stop();
  72.   }
  73.   }
  74.   else if(cha < 1200){
  75.     Rotate_Left();
  76.   }
  77.   else if(cha > 1800){
  78.     Rotate_Right();
  79.   }
  80.   if(ch_grip < 1300){
  81.     Grip_press();
  82.   }
  83.   else if(ch_grip > 1800){
  84.     Grip_release();
  85.   }
  86.   else if(ch_grip > 1300 && ch_grip < 1800){
  87.     Grip_stop();
  88.   }
  89.   fs_value = digitalRead(Flame_sensor);
  90.   if(fs_value == 1 && count == 0){
  91.     currentMillis = millis();
  92.     do{
  93.       Grip_press();
  94.       previousMillis = millis();
  95.     }while(previousMillis - currentMillis < interval);
  96.     count = 1;
  97.   }
  98.   else if(fs_value == 1 && count == 1){
  99.     return;
  100.   }
  101.   else if(fs_value == 0 && count == 1){
  102.     currentMillis = millis();
  103.     do{
  104.       Grip_release();
  105.       previousMillis = millis();
  106.     }while(previousMillis - currentMillis < interval);
  107.     count = 0;
  108.   }
  109.   else if(fs_value == 0 && count == 0){
  110.     return;
  111.   }
  112. }
  113.  
  114. void Go_Forward(){
  115.   digitalWrite(La,HIGH);
  116.   digitalWrite(Lb,LOW);
  117.   digitalWrite(Ra,HIGH);
  118.   digitalWrite(Rb,LOW);
  119. }
  120. void Go_Back(){
  121.   digitalWrite(La,LOW);
  122.   digitalWrite(Lb,HIGH);
  123.   digitalWrite(Ra,LOW);
  124.   digitalWrite(Rb,HIGH);
  125. }
  126. void Rotate_Left(){
  127.   digitalWrite(La,LOW);
  128.   digitalWrite(Lb,HIGH);
  129.   digitalWrite(Ra,HIGH);
  130.   digitalWrite(Rb,LOW);
  131. }
  132. void Rotate_Right(){
  133.   digitalWrite(La,HIGH);
  134.   digitalWrite(Lb,LOW);
  135.   digitalWrite(Ra,LOW);
  136.   digitalWrite(Rb,HIGH);
  137. }
  138. void Stop(){
  139.   digitalWrite(La,LOW);
  140.   digitalWrite(Lb,LOW);
  141.   digitalWrite(Ra,LOW);
  142.   digitalWrite(Rb,LOW);  
  143. }
  144. void Grip_press(){
  145.   digitalWrite(Ga,HIGH);
  146.   digitalWrite(Gb,LOW);
  147. }
  148. void Grip_release(){
  149.   digitalWrite(Ga,LOW);
  150.   digitalWrite(Gb,HIGH);
  151. }
  152. void Grip_stop(){
  153.   digitalWrite(Ga,LOW);
  154.   digitalWrite(Gb,LOW);
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement