Paso 3: Software
El enlace de software se enumera a continuación. Mientras que está dirigido para el 12F683, fácilmente se adaptó a otras versiones de la foto. Usted necesitará cambiar la línea que identifica la versión de PIC (lista =) y el archivo de inclusión, pero los cambios intuitivas. La línea __CONFIG también necesite ajustar sólo porque uno o dos de las etiquetas utilizadas se deletrean diferentemente en algunos de los archivos de inclusión. También necesitará seleccionar un PIC que soporta PWM. Por desgracia, mi otro favorito PIC (16F688) no tiene capacidad PWM.
El software es bastante simple una vez que la inicialización de PWM está averiguada. Para ayudar con los cálculos del valor de registro he utilizado un sitio web de cálculo PWM ubicado en:
www.micro-examples.com/Public/microEX-navig/doc/09...
Cuando me escribió primero el código PIC ajuste la frecuencia PWM a 20 kHz. Entonces conecté un voltímetro digital a la salida PIC y varió en una agradable manera linear de 0 a 5 voltios. Lamentablemente, cuando conectado el PIC al módulo L298N descubrí que cuando el PWM la primera salida de cero era más de 10 voltios. Se me ocurrió que tal vez que el módulo L298N no fue capaz de reaccionar que rápidamente el activar impulsos por lo que arranca la frecuencia hacia abajo y finalmente colocaron a 500 Hz.
Una de las "características" del tren de válvulas reguladoras es un sentido de impulso de aceleración y frenado para simular el funcionamiento de un tren real. Para lograrlo, se inserta un retraso simple en Main_Loop. Los valores indicados, tarda aproximadamente 13 segundos de 0 a 12 voltios o de 12 voltios a cero. El retraso puede modificarse fácilmente para tiempos más largos o más cortos. El único caso donde el impulso no es en efecto cuando se cambia el interruptor de dirección. Para fines de protección el ciclo de trabajo PWM inmediatamente se establece en 0% cuando este interruptor es cambiado. Así que, en efecto, el interruptor de dirección también funciona como un freno de emergencia.
Para asegurarse de inmediato del interruptor de dirección ponemos su código en un controlador de interrupción. También nos permite utilizar una función PIC mencionada en un episodio anterior llamado "interrumpir en el cambio". Lo que pasa es que la interrupción no se basa en el nivel lógico en el pin (es decir: alta o baja) como entradas de interrupción más. Por el contrario, se interrumpirá si cambia el nivel de lógica de lo que era anteriormente. Esa es la razón por la cual nuestro interruptor de dirección tiene un lado tiró hasta + 5 y el otro atan a tierra.
Bueno, eso es para el episodio 9 de diversión con foto montaje. Estad atentos para más episodios.