Paso 10: El Hardware (disco duro)
Esto me ayudó a empezar.
La lógica fundamental del programa fue esta:
Alguien empuja la puerta, activa un relé que toca el timbre y activa el Arduino.
El Arduino a continuación:
1) ignora todos los comandos de activación para 4 minutos (en caso de que alguien toca el timbre nuevamente)
2) inicia un comando de Applescript en el equipo host de Mac
3) activa un segundo relé (para ideas futuras)
4) reinicializa después de 4 minutos y vuelve a stand-by
Aquí está el código:
int ledPin = 13; LED conectado al pin digital 13
int potPin = 0; alambre timbre blanco al pin analógico 0
int val = 0;
tiempo = 0;
tiempo de debounce = 1000;
void setup() {}
pinMode (ledPin, salida); pone el pin digital como salida
Serial.Begin(9600); abrir puerto serie a 9600 baudios
digitalWrite (14 + potPin, HIGH); establecer pullup en el pin analógico
(analógica 0 = digital 14, a1 = d15, etc.)
}
void loop() {}
Val = analogRead(potPin);
Si (val < 100) {/ / si el circuito es completado
(para mí, que generalmente cae de 1023 a ~ 15 cuando 'sonando')
Si (millis ()-tiempo > debounce) {}
Serial.println("A");
Delay(500);
Serial.println("A");
Delay(500);
Serial.println("A");
digitalWrite (ledPin, HIGH); el LED se pone en
Delay(120000); // ... 240000 = 4 minutos
digitalWrite (ledPin, LOW); y apaga el LED
tiempo = millis();
}
}
}
Nota: programa el Appleshare Proxy sólo aceptaba cada tercera "A" de mi Arduino, así que enviar tres y la Junta ahora responde al instante sin error (estoy seguro código chapuza, pero bueno funciona!) El 'retraso' es donde la Junta ignora todas pulsaciones de teclas, por lo que el programa no se reinicia si alguien sigue sonando el timbre.