Build Your Own Robot
Foto
Schema elettrico
Codice sorgente Arduino
#define M1r 3
#define M1b 5
#define M2r 10
#define M2b 11
String readString;
String lcd1;
String lcd2;
#define SONAR_TRIGGER_PIN 6
#define SONAR_ECHO_PIN 7
#define led_stop 7
#define led_sx 2
#define led_dx 6
int tx = 1;
int rx = 0;
char com = 'fermo';
int clacson = 8;
int i2=0;
#include <LiquidCrystal.h>
int pinsensore = 0;
int livello = 0;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(18, 19, 14, 15, 16, 17);
void setup() {
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print(lcd1);
Serial.begin(9600);
pinMode(SONAR_TRIGGER_PIN, OUTPUT);
pinMode(SONAR_ECHO_PIN, INPUT);
pinMode(M1r, OUTPUT);
pinMode(M1b, OUTPUT);
pinMode(M2r, OUTPUT);
pinMode(M2b, OUTPUT);
pinMode(8, OUTPUT);
pinMode(6, OUTPUT);
pinMode(led_stop, OUTPUT);
pinMode(led_sx, OUTPUT);
pinMode(led_dx, OUTPUT);
}
void loop() {
while (Serial.available()) {
delay(3);
char c = Serial.read();
readString += c;
}
if (readString.length() >0) {
Serial.println(readString);
if (readString == "avanti")
{
avanti();
}
if (readString == "sinistra")
{
sinistra();
}
if (readString == "destra")
{
destra();
}
if (readString == "indietro")
{
indietro();
}
if (readString == "fermo")
{
fermo();
}
if (readString == "clacson")
{
digitalWrite(8, HIGH);
delay(150);
digitalWrite(8, LOW);
}
if (readString == "luci_on")
{
digitalWrite(6, HIGH);
}
if (readString == "luci_off")
{
digitalWrite(6, LOW);
}
if (readString[0] == '#')
{
lcd.setCursor(0, 0);
lcd.print(" ");
lcd1 = readString;
for(int i2=0;i2<17;i2++)
{lcd1[i2]=lcd1[i2+1];}
lcd1[readString.length()-1]=' ';
for(int indice = lcd1.length(); indice < 16; indice++){
lcd1[indice] = ' ';
}
Serial.print(lcd1.length());
}
if (readString[0] == '*')
{
lcd.setCursor(0, 1);
lcd.print(" ");
lcd2 = readString;
for(int i2=0;i2<17;i2++)
{lcd2[i2]=lcd2[i2+1];}
lcd2[readString.length()-1]=' ';
Serial.print(lcd2);
}
lcd.setCursor(0, 0);
lcd.print(lcd1);
lcd.setCursor(0, 1);
lcd.print(lcd2);
readString="";
}
}
void avanti(){
digitalWrite(M1r, HIGH);
digitalWrite(M1b, LOW);
digitalWrite(M2r, HIGH);
digitalWrite(M2b, LOW);
digitalWrite(led_sx, LOW);
digitalWrite(led_dx, LOW);
digitalWrite(led_stop, LOW);
}
void sinistra(){
digitalWrite(M1r, LOW);
digitalWrite(M1b, HIGH);
digitalWrite(M2r, LOW);
digitalWrite(M2b, HIGH);
digitalWrite(led_sx, HIGH);
digitalWrite(led_dx, LOW);
digitalWrite(led_stop, LOW);
}
void destra(){
digitalWrite(M1r, HIGH);
digitalWrite(M1b, LOW);
digitalWrite(M2r, LOW);
digitalWrite(M2b, LOW);
digitalWrite(led_dx, HIGH);
digitalWrite(led_sx, LOW);
digitalWrite(led_stop, LOW);
}
void indietro(){
digitalWrite(M1r, LOW );
digitalWrite(M1b, HIGH);
digitalWrite(M2r, LOW);
digitalWrite(M2b, HIGH);
digitalWrite(led_dx, LOW);
digitalWrite(led_sx, LOW);
digitalWrite(led_stop, LOW);
}
void fermo(){
digitalWrite(M1r, HIGH);
digitalWrite(M1b, HIGH);
digitalWrite(M2r, LOW);
digitalWrite(M2b, LOW);
digitalWrite(led_stop, HIGH);
digitalWrite(led_dx, LOW);
digitalWrite(led_sx, LOW);
}
Screenshot app Android
Download app Android (clicca o scannerizza il seguente codice QR)
Video dimostrativi
Commenti
Aggiungi un nuovo commento
Accedi per poter commentare.