Académique Documents
Professionnel Documents
Culture Documents
El programa funciona como un coche teledirigido desde el móvil, que envía bits a Arduino
para que el coche funcione. Hecho con el software y hardware libre de Arduino.*/
// Variables de motores:
int inA = 4; //Los cuatro “in” son los pines a los que va conectado el motor driver
int inB = 5;
int inC = 6;
int inD = 7;
int pwmMIpin= 10; //Los dos pines conectados a los motores para regular la velocidad.
int pwmMDpin=11;
//Variables de luces:
int pwmL1pin=3; //Los dos pines PWM a los que van conectados los leds blancos
int pwmL2pin=9;
int lednarD=2; //Y los dos pines a los que van conectados los intermitentes
int lednarI=8;
int estadoled=LOW;
long intervalo=200;
long previousMillis=0;
unsigned long currentMillis=0;
// Variables de comunicacion:
int value=0;
int pwmMvalue=255; //Velocidad del coche
int pwmLvalue=0; //Intensidad de los faros
int incomingByte; //Último bit recibido
int esx=0; //Indica si es la barra de arriba o la de abajo sobre la que estamos deslizando.
int esy=0;
boolean lectura=0; //Puede ser uno o cero. Reconoce si estamos mandando algo.
void setup() {
pinMode (inA, OUTPUT);
pinMode(inB, OUTPUT);
pinMode(inC, OUTPUT);
pinMode(inD, OUTPUT); //Establece los cuatro pines del motor driver como salidas.
pinMode(lednarD, OUTPUT);
pinMode(lednarI,OUTPUT);
Serial.begin(9600); //Establece conexión con el puerto serie
}
void go_forward(){ //Rutina para que el coche avance
digitalWrite(inA, HIGH);
digitalWrite(inB, LOW);
digitalWrite(inC, LOW);
digitalWrite(inD, HIGH);
}
void go_back(){ //Rutina para que el coche retroceda
digitalWrite(inA, LOW);
digitalWrite(inB, HIGH);
digitalWrite(inC, HIGH);
digitalWrite(inD, LOW);
}
void turn_right(){ //Rutina para que el coche gire a la derecha
digitalWrite(inA, LOW);
digitalWrite(inB, HIGH);
digitalWrite(inC, LOW);
digitalWrite(inD, HIGH);
}
void turn_left(){ //Rutina para que el coche gire a la izquierda
digitalWrite(inA, HIGH);
digitalWrite(inB, LOW);
digitalWrite(inC, HIGH);
digitalWrite(inD, LOW);
}
void parar(){ //Rutina para que el cohe pare
digitalWrite(inA, LOW);
digitalWrite(inB, LOW);
digitalWrite(inC, LOW);
digitalWrite(inD, LOW);
}
void loop() {
unsigned long currentMillis=millis();
if (Serial.available() > 0) { //Si recibe datos,
incomingByte = Serial.read(); //Acumula el último bit en incomingByte
}
}
analogWrite(pwmMIpin,pwmMvalue); // Fija la velocidad al valor impuesto
analogWrite(pwmMDpin,pwmMvalue);
analogWrite(pwmL1pin,pwmLvalue); // Fija la luz al valor impuesto
analogWrite(pwmL2pin,pwmLvalue);
}
}
}
https://github.com/keybasket/Arduino/blob/master/Vehiculo%20controlado%20por%20app