Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni6 pagine

Auto Bluetooth

Il documento descrive il codice per controllare un'auto a distanza tramite Bluetooth. Definisce i pin di ingresso e uscita per i motori, le luci e il clacson dell'auto, e stabilisce funzioni per controllare la direzione, la velocità e altre azioni dell'auto tramite comandi ricevuti via Bluetooth.

Tradotto da

ScribdTranslations
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni6 pagine

Auto Bluetooth

Il documento descrive il codice per controllare un'auto a distanza tramite Bluetooth. Definisce i pin di ingresso e uscita per i motori, le luci e il clacson dell'auto, e stabilisce funzioni per controllare la direzione, la velocità e altre azioni dell'auto tramite comandi ricevuti via Bluetooth.

Tradotto da

ScribdTranslations
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

// Includiamo la libreria

#include <SoftwareSerial.h>

// Istanziamo l'oggetto SoftwareSerial per controllare il bluetooth


SoftwareSerial hc06(2,3);

// Definizione dei pin EnA ed EnB per il controllo della velocità


int VelocitàMotore1 = 5;
int VelocitàMotore2 = 6;

// Definizione dei pin di controllo della rotazione dei motori In1, In2, In3 e In4
int Motor1A = 13;
int Motor1B = 12;
int Motor2C = 8;
int Motor2D = 10;

// Definizione dei pin delle luci e del clacson


int LuzCarroFrontal1 = 4;
int LuzCarroFrontal2 = 9;
int LuzCarroTrasera1 = 11;
int Bocina = 7;

// Definizione della velocità iniziale dei motori


int velocitàMotore = 80;

// Variabile per catturare il comando che arriva dall'app


String cmd="";

void setup(){
// Monitor seriale
[Link](9600);

// Porta Serial Bluetooth


[Link](9600);

// Modo di pin delle luci


pinMode(LuzCarroFrontal1,OUTPUT);
pinMode(LuzCarroFrontal2,OUTPUT);
pinMode(LuzCarroTrasera1, OUTPUT);

Modalità del pin dell'altoparlante


pinMode(Bocina, OUTPUT);

// Impostiamo la modalità dei pin del controllo dei motori


pinMode(Motor1A, OUTPUT);
pinMode(Motor1B,OUTPUT);
pinMode(Motor2C,OUTPUT);
pinMode(Motor2D,OUTPUT);
pinMode(VelocidadMotor1, OUTPUT);
pinMode(VelocidadMotor2, OUTPUT);

// Configuriamo la velocità dei due motori


analogWrite(VelocitàMotore1, velocitàMotore);
analogWrite(VelocitàMotore2, velocitàMotore);
}

vuoto ciclo() {
// Leggiamo i dati ricevuti
while([Link]()>0){
cmd+=(char)[Link]();
}

// Programmiamo ciascuna delle azioni da eseguire in base al comando ricevuto


se(cmd!=""){
cmd = cmd[0];
se(cmd == "S"){
fermaAuto();
}else
se(cmd == "F"){
muoviAvantiauto();
}else
se(cmd == "B"){
muoviIndietroAuto();
} else
se(cmd == "L"){
giraASinistraAuto();
}else
se(cmd == "R"){
giraADestraAuto();
}
se(cmd == "G"){
moveForwardLeft();
}else
se(cmd == "I"){
muoviAvantiDestra();
} else
se(cmd == "H"){
muoviIndietroASinistra();
} else
se(cmd == "J"){
muoviIndietroASdestra();
}
se(cmd == "W"){
digitalWrite(LuzCarroFrontal1, ALTO);
digitalWrite(LuzCarroFrontal2, ALTO);
}else
se(cmd == "w"){
digitalWrite(LuzCarroFrontal1, BASSO);
digitalWrite(LuzCarroFrontal2, BASSO);
} else
se(cmd == "U"){
digitalWrite(LuzCarroTrasera1, ALTO);
}else
se(cmd == "u"){
digitalWrite(LuzCarroTrasera1, BASSO);
} else
se(cmd == "X"){
digitalWrite(LuzCarroTrasera1, ALTO);
digitalWrite(LuzCarroFrontal1, ALTO);
digitalWrite(LuzCarroFrontal2, HIGH);
} else
se(cmd == "x"){
digitalWrite(LuzCarroTrasera1, BASSO);
digitalWrite(LuzCarroFrontal1, BASSO);
digitalWrite(LuzCarroFrontal2, BASSO);
} else
se(cmd == "V"){
digitalWrite(Bocina, ALTO);
}else
se(cmd == "v") {
digitalWrite(Bocina, BASSO);
} else
se(cmd == "0") {
speedMotor = 80;
analogWrite(VelocitàMotore1, velocitàMotore);
analogWrite(VelocidadMotor2, velocitàMotore);
}else
se(cmd == "1"){
speedMotor = 90;
analogWrite(VelocidadMotor1, speedMotor);
analogWrite(VelocitàMotore2, velocitàMotore);
}else
se(cmd == "2"){
speedMotor = 100;
analogWrite(VelocitàMotore1, velocitàMotore);
analogWrite(VelocitàMotore2, velocitàMotore);
} else
se(cmd == "3"){
speedMotor = 110;
analogWrite(VelocidadMotor1, speedMotor);
analogWrite(VelocidadMotor2, velocitàMotore);
} else
se(cmd == "4"){
speedMotor = 120;
analogWrite(VelocidadMotor1, speedMotor);
analogWrite(VelocitàMotore2, velocitàMotore);
}else
se(cmd == "5"){
speedMotor = 130;
analogWrite(VelocitàMotore1, velocitàMotore);
analogWrite(VelocidadMotor2, speedMotor);
} else
se(cmd == "6") {
speedMotor = 140;
analogWrite(VelocitàMotore1, velocitàMotore);
analogWrite(VelocidadMotore2, velocitàMotore);
} else
se(cmd == "7"){
speedMotor = 150;
analogWrite(VelocitàMotore1, velocitàMotore);
analogWrite(VelocitàMotore2, velocitàMotore);
}else
se(cmd == "8"){
speedMotor = 160;
analogWrite(VelocitàMotore1, velocitàMotore);
analogWrite(VelocitàMotore2, velocitàMotore);
}
se(cmd == "9"){
speedMotor = 170;
analogWrite(VelocidadMotore1, velocitàMotore);
analogWrite(VelocidadMotor2, speedMotor);
}else
se(cmd == "q"){
speedMotor = 180;
analogWrite(VelocidadMotor1, speedMotor);
analogWrite(VelocitàMotore2, velocitàMotore);
}

// Diamo l'ordine come eseguita e aspettiamo il successivo


cmd="";
}
}

