coche regetonero
aunknown
plain_text
3 years ago
3.8 kB
7
Indexable
//Potencia motor
const int potencia = 150;
//Configuración de los motores.
//Motor 1
const int motorAPin1 = 5; // Pin 14 de L293
const int motorAPin2 = 6; // Pin 10 de L293
const int infrarrojosA = 8;
//Motor 2
const int motorBPin3 = 10; // Pin 7 de L293
const int motorBPin4 = 9; // Pin 2 de L293
const int infrarrojosB =7;
//Ultrasonidos
const int echo = 11;
const int trigger = 12;
//Luces
const int LDR = A0; // Pin Analogico 0
const int Intermitente1 = 4; // Pin 4
const int Intermitente2 = 3; // Pin 3
const int Largas = 13; // Pin 13
const int Frenos = 2; // Pin 2
bool state = true;
void setup(){
Serial.begin(9600);
pinMode(motorAPin1, OUTPUT);
pinMode(motorAPin2, OUTPUT);
pinMode(motorBPin3, OUTPUT);
pinMode(motorBPin4, OUTPUT);
pinMode(infrarrojosA, INPUT);
pinMode(infrarrojosB, INPUT);
pinMode(echo, INPUT);
pinMode(trigger, OUTPUT);
pinMode(LDR, INPUT);
pinMode(Intermitente1, OUTPUT);
pinMode(Intermitente2, OUTPUT);
pinMode(Largas,OUTPUT);
pinMode(Frenos,OUTPUT);
}
void loop(){
//Controlador motores
if(state == true){
if(digitalRead(infrarrojosA) == LOW){
analogWrite(motorBPin3, potencia); // Al activar gira el motor A en sentido de las agujas del reloj.
analogWrite(motorBPin4, potencia); // Al activar gira el motor A en sentido contra las agujas del reloj.
digitalWrite(Intermitente1, HIGH);
}
else if(digitalRead(infrarrojosA) == HIGH){
analogWrite(motorBPin3, potencia); // Al activar gira el motor B en sentido de las agujas del reloj.
digitalWrite(motorBPin4, LOW); // Al activar gira el motor B en sentido contra las agujas del reloj.
digitalWrite(Intermitente1, LOW);
}
if(digitalRead(infrarrojosB) == LOW){
analogWrite(motorAPin1, potencia); // Al activar gira el motor A en sentido de las agujas del reloj.
analogWrite(motorAPin2, potencia); // Al activar gira el motor A en sentido contra las agujas del reloj.
digitalWrite(Intermitente2, HIGH);
}
else if(digitalRead(infrarrojosB) == HIGH){
analogWrite(motorAPin1, potencia); // Al activar gira el motor B en sentido de las agujas del reloj.
digitalWrite(motorAPin2, LOW); // Al activar gira el motor B en sentido contra las agujas del reloj.
digitalWrite(Intermitente2, LOW);
}
}
//Controlador leds
Serial.print("Luz: ");
Serial.print(analogRead(LDR)); //Enviamos serialmente el valor de la luz
Serial.println();
if(analogRead(LDR) > 750) {
digitalWrite(Largas, LOW);
}else {
digitalWrite(Largas, HIGH);
}
//Controlador ultrasonidos
long t; //timepo que demora en llegar el eco
long d; //distancia en centimetros
digitalWrite(trigger, HIGH);
delayMicroseconds(10); //Enviamos un pulso de 10us
digitalWrite(trigger, LOW);
t = pulseIn(echo, HIGH); //obtenemos el ancho del pulso
d = t/59; //escalamos el tiempo a una distancia en cm
Serial.print("Distancia: ");
Serial.print(d); //Enviamos serialmente el valor de la distancia
Serial.print("cm");
Serial.println();
delay(100); //Hacemos una pausa de 100ms
if(d < 15){
digitalWrite(motorAPin1, LOW); // Al activar gira el motor A en sentido de las agujas del reloj.
digitalWrite(motorAPin2, LOW); // Al activar gira el motor A en sentido contra las agujas del reloj.
digitalWrite(motorBPin3, LOW); // Al activar gira el motor A en sentido de las agujas del reloj.
digitalWrite(motorBPin4, LOW); // Al activar gira el motor A en sentido contra las agujas del reloj.
digitalWrite(Frenos, HIGH);
state = false;
}else{
state = true;
digitalWrite(Frenos, LOW);
}
}Editor is loading...