Skip to content

Instantly share code, notes, and snippets.

@e-Gizmo
Created June 10, 2019 08:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save e-Gizmo/8b053e6a6bb974f299ea5e1dc9e54302 to your computer and use it in GitHub Desktop.
Save e-Gizmo/8b053e6a6bb974f299ea5e1dc9e54302 to your computer and use it in GitHub Desktop.
Example for FireFighter Fan to Search Straight.
int seq = 0;
int DCMOTOR = 4;
int PWM_SPEED = 100;
int SPEED_MOTOR = 100;
int state = 0;
int d2 = 400;
boolean fire = false;
boolean search = false;
int DELAY = 100;
void setup() {
// put your setup code here, to run once:
pinMode(DCMOTOR, OUTPUT);
// FLAME SENSORS
pinMode(5, INPUT); //FS_RIGHT
pinMode(6, INPUT); //FS_CENTER
pinMode(7, INPUT); //FS_LEFT
//MOTOR PINS
pinMode(8, OUTPUT); //dirmotor1
pinMode(9, OUTPUT); //spdmotor1
pinMode(10, OUTPUT); //spdmotor2
pinMode(11, OUTPUT); //dirmotor2
}
void loop() {
// put your main code here, to run repeatedly:
int FLAME_RIGHT = digitalRead(5);
int FLAME_CENTER = digitalRead(6);
int FLAME_LEFT = digitalRead(7);
if (seq == 3 ) {
STOP();
} else {
FORWARD();
if (FLAME_CENTER == 0) {
STOP();
state = 1;
PUT_OFF_FIRE();
seq = seq + 1;
}
else if (FLAME_RIGHT == 0) {
STOP();
state = 2;
TURN_RIGHT();
delay(d2);
PUT_OFF_FIRE();
seq = seq + 1;
}
else if (FLAME_LEFT == 0) {
STOP();
state = 3;
TURN_LEFT();
delay(d2);
PUT_OFF_FIRE();
seq = seq + 1;
}
}
}
void PUT_OFF_FIRE() {
STOP();
delay(1000);
// digitalWrite(RELAY_DC, HIGH);
digitalWrite(DCMOTOR, HIGH);
delay(5000);
digitalWrite(DCMOTOR, LOW);
delay(1000);
switch (state) {
case 1:
delay(d2);
state = 0;
break;
case 2:
TURN_LEFT();
delay(d2);
state = 0;
break;
case 3:
TURN_RIGHT();
delay(d2);
state = 0;
break;
}
}
void FORWARD() {
digitalWrite(8, HIGH);
analogWrite(9, SPEED_MOTOR);
analogWrite(10, SPEED_MOTOR);
digitalWrite(11, HIGH);
}
void TURN_RIGHT() {
digitalWrite(8, HIGH);
analogWrite(9, SPEED_MOTOR);
analogWrite(10, SPEED_MOTOR);
digitalWrite(11, LOW);
}
void TURN_LEFT() {
digitalWrite(8, LOW);
analogWrite(9, SPEED_MOTOR);
analogWrite(10, SPEED_MOTOR);
digitalWrite(11, HIGH);
}
void STOP() {
//digitalWrite(8, HIGH);
analogWrite(9, 0);
analogWrite(10, 0);
//digitalWrite(11, HIGH);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment