Untitled
Untitled
Untitled
h>
#include <SPI.h>
#define L1_MOTOR 30
#define L2_MOTOR 31
#define L_ENA 6
#define R1_MOTOR 32
#define R2_MOTOR 33
#define R_ENA 7
#define TRIG_PIN 34
#define ECHO_PIN 35
#define L_IR 36
#define R_IR 37
#define RED_LED 38
#define GREEN_LED 39
#define BLUE_LED 40
#define RST_PIN 5
#define SS_PIN 53
MFRC522 mfrc522 (SS_PIN, RST_PIN);
int distance;
long duration;
String content;
String command;
bool flag = true;
void setup ()
{
Serial.begin (9600);
SPI.begin ();
mfrc522.PCD_Init ();
Serial.println ("STARTING");
delay (500);
Serial.println ("PLEASE WAIT . . .");
delay (2500);
//----------------------------------------
//LEDs
void RED ()
{
digitalWrite (RED_LED, HIGH);
digitalWrite (GREEN_LED, LOW);
digitalWrite (BLUE_LED, LOW);
}
void GREEN ()
{
digitalWrite (RED_LED, LOW);
digitalWrite (GREEN_LED, HIGH);
digitalWrite (BLUE_LED, LOW);
}
void BLUE ()
{
digitalWrite (RED_LED, LOW);
digitalWrite (GREEN_LED, LOW);
digitalWrite (BLUE_LED, HIGH);
}
void RGB ()
{
digitalWrite (RED_LED, HIGH);
digitalWrite (GREEN_LED, LOW);
digitalWrite (BLUE_LED, LOW);
delay (500);
void OFF ()
{
digitalWrite (RED_LED, LOW);
digitalWrite (GREEN_LED, LOW);
digitalWrite (BLUE_LED, LOW);
}
//----------------------------------------
//MOTORs
void FORWARD ()
{
Serial.println ("FORWARD");
GREEN ();
void STOP ()
{
Serial.println ("STOP");
RED ();
void LEFT ()
{
Serial.println ("LEFT");
BLUE ();
void RIGHT ()
{
Serial.println ("RIGHT");
BLUE ();
//----------------------------------------
//RETURN
void RETURN ()
{
while (flag)
{
Serial.println ("DONE!");
if (flag == true)
{
flag = false;
}
}
}
//----------------------------------------
//COMMANDs
void COMMAND_TWO ()
{
if (digitalRead (L_IR) == LOW && digitalRead (R_IR) == LOW)
{
FORWARD ();
}
else if (digitalRead (L_IR) == HIGH && digitalRead (R_IR) == LOW)
{
LEFT ();
}
else if (digitalRead (L_IR) == LOW && digitalRead (R_IR) == HIGH)
{
RIGHT ();
}
else if (digitalRead (L_IR) == HIGH && digitalRead (R_IR) == HIGH)
{
STOP ();
}
content = "";
byte letter;
void COMMAND_ONE ()
{
if (digitalRead (L_IR) == LOW && digitalRead (R_IR) == LOW)
{
FORWARD ();
}
else if (digitalRead (L_IR) == HIGH && digitalRead (R_IR) == LOW)
{
LEFT ();
}
else if (digitalRead (L_IR) == LOW && digitalRead (R_IR) == HIGH)
{
RIGHT ();
}
else if (digitalRead (L_IR) == HIGH && digitalRead (R_IR) == HIGH)
{
STOP ();
}
content = "";
byte letter;
COMMAND_TWO ();
}
}
//----------------------------------------
//MAIN
void loop ()
{
flag = true;
delay (10);
while (Serial.available ())
{
command = "";
command = Serial.readString ();
}
if (command == "stop")
{
STOP ();
command = "";
return;
}
}