Autor: Macadon Andrei-Cristian
Lista componente
<code>#include <SoftwareSerial.h> SoftwareSerial hc05(0, 1);
int m1pin1 = 8; int m1pin2 = 9; int m2pin1 = 10; int m2pin2 = 11; int avarii = 0; int backwardsLights = 0; char request;
void setup() {
Serial.begin(9600); hc05.begin(9600); // put your setup code here, to run once: pinMode(m1pin1, OUTPUT); pinMode(m1pin2, OUTPUT); pinMode(m2pin1, OUTPUT); pinMode(m2pin2, OUTPUT);
pinMode(4, OUTPUT); pinMode(5, OUTPUT);
}
void loop() {
request = ' '; if(hc05.available() > 0){ request = hc05.read(); Serial.write(Serial.read()); }
if (request == 'F') { //Make the motors run forward: digitalWrite(m1pin1, HIGH); digitalWrite(m1pin2, LOW); digitalWrite(m2pin1, HIGH); digitalWrite(m2pin2, LOW);
backwardsLights = 0;
analogWrite(4, 255); //ENA pin analogWrite(5, 255); //ENB pin } if(backwardsLights == 1){ digitalWrite(6, HIGH); delay(500); digitalWrite(6, LOW); delay(500); } if (request == 'B') {
//Make the motors run backwards digitalWrite(m1pin1, LOW); digitalWrite(m1pin2, HIGH); digitalWrite(m2pin1, LOW); digitalWrite(m2pin2, HIGH); // set the flag for the backwardsLights backwardsLights = 1; digitalWrite(6, HIGH); delay(1000); digitalWrite(6, LOW); delay(1000); analogWrite(4, 255); //ENA pin analogWrite(5, 255); //ENB pin }
if (request == 'L') {
//Make only the left motors run digitalWrite(m1pin1, HIGH); digitalWrite(m1pin2, LOW); digitalWrite(m2pin1, LOW); digitalWrite(m2pin2, LOW);
backwardsLights = 0;
analogWrite(4, 255); //ENA pin analogWrite(5, 255); //ENB pin } if (request == 'R') {
//Make only the right motors run digitalWrite(m1pin1, LOW); digitalWrite(m1pin2, LOW);
digitalWrite(m2pin1, HIGH); digitalWrite(m2pin2, LOW);
backwardsLights = 0;
analogWrite(4, 255); //ENA pin analogWrite(5, 255); //ENB pin }
//check the avarii flag to see if the red LED should be flickering or not if(avarii == 1){ digitalWrite(7, HIGH); delay(500); digitalWrite(7, LOW); delay(500); }
if (request == 'S') { // stop all the motors digitalWrite(m1pin1, LOW); digitalWrite(m1pin2, LOW);
digitalWrite(m2pin1, LOW); digitalWrite(m2pin2, LOW);
//stop avarii digitalWrite(7, LOW); analogWrite(4, 0); //ENA pin analogWrite(5, 0); //ENB pin //set the flags accordingly avarii = 0; backwardsLights = 0; } if(request == 'A'){ // turn on avarii digitalWrite(7, HIGH); delay(1000); digitalWrite(7, LOW); delay(1000); // if avarii were already turned on, turn them off if(avarii == 0){ avarii = 1; } else { avarii = 0; } }
}