coche regetonero
aunknown
plain_text
2 years ago
3.8 kB
6
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...