Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- Servo myservo;
- #define chA 8 //channel for Forward and Backward
- #define chB 9 //channel for Left turn and Right turn
- #define chC 10 //channel for extinguisher_motor
- #define ch_Pot 11 //channel for nozzle direction
- #define ch_gripper 13 //channel for extinguisher_gripper
- #define Flame_sensor 7 //flame sensor digital pin
- int cha; //forward/backward value
- int chb; //left/right value
- int chc; //extinguisher_motor value
- int ch_potv; //nozzle_servo value
- int noz_servo_deg; //nozzle_servo degree
- int ch_grip; //extinguisher_grip value
- int fs_value; //Flame sensor value
- unsigned long currentMillis = 0; //for flame auto detect interval
- unsigned long previousMillis = 0; // for flame auto detect interval
- unsigned long interval = 60000;
- int count = 0;
- #define La 22 //Left_motor pin a
- #define Lb 23 //Left_motor pin b
- #define Ra 24 //Right_motor pin a
- #define Rb 25 //Right_motor pin b
- #define Ga 26 //Grip_motor pin a
- #define Gb 27 //Grip_motor pin b
- void setup() {
- Serial.begin(9600);
- myservo.attach(12);
- pinMode(chA,INPUT);
- pinMode(chB,INPUT);
- pinMode(chC,INPUT);
- pinMode(ch_Pot,INPUT);
- pinMode(ch_grip,INPUT);
- pinMode(La,OUTPUT);
- pinMode(Lb,OUTPUT);
- pinMode(Ra,OUTPUT);
- pinMode(Rb,OUTPUT);
- pinMode(Ga,OUTPUT);
- pinMode(Gb,OUTPUT);
- pinMode(Flame_sensor,OUTPUT);
- }
- void loop() {
- cha = pulseIn(chA,HIGH);
- chb = pulseIn(chB,HIGH);
- chc = pulseIn(chC,HIGH);
- ch_grip = pulseIn(ch_gripper,HIGH);
- ch_potv = pulseIn(ch_Pot,HIGH);
- noz_servo_deg = map(ch_potv,1000,2000,0,180);
- myservo.write(noz_servo_deg);
- /*Serial.println("channel_0 ");
- Serial.print(cha);Serial.println("");
- Serial.println("channel_1 ");
- Serial.print(chb);Serial.println("");
- Serial.println("channel_2 ");
- Serial.print(chc);Serial.println("");*/
- Serial.println(chb);
- if(cha > 1200 && cha < 1800){
- if(chb > 1600){//forward
- Go_Forward();
- }
- else if(chb < 1300){//backward
- Go_Back();
- }
- else if(chb > 1300 && chb < 1600){//stop
- Stop();
- }
- }
- else if(cha < 1200){
- Rotate_Left();
- }
- else if(cha > 1800){
- Rotate_Right();
- }
- if(ch_grip < 1300){
- Grip_press();
- }
- else if(ch_grip > 1800){
- Grip_release();
- }
- else if(ch_grip > 1300 && ch_grip < 1800){
- Grip_stop();
- }
- fs_value = digitalRead(Flame_sensor);
- if(fs_value == 1 && count == 0){
- currentMillis = millis();
- do{
- Grip_press();
- previousMillis = millis();
- }while(previousMillis - currentMillis < interval);
- count = 1;
- }
- else if(fs_value == 1 && count == 1){
- return;
- }
- else if(fs_value == 0 && count == 1){
- currentMillis = millis();
- do{
- Grip_release();
- previousMillis = millis();
- }while(previousMillis - currentMillis < interval);
- count = 0;
- }
- else if(fs_value == 0 && count == 0){
- return;
- }
- }
- void Go_Forward(){
- digitalWrite(La,HIGH);
- digitalWrite(Lb,LOW);
- digitalWrite(Ra,HIGH);
- digitalWrite(Rb,LOW);
- }
- void Go_Back(){
- digitalWrite(La,LOW);
- digitalWrite(Lb,HIGH);
- digitalWrite(Ra,LOW);
- digitalWrite(Rb,HIGH);
- }
- void Rotate_Left(){
- digitalWrite(La,LOW);
- digitalWrite(Lb,HIGH);
- digitalWrite(Ra,HIGH);
- digitalWrite(Rb,LOW);
- }
- void Rotate_Right(){
- digitalWrite(La,HIGH);
- digitalWrite(Lb,LOW);
- digitalWrite(Ra,LOW);
- digitalWrite(Rb,HIGH);
- }
- void Stop(){
- digitalWrite(La,LOW);
- digitalWrite(Lb,LOW);
- digitalWrite(Ra,LOW);
- digitalWrite(Rb,LOW);
- }
- void Grip_press(){
- digitalWrite(Ga,HIGH);
- digitalWrite(Gb,LOW);
- }
- void Grip_release(){
- digitalWrite(Ga,LOW);
- digitalWrite(Gb,HIGH);
- }
- void Grip_stop(){
- digitalWrite(Ga,LOW);
- digitalWrite(Gb,LOW);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement