CONNEXIONAT DE BLUETOOTH

PROGRAMMACIÓ BLUETOOTH


La programmació ha d’estar ben escrita i ordenada per tal que el nostre cotxe rebi les instruccions tal i com nosaltres desitgem.

CODI:

#include <SoftwareSerial.h>

SoftwareSerial bluetooth(2,3);

Aquest codi indica que estem treballant amb bluetooth i utilitzem els pins 2 i 3 per comunicar-nos através d’aquest sistema amb l’arduino.

char lletra = 'S';
int derecha = 9;
int izquierda = 10;
int IN4 = 4;
int IN5 = 5;
int IN6 = 6;
int IN7 = 7;
int LEDrojoderecho = 12;
int LEDrojoizquierdo = 11;
int LEDamarilloderecho = 8;
int LEDamarilloizquierdo = 13;

L’anterior codi declara quins pins utilitzarem i quin nom reben. La variable char lletra= ‘S’  és la qual l’arduino realitza quan no es rep cap altra (indicarem les seves accions posteriorment).


void setup()
{
bluetooth.begin(9600);
pinMode (IN4, OUTPUT);
pinMode (IN5, OUTPUT);
pinMode (IN6, OUTPUT);
pinMode (IN7, OUTPUT);
pinMode (derecha, OUTPUT);
analogWrite (derecha, 255);
pinMode (izquierda, OUTPUT);
analogWrite (izquierda, 225);
pinMode (LEDrojoizquierdo, OUTPUT);
pinMode (LEDrojoderecho, OUTPUT);
pinMode (LEDamarilloizquierdo, OUTPUT);
pinMode (LEDamarilloderecho, OUTPUT);
}

Aquí declarem quines variables són entrades i quines sortides, la velocitat dels dos motors i en el cas de la primera estableix la velocitat de dades en bits per segon per la transmissió de dades en serie.


void loop()
{
 //Si el bluetooth ha rebut alguna lletra...
 if (bluetooth.available())
 {
  lletra = bluetooth.read();
 }
 //Depenent de la lletra fem una acció o una altra...
Com hem indicat en el propi codi aquest indica que segons quina lletra rebi l’arduino aquest realitzarà una acció o una altra.


 if (lletra == 'F')
     {
 digitalWrite (LEDrojoizquierdo, HIGH);
 digitalWrite (LEDrojoderecho, HIGH);
 digitalWrite (LEDamarilloizquierdo, LOW);
 digitalWrite (LEDamarilloderecho, LOW);
 digitalWrite (IN4, HIGH);
 digitalWrite (IN5, LOW);
 digitalWrite (IN6, HIGH);
 digitalWrite (IN7, LOW);
}
La lletra F representa la paraula forward, que significa cap endavant. Per tant hem escrit les instruccions adequades per que el cotxe vagi recte i a més s’encenguin les llums davanteres que són les vermelles.


 if (lletra == 'L')
 {
   digitalWrite (IN4, LOW);
   digitalWrite (IN5, HIGH);
   digitalWrite (IN6, HIGH);
   digitalWrite (IN7, LOW);
   digitalWrite (LEDrojoizquierdo, HIGH);
   digitalWrite (LEDrojoderecho, LOW);
   digitalWrite (LEDamarilloizquierdo, LOW);
   digitalWrite (LEDamarilloderecho, LOW);
}

La lletra L representa la paraula left, que significa esquerra. Per tant hem escrit les instruccions adequades per que el cotxe giri a l’esquerra i a més s’encengui la llum davantera d’aquesta banda que és vermella.


if (lletra == 'S')
{
 digitalWrite (IN4, LOW);
 digitalWrite (IN5, LOW);
 digitalWrite (IN6, LOW);
 digitalWrite (IN7, LOW);
 digitalWrite (LEDrojoizquierdo, LOW);
 digitalWrite (LEDrojoderecho, LOW);
 digitalWrite (LEDamarilloizquierdo, LOW);
 digitalWrite (LEDamarilloderecho, LOW);
}

La lletra S representa la paraula stop, que significa parar. Per tant hem escrit les instruccions adequades per que el cotxe no avanci i cap llum s’encengui. Abans hem indicat que la lletra ‘S’ és la que s’envia quan cap altra és rebuda per l’arduino, per això lògicament el cotxe no es mou si no fem clic a cap botó de l’aplicació.


if (lletra == 'R')
{
 digitalWrite (LEDrojoizquierdo, LOW);
 digitalWrite (LEDrojoderecho, HIGH);
 digitalWrite (LEDamarilloizquierdo, LOW);
 digitalWrite (LEDamarilloderecho, LOW);
 digitalWrite (IN4, HIGH);
 digitalWrite (IN5, LOW);
 digitalWrite (IN6, LOW);
 digitalWrite (IN7, HIGH);
}

La lletra R representa la paraula right, que significa dreta. Per tant hem escrit les instruccions adequades per que el cotxe giri a la dreta i a més s’encengui la llum davantera d’aquesta banda que és vermella.


if (lletra == 'B')
{
 digitalWrite (LEDrojoizquierdo, LOW);
 digitalWrite (LEDrojoderecho, LOW);
 digitalWrite (LEDamarilloizquierdo, HIGH);
 digitalWrite (LEDamarilloderecho, HIGH);
 digitalWrite (IN4, LOW);
 digitalWrite (IN5, HIGH);
 digitalWrite (IN6, LOW);
 digitalWrite (IN7, HIGH);
}

La lletra B representa la paraula backguard, que significa cap enrrere. Per tant hem escrit les instruccions adequades per que el cotxe vagi can enrere i a més només s’encenguin les llums posteriors que són les grogues.


if (lletra == 'W')
{
  digitalWrite (LEDrojoizquierdo, HIGH);
  digitalWrite (LEDrojoderecho, HIGH);
  delay(5000);
  digitalWrite (LEDrojoizquierdo, LOW);
  digitalWrite (LEDrojoderecho, LOW);
}

Amb la lletra W li enviem l’ordre d’encendre únicament els LEDs anteriors, els vermells, durant 5s. En cas de que els grocs estiguin encesos s’apagaran.

if (lletra == 'w')
{
  digitalWrite (LEDrojoizquierdo, LOW);
  digitalWrite (LEDrojoderecho, LOW);
}

Amb la lletra w li enviem l’ordre d’apagar els LEDs anteriors, els vermells.


if (lletra == 'U')
{
  digitalWrite (LEDamarilloizquierdo, HIGH);
  digitalWrite (LEDamarilloderecho, HIGH);
  delay(5000);
  digitalWrite (LEDamarilloizquierdo, LOW);
  digitalWrite (LEDamarilloderecho, LOW);
}

Amb la lletra U li enviem l’ordre d’encendre únicament els LEDs posteriors, els grocs, durant 5s. En cas de que els vermells estiguin encesos s’apagaran.


if (lletra == 'u')
{
  digitalWrite (LEDamarilloizquierdo, LOW);
  digitalWrite (LEDamarilloderecho, LOW);
}
}

Amb la lletra u li enviem l’ordre d’apagar els LEDs posteriors, els grocs.

Comentarios