Hola, soy un alumno de un taller de robotica y tenemos un problema.
Se trata de que estamos armando un simulador de cruce ferroviario y no podemos lograr que funcione el servomotor que simula la barrera. Queremos hacer que funcione al mismo tiempo que se encienda un led que funciona como semaforo pero hemos intentado de muchas maneras y aún así no podemos conseguir que funcione.
Este es el codigo que usamos:
int ledrojo=6;
int lednaranja=7;
int ledverde=8;
long distancia;
long tiempo;
int led;
void setup(){
Serial.begin(9600);
pinMode(11, OUTPUT);
pinMode(12, INPUT);
pinMode(ledrojo, OUTPUT);
pinMode(lednaranja, OUTPUT);
pinMode(ledverde, OUTPUT);
}
void loop(){
digitalWrite(11 ,LOW);
delayMicroseconds(10);
digitalWrite(11, HIGH);
delayMicroseconds(10);
tiempo=pulseIn(12, HIGH);
distancia= int(0.017*tiempo);
if (distancia>40){
led=1;
digitalWrite(lednaranja,LOW);
digitalWrite(ledrojo,LOW);
}
if (distancia<40&&distancia>20){
led=2;
digitalWrite(ledverde,LOW);
digitalWrite(ledrojo,LOW);
}
if (distancia>20){
led=3;
digitalWrite(ledverde,LOW);
digitalWrite(lednaranja,LOW);
}
switch(led){
case 1:
digitalWrite(ledverde,HIGH);
break;
case 2:
digitalWrite(lednaranja,HIGH);
break;
case 3:
digitalWrite(ledrojo,HIGH);
break;
}
delay(50);
}