Tabla de contenido:

Motor de velocidad variable controlado en serie: 6 pasos
Motor de velocidad variable controlado en serie: 6 pasos
Anonim
Motor de velocidad variable controlado en serie
Motor de velocidad variable controlado en serie

Controle la velocidad de un pequeño motor de CC con nada más que el puerto serie de su computadora, un solo MOSFET y algún software trivial. (El MOSFET y el puerto serie constituyen el "control de velocidad"; todavía necesitará un motor y una fuente de alimentación adecuada para ese motor; mientras que el puerto serie puede proporcionar el voltaje para encender y apagar un mosfet, puede ' t suministre la corriente que necesita un motor típico).

Paso 1: mira el circuito

Mira el circuito
Mira el circuito

Vamos a hacer una modulación de ancho de pulso usando un MOSFET de potencia de canal N genérico conectado al pin de transmisión de datos desde el puerto rs232 de la computadora. Cuando el puerto serie está inactivo, el pin se ubicará en el estado "1", que para cuando se traduzca a rs232, es algo así como -12V (dependiendo de los controladores, podría estar más cerca de -9V o -5V), y el transistor estará bastante APAGADO. Cuando transmitimos bits "0" en el puerto serie, el pin rs232 pasará a + 12V más o menos, lo que es suficiente para encender la mayoría de los mosfets bastante bien.

Si transmitimos muchos "0" bis seguidos, el motor estará cerca de estar completamente encendido y el motor funcionará rápidamente. Si transmitimos principalmente bits "1", el motor funcionará más lentamente.

Paso 2: Conéctelo

Conéctelo
Conéctelo

Dado que solo hay un componente y solo unas pocas conexiones, puede agregar cables de "forma libre".

Los MOSFET son sensibles a la estática, así que tenga un poco de cuidado, pero muy poco es crítico.

Paso 3: configurar archivos con valores PWM

Configurar archivos con valores PWM
Configurar archivos con valores PWM

Una forma de controlar el motor sin tener que escribir NINGÚN software es preparar algunos archivos que contengan los bytes apropiados (con más o menos 0 bits), y simplemente COPIARlos al puerto COM donde tiene el motor conectado. Preparé varios archivos (usando emacs, pero lo que sea que funcione para ti está bien):

  • 0.pwm:: contiene 5000 caracteres NULL (espacio de control en la mayoría de los teclados) [br] Esto es lo más cercano a la "velocidad máxima" que podremos conseguir con esta técnica.
  • 1.pwm:: contiene 5000 caracteres de control A (ascii 01) (un bit "1" por carácter)
  • 3.pwm:: contiene 5000 caracteres de control-C (ascii 03) (dos bits "1" por carácter)
  • 7.pwm:: contiene 5000 caracteres de control-G (ascii 07) (tres bits "1" por carácter)
  • 15.pwm:: contiene 5000 caracteres de control-O (ascii 15) (cuatro bits "1" por carácter)
  • 31.pwm:: contiene 5000 caracteres de control-_ (ascii 31) (cinco bits "1" por carácter)
  • 63.pwm:: contiene 5000 "?" caracteres (ascii 63) (seis bits "1" por carácter)
  • 127.pwm:: contiene 5000 caracteres DEL (ascii 127) (siete bits "1" por carácter)

(Ahora que he hecho dibujos, notará que los patrones de bits reales no son ideales. Dado que la serie rs232 transmite LSB primero, realmente queremos cambiar a ceros en lugar de unos. ¡Un ejercicio para el estudiante!)

Paso 4: Juega con DOS: configura tu puerto COM y copia los archivos

Juega con DOS: configura tu puerto COM y copia los archivos
Juega con DOS: configura tu puerto COM y copia los archivos

9600 bps es una tasa de bits común. Coincide muy bien con "aproximadamente" un byte por milisegundo, por lo que en este caso corresponde a una frecuencia PWM de 1000Hz, que creo que debería estar bien para motores más pequeños. Puede experimentar con diferentes velocidades de bits para ver cómo funcionan las cosas, que es una de las ventajas de este método. Cree una ventana de DOS (o "Símbolo del sistema") (suponiendo que esté utilizando un sistema operativo Windows) y configure su puerto com como: mode com1: 9600, n, 7, 1 "Eso le dice al puerto de comunicaciones que se ejecute a 9600bps y envíe 7 bits en cada carácter (para que coincidan con nuestras 7 longitudes de bits diferentes). La" n "significa SIN paridad, así que esos serán los únicos bits de datos. El "1" significa que habrá un bit de "parada", lo que evitará que encienda el motor por completo (bueno). Así que ahora puede encender el motor con comandos like: copy 0.pwm com1: dado que estamos enviando 5000 caracteres a aproximadamente 1 por milisegundo, el motor debe encenderse casi a la velocidad máxima durante aproximadamente 5 segundos. Si desea menos de 5 segundos, haga un archivo más corto. De manera similar, puede hacer: copiar 127.pwm com1: para hacer funcionar el motor a la velocidad más baja posible. Con la configuración que tenía, el motor no giraba en absoluto con nada "más lento" que 31.pwm, pero YMMV (creo k Tenía un motor de 12 V que funcionaba con 5 V de baterías). El comando COPY te permite unir archivos, así que si quieres que tu motor acelere y luego vuelva a disminuir la velocidad, puedes hacer algo como: copiar 31.pwm + 15. pwm + 7.pwm + 0.pwm + 7.pwm + 15.pwm + 31.pwm com1:

Paso 5: controlar el motor desde un programa

Controlar el motor desde un programa
Controlar el motor desde un programa

Si está escribiendo un programa, probablemente pueda abrir COM1: como un archivo y simplemente escribir en él como si fuera cualquier otro archivo. Ser capaz de cronometrar los períodos en los que el motor está encendido mediante la salida de un número particular de caracteres parece ser muy útil. No olvide que es muy probable que el sistema almacene en búfer los caracteres que envía al puerto serie, por lo que solo porque regrese una llamada WRITE no significa que el motor haya terminado de hacer lo que le indicó. Dado que no hacemos nada "sofisticado" con las señales del puerto de comunicaciones, no debería tener que investigar las opciones arcanas que podría admitir. (aunque, si puede averiguar cómo enviar una secuencia BREAK al puerto com, ese es un estado continuo de "0" y hará que el motor funcione TODO el camino; más que enviar 0 caracteres continuos).

Si su lenguaje de programación no le permite enviar salida a COM1:, es posible que aún pueda controlar el motor "llamando" a DOS para que realice comandos de copia. (De acuerdo. Descargué Visual Basic Express 2005 de Microsoft (que es gratis) y logré atar una barra de desplazamiento horizontal a la velocidad del motor, controlada a través del puerto serial. Zip adjunto. Probablemente tenga más de lo necesario para duplicar el programa en su sistema, pero no pude averiguar exactamente qué bits se necesitaban. El programa se simplifica y se hace más difícil de entender (lo siento) al ser multiproceso. Un subproceso no hace nada más que la salida al puerto serie, y el el hilo principal lee la barra de desplazamiento y actualiza la información utilizada por el hilo en serie).

Paso 6: ¡Experimenta

¡Experimentar!
¡Experimentar!

Si las cosas están funcionando básicamente, esto proporciona una gran cantidad de espacio para la experimentación.

  • ¡Arregla mis patrones de bits!
  • ¿Importa mucho la tasa de bits?
  • ¿Tiene que controlar el ancho de los pulsos de "encendido" y "apagado", o simplemente controlar su proporción es suficiente?
  • Si solo tiene que controlar la proporción, puede considerar secuencias de varios caracteres a velocidades de bits más altas para obtener más niveles de velocidad. La salida de 0 seguido de 127 estaría aproximadamente a la mitad.
  • Esto también debería funcionar para atenuar las bombillas de las linternas.

Recomendado: