Paso 9: Rompiendo el código de Arduino
¿#include<Servo.h> int redLED = 12; int greenLED = 13; int button1 = A4; int buttonState = 0; Servo myservo;
Esto es sólo la creación todos los bolos. No voy a perder tiempo explicando esto.
void setup() { pinMode(redLED, OUTPUT); pinMode(greenLED, OUTPUT); pinMode(button1, INPUT); myservo.attach(9); }
Creación de la las salidas.
void loop() { buttonState = digitalRead(button1); int analog1 = analogRead(A0); int pot1 = analog1 * (10.0 / 1023.0); int analog2 = analogRead(A1); int pot2 = analog2 * (10.0 / 1023.0); int analog3 = analogRead(A2); int pot3 = analog3 * (10.0 / 1023.0); int analog4 = analogRead(A3); int pot4 = analog4 * (10.0 / 1023.0);
buttonState = digitalRead(button1);
Esto es la creación de las palabras 'buttonState' el pin de la lectura digital en button1 de pin, que es A4. Puesto que está utilizando la función de digitalRead 'buttonSate' o puede alta o baja.
analog1 int = analogRead(A0);
Esto es para tomar un análogo de la lectura en los pines A0. La lectura analógica es de 0-1023.
int pot1 = analog1 * (10.0 / 1023.0);
Convertir lo analógico lectura del pin A0 0-10 de 0-1023
El resto del código es para las otras lecturas analógicas en los otros pines A0-A3.
if (pot1 == 4 && pot2 == 5 && pot3 == 6 && pot4 == 1) { digitalWrite(greenLED, HIGH); digitalWrite(redLED, LOW); myservo.write(90); } else if (buttonState == HIGH) { digitalWrite(greenLED, HIGH); digitalWrite(redLED, LOW); myservo.write(90); delay(5000); } else { digitalWrite(greenLED, LOW); digitalWrite(redLED, HIGH); myservo.write(170); }
if (pot1 == 4 && pot2 == 5 && pot3 == 3 && pot4 == 6)
Ahora esto es donde usted necesita para poner su propia combinación en. Voy a hacer mía 4536.
Esto es para probar lo siguiente: si pot1 es igual a 4 y si pot2 es igual a 5, pot3 es igual a 6, y si si pot4 es igual a 1, lo siguiente. Cambiar el pot1 números, 2, 3 y 4 igual para crear su propio código.
{ digitalWrite(greenLED, HIGH); digitalWrite(redLED, LOW); myservo.write(90); }
Vamos a añadir otra si declaración
elseif (buttonState == HIGH) es la lectura digital en el pin A4 alta??? ¡Sí! Y...
{ digitalWrite(greenLED, HIGH); digitalWrite(redLED, LOW); myservo.write(90); delay(5000); }
Si cualquiera de estos if declaraciones no son verdaderas, entonces hacen lo siguiente:
otra cosa
{
digitalWrite (greenLED, LOW);
digitalWrite (rojo, alto);
myservo.Write(170);
}
Ahora usted puede haber notado he añadido un retraso en el bloque de botón, pero no el bloque de la olla. Bueno la razón por qué hice esto es para que no tengas pulsado el botón. Si nos fijamos en el código, verá que no hay retrasos, por lo que Arduino está constantemente haciendo el bucle y una y otra vez a una velocidad muy rápida. El código dice, "si el botón está alto, abrir la puerta '. Bueno si usted suelte el botón, se coloca el lazo y ve el el botón no es alto, por lo que bloquea la puerta. Con el retraso, una vez que detecta que la pulsación, se preforma de nuestra acción (desbloqueo de la puerta, cambiar los LEDS), luego es esperar 5 segundos antes de ejecutar el bucle una vez más. Si no entiendes, pruébalo. Sacar el retraso y ver qué pasa.