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
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