Saltar a contenido

A24. Servomotor

Vamos a realizar el control de un servomotor del tipo 9g para que se posiciones entre 0 y 180 grados.

Control automático

Simplemente se trata de mover el servo entre sus dos posiciones límite de forma automática.

Circuito

El esquema del montaje que vamos a realizar es el siguiente:

Esquema de montaje para servo
Esquema de montaje para servo

Realizamos el montaje siguiente:

Montaje para control de servo
Montaje para control de servo

Antes de hacer los programas vamos a posicionar el servo en el ángulo de cero grados para colocarle la pala que nos indicará el movimiento. Para ello creamos en MakeCode un sencillo programa como el siguiente:

Posicionar servo en cero grados
Posicionar servo en cero grados

Tocando la rueda dentada del servo alimentamos el circuito y comprobamos el sentido en el que gira y justo en ese extremos estará situado el cero.

MicroPython

Un programa como el siguiente hace que el servo se esté posicionando continuamente entre 0 y 180 grados.

from microbit import *
# Ver la entrada servomotor de la sección componentes avanzados
# en el apartado Conceptos tecnicos:
# https://fgcoca.github.io/Guia-de-trabajo-para-microbit/conceptos/avanzados/#el-servomotor
while True:
    pin0.set_analog_period(20)
    for i in range(26,128,1):
        pin0.write_analog(i)
        sleep(10)
    for i in range(128,26,-1):
        pin0.write_analog(i)
        sleep(10)

El programa lo podemos descargar de:

MakeCode

El programa es el siguiente:

Control de servomotor
Control de servomotor

El programa lo podemos descargar de:

MicroBlocks

Tenemos que añadir la libreria "Servomotores" para usar los bloques de la misma. El programa es el siguiente:

Control de servomotor
Control de servomotor

El programa lo podemos descargar de:

Control por potenciómetro

Mover el servo entre sus dos posiciones límite accionando el cursor de un potenciómetro.

Circuito

El esquema del montaje que vamos a realizar es el siguiente:

Esquema de montaje de control de servo por potenciómetro
Esquema de montaje de control de servo por potenciómetro

Realizamos el montaje siguiente:

Esquema de montaje de control de servo por potenciómetro
Esquema de montaje de control de servo por potenciómetro

MicroPython

Un programa como el siguiente hace que el servo se posicione según la situación del cursor del potenciómetro.

from microbit import *

def mapeo(valor,deBajo,deAlto,aBajo,aAlto):
    return (aAlto-aBajo)*(valor-deBajo) / (deAlto-deBajo) + aBajo 

while True:
    valor=pin0.read_analog()
    pin1.set_analog_period(20)
    # Ver apartado "Control de posición con Python" en el
    # apartado correspondiente
    pin1.write_analog(int((mapeo(valor,0,1023,128,25))))

El programa lo podemos descargar de:

MakeCode

El programa es el siguiente:

Control de servomotor por potenciómetro
Control de servomotor por potenciómetro

El programa lo podemos descargar de:

MicroBlocks

Tenemos que añadir la libreria "Servomotores" para usar los bloques de la misma. El programa es el siguiente:

Control de servomotor por potenciómetro
Control de servomotor por potenciómetro

El programa lo podemos descargar de: