martes, 21 de abril de 2026

Ascensor controlado con PICAXE 08 M2

Este modelo didáctico de ascensor de tres niveles utiliza un servo modificado como motor y un PICAXE 08M2+ como microcontrolador. Las piezas en 3D se pueden encontrar en Thingiverse.

El pin C0 del microcontrolador es el que controla el servo. De esta forma con un solo pin podemos hacer que el ascensor suba y baje. 


Con los otros cuatro pines libres se han de leer los tres pulsadores y los tres finales de carrera. Dos pines leen los tres pulsadores y otros dos los tres finales de carrera. 


Cuando se aprieta el pulsador de la planta baja se envían 5 voltios al pin C2, cuando se aprieta el del primer piso se envían al pin C1 y cuando se aprieta el del segundo piso se envía la señal a los dos pines C2 y C1. La salida de este ultimo pulsador se hace a través de dos diodos 1N4007 para no engañar al microcontrolador cuando presionamos los pulsadores de la planta baja o del primer piso. 


Lo mismo se ha de hacer en el caso de los finales de carrera. El de la planta baja envía señal al pin C3, el del primer piso al pin C4 y el del segundo piso a los pines C3 y C4, pero a través de dos diodos 1N4007.

Los cuatro pines C1, C2, C3 y C4 están conectados a tierra por medio de una resistencia de 10 K.

Para mover la caja del ascensor utilizaremos un servo modificado, de forma que se le ha cortado el extremo del eje principal que se introduce en el potenciómetro, y también el tope que existe en este eje principal que impide que gire una vuelta completa. 

El microcontrolador será un PICAXE 08 M2. En este microcontrolador se pueden utilizar los pines de salida C.0, C.1, C.2 y C.4 para controlar el servo. 

Los microcontroladores M2 pueden ejecutar cuatro u ocho tareas separadas en paralelo, lo que permite, por ejemplo, que un diagrama de flujo de Logicator contenga 4 celdas de inicio separadas y 4 tareas de diagrama de flujo independientes. La multitarea también es compatible en listados de programas en BASIC.  

Los microcontroladores M2 ofrecen una capacidad de memoria mucho mayor (2048 bytes, hasta 1800 líneas de programa) en comparación con los antiguos microcontroladores M de 256 bytes. Así, por ejemplo, el 08M2 ofrece 8 veces la capacidad de memoria del antiguo 08M.  

Funcionan a voltajes más bajos, hasta 1,8V, lo que hace que el M2 sea ideal para su uso con paquetes de baterías de 3V.  

Tiene doble de variables de uso general (ahora 28) de tipo byte, con un total de hasta 512 bytes de RAM. Nueva variable ‘time’ que cuenta los segundos transcurridos. 256 bytes de memoria EEPROM de datos no volátil.  

Reloj interno más rápido (hasta 32MHz), lo que permite un procesamiento de programas hasta 8 veces más rápido. Compatibilidad total con funciones comunes como tonos de llamada, servos, sensores digitales de temperatura y entrada/salida infrarroja en cualquier pin.  

Compatibilidad total con funciones avanzadas como DAC, latch SR, comandos serie por hardware (para velocidades de baudios mucho más altas), dispositivos de memoria i2c y control PWM de motores.  

Los microcontroladores M2 son microcontroladores personalizados fabricados por Microchip Inc. exclusivamente para Revolution Education y, por lo tanto, están grabadas en fábrica con el nombre completo PICAXE-M2.

Para usar el PICAXE 08M2+ (He tenido que comprar este microcontrolador ya que el 08 que tenía no soportaba el comando servo.) utilizo una placa para robot seguidor.


En la placa original se han retirado los leds y transistores y las resistencias de estos y de los sensores de infrarrojos. Se han añadido las 4 resistencias de 10 K y el regulador de tención 7805, para poder alimentar la placa con una pila de 9 voltios.

Si utilizamos el pin C.0 para controlar el servo se ha desconectar el servo antes de cargar el programa, ya que este pin también lo utiliza el puerto serie. Un programa de prueba podría ser el siguiente (El valor del punto central del servo en principio es 150, pero puede variar algo de uno a otro, en nuestro caso es 145).

servo 0, 145      ;Posición central del servo o parada en el servo de giro continuo

pause 5000 

main:

    servopos 0, 145   ;Servo parado

    pause 5000          ;Espera de cinco segundos

    servopos 0, 100   ;Giro en sentido antihorario

    pause 5000          ;Espera de cinco segundos

    servopos 0, 200   ;Giro horario

    pause 5000         ;Espera de cinco segundos

goto main               ;Retorno al principio del bucle 

Primer programa

El siguiente programa permite mover el ascensor entre la planta baja y el primer pico. Pulsador 1 y piso 1 son el pulsador y el final de carrera de la planta baja. Para que se pueda iniciar el proceso la caja del ascensor ha de estar en alguno de los dos puntos, o en la planta baja o en el primer piso, pero no en una posición intermedia.
servo 0, 145      ;Posición central del servo o parada en el servo de giro continuo
pause 10 

do

if pinC.2 = 1 then ;pulsador 1
b0 = 1
end if

if pinC.1 = 1 then ;pulsador 2
b1 = 1
end if

if pinC.3 = 1 then ;piso 1
b0 = 0
b3 = 0
b2 = 1
end if

if pinC.4 = 1 then ;piso 2
b1 = 0
b2 = 0
b3 = 1
end if

if b1 = 1 and b2 = 1 then
servopos 0, 70 ;Sube
pause 80
end if
 
servopos 0, 145 
 
if b0 = 1 and b3 = 1 then
servopos 0, 240 ;Sube
pause 80
end if
 
servopos 0, 145 
 
loopp

















No hay comentarios: