miércoles, 13 de octubre de 2021

Servo motores con arduino

Los servos son un motor de corriente continua al que vamos a poder controlarle la posición y la velocidad de giro. Por lo general la posición va de 0º a 180º. La manera de controlar el servo es mediante la modulación de ancho de pulso


Vamos a utilizar pulsos del orden de 0.8 ms para llevar el brazo del servo a la posición 0º y pulsos de aproximadamente 2.0 ms para llevar el brazo a 180º

Servo SG90




En las especificaciones podemos ver que: 
  • El color naranjo corresponde a la entrada de pulso
  • El rojo al positivo que recibirá los 5v 
  • El café al negativo que va a tierra
También nos indica que el periodo apagado del servo máximo es de 20 ms

Conexión


Programación

1. Vamos a incluir la librería de servo
2. Vamos a declarar una variable para llamar al servo
3. Vamos a usar el método attach para asignar el pin donde se va a sacar la librería 



Luego para comenzar a mover el servo en void loop solo usamos la variable del servo seguidamente de "write" y escribimos el ángulo a mover

Ahora vamos a hacer 

1. Primero definimos nuestros valores mínimos y máximos de ángulo (0 y 180) como constantes y agregando el modo byte para que obtimicemos la memoria 
2. Luego hacemos un bucle for partiendo desde cero, poniendo como condición la variable angulo maximo y sumando de 1 en 1
3. Dentro del bucle vamos a definir el movimiento del servo con write. En vez de colocar un angulo usaremos la i para que vaya aumentando de uno en uno
4. Agregamos un delay de 20 (que es lo que indica el fabricante) para que pause entre orden y orden
5. Luego creamos otro blucle for pero partiendo desde 180, poniendo como condición el angulo minimo y restando de 1 en 1 (esto es para que después de girar 180º se devuelva 180º)
6. Entre ambos blucles for colocamos un delay de 1000


Aumentar velocidad


Con potenciometro

Conexión


Programación


Vamos a capturar la posición del potenciometro midiendo el valor que recibimos por A0

1. Declaramos una variable tipo entero llamada "valor" que va a ser igual a la lectura del pin del potenciometro
2. Ahora vamso a adaptar ese valor creando una nueva variable int llamada "valor_adaptado" que vamos a igualar a map y entre parantesis vamos a usar:
  • Valor
  • Numero mínimo y máximo del potenciometro (0 -1024)
  • Variable angulo_minimo correspondiente a 0º
  • Variable angulo_maximo correspondiente a 180º
3. Ahora vamos a llamar al servo para escribir ("write") la variable "valor_adaptado"
4. finalmente und elay


No hay comentarios:

Publicar un comentario

Instalar paquetes de phyton en blender

Para agregar nuevos paquetes o mpdulos al phyton que tiene blender tenemos dos opciones según la documentación de blender   1. Reemplazar el...