void fermareAuto(){}
// Fermiamo il carrello
digitalWrite(Motor1A, BASSO);
digitalWrite(Motor1B, LOW);
digitalWrite(Motor2C, BASSO);
digitalWrite(Motor2D, BASSO);
}

void turnRightCar(){}
// Configuriamo il senso di rotazione per girare a destra
digitalWrite(Motor1A, ALTO);
digitalWrite(Motor1B, BASSO);
digitalWrite(Motor2C, BASSO);
digitalWrite(Motor2D, BASSO);
}

void girareASinistraAuto() {

// Configuriamo il senso di rotazione per girare a sinistra


digitalWrite(Motor1A, BASSO);
digitalWrite(Motor1B, BASSO);
digitalWrite(Motor2C, BASSO);
digitalWrite(Motor2D, ALTO);
}

void muoviAvantiAuto(){
// Configuriamo il senso di rotazione per avanzare
digitalWrite(Motor1A, ALTO);
digitalWrite(Motor1B, BASSO);
digitalWrite(Motor2C, BASSO);
digitalWrite(Motor2D, ALTO);
}

void muoviAllIndietroAuto(){
// Configuriamo il senso di rotazione per andare indietro
digitalWrite(Motor1A, LOW);
digitalWrite(Motor1B, ALTO);
digitalWrite(Motor2C, ALTO);
digitalWrite(Motor2D, LOW);
}

void muoviAvantiSinistra(){
Giriamo a sinistra mentre avanzamo
analogWrite(VelocidadMotor2, speedMotor + 60);

digitalWrite(Motor1A, ALTO);
digitalWrite(Motor1B, BASSO);
digitalWrite(Motor2C, BASSO);
digitalWrite(Motor2D, ALTO);

ritarda(20);
analogWrite(VelocitàMotore2, velocitàMotore);
}

void muoviAvantiADestra(){
Giriamo a destra mentre avanziamo
analogWrite(VelocidadMotore1, velocitàMotore + 60);
digitalWrite(Motor1A, ALTO);
digitalWrite(Motor1B, BASSO);
digitalWrite(Motor2C, BASSO);
digitalWrite(Motor2D, ALTO);

ritardo(20);
analogWrite(VelocidadMotor1, speedMotor);
}

void muoviIndietroASinistra(){
Giriamo a sinistra mentre retrocediamo
analogWrite(VelocidadMotor2, speedMotor + 60);

digitalWrite(Motor1A, BASSO);
digitalWrite(Motor1B, ALTO);
digitalWrite(Motor2C, ALTO);
digitalWrite(Motor2D, BASSO);

ritardo(20);
analogWrite(VelocitàMotore2, velocitàMotore);
}

void muoviIndietroDestra() {
// Giriamo a destra mentre retrocediamo
analogWrite(VelocitàMotore1, velocitàMotore + 60);

digitalWrite(Motor1A, BASSO);
digitalWrite(Motor1B, HIGH);
digitalWrite(Motor2C, ALTO);
digitalWrite(Motor2D, BASSO);

ritarda(20);
analogWrite(VelocitàMotore1, velocitàMotore);
}

Potrebbero piacerti anche