Paso 6: Planificación de la programación
Me gusta usar el IDE de Arduino para mis proyectos personales y prototipos porque soy demasiado perezoso para sacar estudio de Atmel.
Antes de todos los componentes comencé a planificar el programa para el cargador. Quería correr 4 máquinas de Estados separados, uno para cada celda y ejecutarlas simultáneamente en tiempo real para asegurar el tiempo adecuado para el cálculo de la capacidad. La mejor manera que generalmente ello es con una interrupción de temporizador de hardware. La interrupción de temporizador se dividió en 4 ranuras de tiempo, terminó siendo 5 pero enfermo llegar a más adelante.
Uso de interrupciones del temporizador que genera es una gran manera para garantizar es ejecutar código a intervalos precisos. Utilizar una interrupción de contador de tiempo que los ciclos a través de todas las funciones que deban ser ejecutados. El período de la interrupción del temporizador debe ser más lento entonces el tiempo de ejecución más largo de todas las máquinas de estado corriente.
El código de sudo de diseño máquina básica estado que completé antes de código está abajo:
carga 0-enfriar
Si VCELL no constante entonces estado 0 //steady debería ser la sobre tensión durante 30 segundos
Si VCELL < VFULL entonces del estado 1 / / comenzar la carga
Si VCELL > = VFULL entonces state2 / / comenzar la descarga
1 - carga
Si VCELL > = VCHRD entonces estado 0 / / enfriar
Si VCELL < VCHRD entonces del estado 1 / / mantener carga
2 - descarga
Si VCELL > VPARADA entonces del estado 2 / / mantener descarga
Si VCELL < VPARADA entonces del estado 3 / / enfriar
3 - tiempo de reutilización de descarga
Si VCELL constante no debe ser //steady estado 3 la sobre tensión durante 30 segundos
Si VCELL > VLOW entonces estado 2 //start descarga otra vez
Estado 4 / / hacer