Tengo un pequeño problema con la sentecia if else, ya que quiero conectar
2 sensores infrarrojos a 2 Motores(1 en cada sensor)
pero me marca que tengo que poner un If cuando pongo el ''else''
# define sensor1 3
# define sensor2 4
# define ai2 7
# define ai1 8
# define bi2 9
# define bi1 10
int SensorI = 0;
int SensorD = 0;
void setup() {
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
pinMode(ai2, OUTPUT);
pinMode(ai1, OUTPUT);
pinMode(bi2, OUTPUT);
pinMode(bi1, OUTPUT);
}
void loop() {
digitalWrite(ai2,LOW);
digitalWrite(ai1,LOW);
digitalWrite(bi2,LOW);
digitalWrite(bi1,LOW);
SensorI = digitalRead(sensor1);
SensorD = digitalRead(sensor2);
{
if (SensorI == HIGH);
{
digitalWrite(ai2,LOW);
digitalWrite(ai1,LOW);
}
else
{
digitalWrite(ai2,HIGH);
digitalWrite(ai1,HIGH);
}
}
}
Tienes un punto y coma de sobra:
if (SensorI == HIGH);
Con lo cual el estamento se considera terminado, y el "else" se queda huerfano sin "if".
# define sensor1 3
# define sensor2 4
# define ai2 7
# define ai1 8
# define bi2 9
# define bi1 10
int SensorI = 0;
int SensorD = 0;
void setup() {
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
pinMode(ai2, OUTPUT);
pinMode(ai1, OUTPUT);
pinMode(bi2, OUTPUT);
pinMode(bi1, OUTPUT);
}
void loop() {
digitalWrite(ai2, LOW);
digitalWrite(ai1, LOW);
digitalWrite(bi2, LOW);
digitalWrite(bi1, LOW);
SensorI = digitalRead(sensor1);
SensorD = digitalRead(sensor2);
if (SensorI == HIGH)
{
digitalWrite(ai2, LOW);
digitalWrite(ai1, LOW);
}
else
{
digitalWrite(ai2, HIGH);
digitalWrite(ai1, HIGH);
}
}
Porque haces los 4 digitalWrite al principio del loop?
Es obsoleto, y demás provoca un microcorte cuando el sensor esta low. Ya casi un pwm.
Porque no se dió cuenta y pensó que lo puso en el setup y le quedó mal. Supongo que es la explicación mas lógica pero tienes razón con la observación ElEspanol.