Paso 10: Sketch de Arduino para interruptor de palanca
Quiero que la cubierta se comporte como una stompbox real, así que decidí hacer un interruptor de palanca a continuación. He utilizado el boceto de muestra, "Knock", de los ejemplos de "Sensores".
Esto utiliza el mismo cableado como el "IfStatementConditional" arriba. Sin embargo, antes de cargue el bosquejo, hice un pequeño cambio:
Serial.println("Knock!");
se convierte en
Serial.println(sensorReading);
Esto me permite ver los valores de las lecturas de Arduino de la cubierta.
Después de verificar y cargar el sketch, abrí al monitor serie. Ahora cada vez golpea ligeramente en la cubierta, el integrado LED en el pin 13 activada o desactiva. Adicionalmente, el sensor de lectura sí mismo apareció en el monitor serie.
Funcionó bien, pero me di cuenta que el monitor a veces devuelve varias lecturas para cada tap, o ninguno en absoluto. Así que juega con el valor de retardo y variada rapidez estaba golpeando el interruptor con el pie. Un retraso de 150 parecía funcionar mejor para mí.
Al igual que con el primer boceto, el valor de umbral es clave: Si no funciona, asegúrese de que el número asignado al "umbral" es mucho menor que el sensor de lectura de números en el monitor.
Aquí está el bosquejo, una pequeña variación en los golpes!, que voy a llamar a Stomp_Toggle. Una vez que el interruptor de funcionamiento, puede cortar y pegar el código en cualquier dibujo que te gusta.
/ * Palanca de stomp
Este bosquejo lee la resistencia variable de cubierta utilizada como un interruptor de pedal.
Lee un pin analógico y compara el resultado a un umbral establecido.
Si el resultado es mayor que el umbral, escribe
el valor para el puerto serie y cambia el LED en el pin 13.
El circuito:
* Un cable de la cubierta atado A0
* Otro cable de la cubierta conectada a 5V de Arduino
* 10K resistencia de analógico en 0 atado suelo
http://www.Arduino.CC/en/Tutorial/Knock
creado el 25 de marzo de 2007
por David Cuartielles < http://www.0j0.org>
modificado 30 de agosto de 2011
por Tom Igoe
modificado 10 de diciembre de 2013
por Jesse Seay
Este ejemplo de código es de dominio público.
*/
estas constantes no va a cambiar:
const int ledPin = 13; LED conectado al pin digital 13
const int knockSensor = A0; la cubierta está conectada al pin analógico 0
const int umbral = 500; valor de umbral para decidir cuándo la presión detectada cambia el interruptor
estas variables va a cambiar:
int sensorReading = 0; variable para almacenar el valor leído desde el perno del sensor
int ledState = bajo; variable utilizada para almacenar el estado del pasado, para cambiar la luz
void setup() {}
pinMode (ledPin, salida); declara el ledPin como salida
Serial.Begin(9600); utilizar el puerto serie
}
void loop() {}
leer el sensor y almacenarlo en la variable sensorReading:
sensorReading = analogRead(knockSensor);
Si la lectura del sensor es mayor que el umbral:
Si (sensorReading > = umbral) {}
cambiar el estado del ledPin:
ledState =! ledState;
actualizar el pin LED sí mismo:
digitalWrite (ledPin, ledState);
enviar la lectura del sensor a la computadora, seguida de nueva línea
Serial.println(sensorReading);
}
Delay(150); retraso para evitar la sobrecarga del búfer de puerto serie
}