Componentes y suministros
|
× | 1 | ||||
|
× | 1 | ||||
|
× | 1 | ||||
|
× | 1 |
Acerca de este proyecto
Introducción
Recientemente intenté crear un robot humanoide, lo que significa tratar con servomotores. Todo funcionaba igual de bien justo antes de que intentara que el robot HABLARA. Cuando necesitaba usar la biblioteca TMRpcm. Pero hay bibliotecas como
#TMRpcm.h
#VirtualWire.h
son librerías que utilizan el Timer1 de Arduino. Parece que no puedes usar dos dispositivos simultáneamente donde ambos usan el mismo temporizador… Así que si mi robot está hablando, los servos no funcionan. Porque Servo.h y TMRpcm funcionan en Arduino TImer1. Que es un desastre. Si desea que ambos funcionen, debe usar otra biblioteca para los servos. ¿Qué es la biblioteca ServoTimer2? Esto usa Timer2 en Arduino… Desafortunadamente en Internet no pude encontrar ningún tutorial para entender cómo funciona realmente esta biblioteca ServoTimer2 y cómo usarla en el código. Así que decidí hacer un tutorial para que gente como yo lo entienda mejor. Usaremos un servomotor con esta biblioteca y crearemos un código de barrido de servo simple
Puedes ver el video para entender mejor.
Paso 1: Piezas y montaje:
La parte principal es un servomotor.
Estoy usando un micro servo sg90, cualquier modelo está bien.
Luego tome un brazo de servo como en la imagen 2 y péguelo en un cartón duro (es solo para obtener una buena visibilidad del grado) luego agregue el brazo al servo como en la imagen 4.
Paso 2: Descargue y agregue la biblioteca ServoTimer2 a Arduino
Primero, deberá descargar la biblioteca desde aquí. https://github.com/nabontra/ServoTimer2 y péguelo en la carpeta de la biblioteca de Arduino.
Luego vaya a boceto> incluir biblioteca> agregar zip.file desde la carpeta de la biblioteca.
Ahora estás listo para ir.
Paso 3: construye el circuito simple
es la parte mas facil
- Servo cable rojo a Arduino vcc (5v)
- gris – tierra
- Naranja-digital 6
NOTA: Como solo usamos un servo sin carga, es posible alimentar el servo desde Arduino 5v. Cuando use el servo para otros proyectos con más sensores y dispositivos, NO encienda el servo desde una fuente Arduino 5v. Nada se quemará, solo el proyecto no funcionará.
Paso 4: El código.
Antes de conocer el código de ServoTimer2, volvamos al escaneo de la biblioteca Servo.h.
(el motor girará de 0 grados a 90 grados – espere 1 segundo – luego a 180 grados – espere 1 segundo)
#include<Servo.h>
Servo servo1;
void setup()
{
servo1.attach(6); // put your setup code here, to run once
}
void loop()
{ // put your main code here, to run repeatedly:
servo1.write(0);
delay(1000);
servo1.write(90);
delay(1000);
servo1.write(180);
delay(1000);
}
Como puede ver en esta biblioteca, si quisiéramos rotar un servo a una posición determinada, solo teníamos que escribir el grado y el servo funcionaría bien. Pero en la biblioteca ServoTimer2, tenemos que escribir el ancho de pulso del servo y el servo se mueve a esa posición usando eso. Muy a menudo, 1500 significa 90 grados. El ancho de pulso máximo es 2250 y el mínimo es 750. Lo que significaría que 750 es 0 grados y 2250 es 180 grados. Pero déjame decirte que varía de servo a servo. Simplemente envíe sus valores y vea qué sucede. No te preocupes, no destruirá ni dañará un poco tu servo.
Ahora crearé el mismo código para ServoTimer 2 y luego comprenderá cuáles son las diferencias.
#include"ServoTimer2.h"
ServoTimer2 servo1;
void setup()
{
servo1.attach(6);
}
void loop()
{ // put your main code here, to run repeatedly:
servo1.write(750); //min pulse width for 0 degree
delay(1000);
servo1.write(1500); //pulse width for 90 degree
delay(1000);
servo1.write(2250); //max pulse width for around 180 degree
delay(1000);
}
Ahora solo encienda el arduino y vea con una escala de grados para qué valor gira el servo. Y al hacer esto, puede hacer avanzar su proyecto. Happy Making.o 2700 por hacerlo.
Paso 5: Encendido y experimento final de Arduino
Ahora solo encienda el arduino y vea con una escala de grados para qué valor gira el servo. Y compra haciendo esto, puedes avanzar en tu proyecto. Buena mano de obra.