Paso 5: Si declaración
Utiliza el mismo circuito como en el ejemplo anterior y enciende el LED usando un if/else instrucción. El si la declaración es una forma muy eficiente para introducir el código de condición. Voy a usar el bosquejo llamado IfStatementConditional en el IDE de Arduino bajo File/Examples/05.Control.
Usted necesitará un Arduino, un potenciómetro, un LED y unos cables de puente. Conectar la clavija media del potenciómetro al pin A0 (analógica 0) en el Arduino, entonces los + ve conducir a 5v en el Arduino y - ve conducen a la GND de Arduino. Y conectar el + ve cable del LED D5 en el Arduino y la ve - conducen a tierra.
En este esbozo el valor del pin A0 se imprimirá en el monitor serial y al mismo tiempo que el brillo del LED va a cambiar cuando giramos el potenciómetro.
El bosquejo
const int analogPin = A0; PIN que el sensor está conectado a
const int ledPin = 5; PIN que el LED está conectado a
const int umbral = 400; un umbral arbitrario que está en la gama de la entrada analógica
void setup() {}
pinMode (ledPin, salida); Inicializa el pin LED como salida:
Serial.Begin(9600); inicializar comunicaciones serie:
}
void loop() {}
int analogValue = analogRead(analogPin); leer el valor del potenciómetro:
Si (analogValue > umbral) {/ / si el valor analógico es lo suficientemente alto, enciende el LED:
digitalWrite (ledPin, HIGH);
}
Else {}
digitalWrite (ledPin, LOW);
}
Serial.println(analogValue); imprimir el valor analógico:
Delay(1); retardo entre lecturas para la estabilidad
}
Vamos a diseccionar el bosquejo:
const int analogPin = A0;
const int ledPin = 5;
const int umbral = 400;
Como de costumbre empezamos con las variables, esta vez que opté por utilizar "const int" como un tipo, esto quiere decir que nunca va a cambiar el valor de las variables.
- analogPin siempre se unirá al pin analógico 0
- ledPin siempre se unirá al pin digital 5
- umbral será siempre en 400
void setup() {}
pinMode (ledPin, salida);
Serial.Begin(9600);
}
No hay nada nuevo en la configuración de vacía, ponemos el pin 5 a la salida un LED conectado a ella y comenzamos el monitor serial a 9600bps
void loop() {}
int analogValue = analogRead(analogPin);
Si (analogValue > umbral) {}
digitalWrite (ledPin, HIGH);
}
Else {}
digitalWrite (ledPin, LOW);
}
Serial.println(analogValue);
Delay(1);
}
La primera línea en el circuito de vacío es la declaración de una variable local de tipo int llamado analogValue y asignarle el valor que se lee en la variable analogPin.
Si y if/else declaraciones:
Sintaxis:
- Si (condición) {ejecutar comandos si se cumple la condición}
Sintaxis de
- Si (condición) {ejecutar comandos si se cumple la condición}
- Else {ejecutar otro comando si no se cumple la condición}
ejemplo:
Si (a > b) {digitalWrite (ledPin, HIGH);}
o
Si (a > b) {digitalWrite (ledPin, HIGH);}
Else {digitalWrite (ledpin2, HIGH);}
Cada vez que estamos utilizando un if instrucción, buscamos para satisfacer una cierta condición, ejemplo si "a" es mayor que "b". Y si el resultado es verdadero entonces podemos ejecutar lo que está entre las llaves. Si el resultado no es cierto entonces no hacen nada.
Ahora si usas un if/else instrucción y el resultado no es cierto, entonces todo lo que está bajo "else" se ejecutará.
La mejor manera de establecer una condición debe utilizar la comparación y los operadores lógicos.
Operadores de comparación:
Se utilizan para comparar las variables y constantes uno contra el otro para verificar si se cumple una cierta condición.
== Es igual a un == b comprueba si a es igual a b
! = No igual a un! = b cheques si una no es igual a b < menos de un < b comprueba si un es menor que b > más grande que un > b comprueba si un es mayor que b < = menos gracias o es igual a un < = b cheques si una es menos o es igual a b > = mayor que o igual a un > = b cheques si un es mayor o igual a b
Nota: la diferencia entre = y ==. = se utiliza para asignar a una variable un número o un valor, mientras que == se utiliza para comparar dos variables.
Operadores lógicos:
Los operadores lógicos se utilizan para comparar dos expresiones y devuelve un TRUE o FALSE. Los operadores lógicos son AND(&&), OR(||) y no (!).
Lógica y si (a > b & & c < true d) sólo si ambas expresiones son verdaderas
Lógica o si (a > b || c < d) verdadero si uno o ambos de las expresiones es verdadera
Lógica no si (! a > b) True si la expresión es falsa
Volvamos al dibujo
Si (analogValue > umbral) {}
digitalWrite (ledPin, HIGH);
}
Else {}
digitalWrite (ledPin, LOW);
}
- Aquí estamos probando para ver si la analogValue es mayor que el umbral: Si (analogValue > umbral)
- Si entonces encender el LED: digitalWrite (ledPin, HIGH);
- Si no: else {}
- Luego apague el LED: digitalWrite (ledPin, LOW);
Serial.println(analogValue): imprimir el valor de analogValue en el monitor serial
Delay(1): un minúsculo retardo de 1 milisegundo se estabilice la lectura