Paso 4: Componen un Sketch de Arduino
Abajo está el código que usé para mi sistema de control.
Estoy usando varias bibliotecas para permitir el uso del receptor de infrarrojos, pantalla de LCD sobre I2C y el servo.
La mayoría de mis variables se define dentro de las funciones que las usan pero necesitamos definir el pin de recepción para el receptor de IR para que podemos instanciar el objeto de receptor de IR. También tenemos que crear una instancia de los resultados del receptor IR y el servo y la pantalla LCD.
La función de configuración comienza a partir al monitor serial e inicializar el LCD y encender la luz de fondo. Durante la instalación también necesitamos empezar el receptor IR Conecte el servo pin número 9 y definir los pines 6 y 7 como salidas para el motor y el relé.
El bucle principal llama a tres funciones que se describen a continuación
La idea de la función activateDRS es hacer un servo a una posición específica, cuando se cumple una condición. En este caso, la condición es el motorSpeed. Si la velocidad del motor es mayor del equivalente a 200 el servo se moverá a la posición de 60 grados. Si el servo es menos que 200 que devolverá el servo a la posición original.
La función de controlador de motor simplemente define un potenciómetro como una entrada analógica y asigna el valor motor a la gama digital que se utiliza en la función activateDRS
Aquí comprobamos si se ha recibido un comando específico. Si tiene el encender el relé. Si se envía un comando diferente, que se encenderá el relé que corta corriente al motor y servo.
La función revsPerMilli calcula las revoluciones de la rueda por milisegundo por primera esperando el valor de interrupción incrementar a por encima de 100. Una vez que las revoluciones llega a 100 se calculan la circunferencia y la velocidad de la rueda. Esta función utiliza un Arduino función llamada millis para obtener la hora en milisegundos.
Nota: No he podido conseguir los codificadores para que funcione correctamente para que esta función no es necesaria el código de trabajo. Principalmente he añadido como una mejora para más adelante.