Paso 6: programación
Ahora tiempo para la programación, necesitará estar familiarizado con el código de arduino para hacer esta parte (o simplemente copiar y pegar mi código).
1. en primer lugar usted necesitará incluir bibliotecas unas...
a. "el alambre" utiliza para empezar el bus I2C para el LCD
b. "LiquidCrystal_I2C" utilizado para el LCD I2C
c. "Matemáticas" necesitadas para hacer los cálculos de RPM más tarde
2. definir sus pines de entrada/salida
a. ajuste "solinoid1pin" al pin digital 9
b. Configure la "potpin" como pin analógico 1
c. Se "ignitioninputpin" como perno 2 (esto va en el sensor de efecto hall).
d. establecer su "interruptnumber" como número de interrupción 0 (el número del pin digital 2)
3. definir las siguientes variables. (Volátil se utiliza porque estas variables se utilizan en el ISR)
a. "previousstate"
b. "buttonstate"
c. "counter1"
d. "Inicio"
e. "finish"
f. "transcurridos"
g. "RPM"
4. ahora en la sección de configuración general que sólo se ejecuta una vez al empezar para arriba a arduino
a. Fije sus pines como entradas y salidas
b. establecer el estado inicial de las variables de pernos
c. colocar la rutina de servicio de interrupción con la configuración
d. iniciar y encender la luz trasera del LCD
e. una declaración en la pantalla de salida
f. iniciar comunicación serial
5. ahora aquí viene el bucle principal. Se ejecutará por siempre hasta que se apaga, el arduino
a. salida buttonstate previousstate y counter1 al puerto de serie para el diagnóstico de problemas más adelante.
b. realizar cálculos para la RPM
c. configurar If/Then instrucciones para activar el solenoide sólo cuando se detecta el primer imán y mantenerla hasta que se detecta el segundo imán para apagarlo.
d. establecer If/Then instrucción a contar el tiempo entre detección de sensor de efecto hall
e. hacer otra si luego declaración que salidas las RPM a la pantalla cada vez que el contador es múltiplo de 6. Esto se hace para reducir el lag en los motores cuando las RPM se envía a la pantalla LCD
f. Inserte su rutina de servicio de interrupción. Esto restablece el buttonstate, prevousstate y agrega uno al contador de cada vez.