Paso 3: El programa
La función RCtime() hace la lectura de los sensores. He intentado escribirlo tan genérico como sea posible por lo que puede ser levantado y utilizado en otros programas. Es posible que algunas veces que necesite algunos ajustes para la calibración. Ejemplo, en la función de bucle en esta línea "if(toggle) pwmWrite (ledPin, photocellReading * 4);" Yo multiplique la fotocélula lectura 4. Los resultados pueden variar, tengo dos del mismo fotocélulas y se comportan diferentemente.
Cuando primero comencé a trabajar en el proyecto que hice mi primera experimentación en un Arduino. Cuando tenia trabajo transfirió a la RaspberryPi y no funcionó. Me tomó mucho tiempo averiguar lo que estaba mal. El RaspberryPi no es ninguna barra caliente pero es muchas veces más rápido que un Arduino. La solución fue agregar el "delay(2)" en la función RCtime() para darle tiempo al condensador a la descarga.
El código de la tarifa de centelleo utiliza millis() en lugar de delay() porque todo el programa se detiene durante un delay(). Utilizando millis() sigue funcionando el programa y los cambios son inmediatos. "tiempo" es una variable global definida justo debajo de la rúbrica del programa y la incluye. Que es inicializado en la función setup(). Observe el uso del tiempo y cambiar variables así como la función millis() en la función loop() para ver cómo se hace.