Paso 7: Código de esquema 3 (rotatorio)
Programación
Otra vez, tengo que dar crédito a guidomax por su tutorial de instructables.com como yo he prestado parte de su código para este proyecto. El listado de código completo se puede encontrar en mi perfil en pastebin.com aquí.
El hoyo de entrada único utilizado es el pin 7 y lo definimos en la función setup() . como,
pinMode(in, INPUT); // input for rotary device
Nos también defina nuestro tono objetos en la matriz [pin] y pines como entrada de 2600 hz, KP y ST.
pin[0].begin(pin0); // Initialize our first tone generator<br>pin[1].begin(pin1); // Initialize our second tone generator pinMode(b2600, INPUT); // 2600 button pinMode(bst, INPUT); // 2600 button pinMode(bkp, INPUT); // 2600 button
A continuación en la función loop() que simplemente llamamos dos funciones, para comprobar si se pulsan los botones y para comprobar si se ha accedido el dial. La función buttons() utiliza digitalRead() para comprobar la presencia de tensión en los pernos especificados. Si se presiona el botón de 2600hz, simplemente comprobamos para ver si previamente se almacenaban dígitos y si es así reproducirlas por bucle sobre la matriz de enteros almacenados y llamar a mf() por dígitos hasta llegar a un valor de-1. Si no has notado esto mucho, esto es más o menos cómo dígitos de reproducción para cada caja excepto la memoria extraña emitimos con nuestra caja de Arduino UNO (esquema 2).
Manejo de entrada rotatoria
La función rotary() obtiene una tensión en nuestro perno de dial rotatorio usando digitalRead() como,
int reading = digitalRead(in);
Esto vuelve a leer el valor de la constante - alto o bajo. Si difiere de la última fue leído - almacenados en lastState tomamos nota de la hora usando la función millis() ,
lastStateChangeTime = millis();
Esto se utiliza cuando comprobamos la diferencia entre el tiempo actual al principio de la función de la lastStateChangeTime. Si es mayor de 100 milisegundos, continuamos reproducir un tono de frecuencia intermedia. Se comprueba el dígito almacenado previamente presionado y si chocamos dos veces un dígito de control, entramos en un nuevo modo. Se trata de cómo empezar grabación cifras de este cuadro. Para esta caja, podemos pulsar KP dos veces para iniciar el modo de grabación para registrar dígitos. KP puede utilizarse nuevamente como podemos MF el número, PK,1,2,1,ST, por ejemplo y entonces KP dos veces otra vez al modo de grabación final. Para cambiar al modo de marcación de pulso, que es un modo que creé después de ver el Joe Engressia video pulso marcado, pulse dos vecesST.