Como MOVER un SERVO utilizando el MONITOR SERIAL
Video
En esta práctica programaremos un control de giro para un servomotor SG90 utilizando solo el monitor serial del Arduino IDE y un Arduino UNO.
Como MOVER un SERVOMOTOR utilizando el MONITOR SERIAL | CONTROLA un SERVO por COMUNICACIÓN SERIAL
- Materiales:
Para realizar el circuito necesitas:
• 1 Arduino UNO,
• 1 Servomotor SG90,
• Jumpers.
- Código
Comenzaremos el sketch incluyendo la librería para el servomotor que ya tiene instalado el IDE de Arduino. Podemos añadirla desde la pestaña Programa->Incluir Librería -> Servo. Automáticamente se incluirá en el código.
Una vez que se tengamos la librería, abriremos un nuevo objeto de tipo “Servo” con el nombre de “servo1” (tú puedes nombrarlo como gustes).
#include <Servo.h>
Servo servo1;
Antes de entrar al void setup(), definiremos las variables que utilizaremos en todo el programa. Para el servo, usaremos el pin donde estará conectado el cable de datos.
Y para el monitor serial una varible de tipo String para almacenar la cadena de caracteres que estaremos obteniendo por el monitor serial. Dando en total de dos variables.
int pinServo = 9;
String inString = "";
Dentro del void setup(), configuramos el pin donde estará conectado el cable de datos del servomotor con la función .attach y la inicialización del puerto serial a 9600 baudios.
void setup() {
Serial.begin(9600);
servo1.attach(pinServo);
}
Para el void loop(), estructuraremos todas las instrucciones que debe hacer el Arduino. Utilizando una condicional donde la instrucción sea que: si la lectura del puerto serial tiene algún dato, lo almacenaremos en una nueva variable llamada inChar.
Con la función .read podremos obtener los bytes del serial.
if(Serial.available() > 0){
int inChar = Serial.read();
Dentro de la primer condicional, abriremos otra para saber si el usuario presiono “ENTER” o hubo un salto de línea. Normalmente '\n' significa salto de línea en programación, puedes verlo mucho en Java.
Si no hay salto de línea, la variable inChar la cambiamos a carácter (char) y de ahí agregarla a la cadena InString.
if(inChar != '\n'){
inString += (char)inChar;
}
Si existe salto de línea, abrimos una variable de tipo float con el nombre de angulo para que almacene el cambio de string a float de la cadena InString. Posteriormente la variable angulo se podrá mandar al servomotor para que gire en el ángulo que se puso en el monitor serial
void loop() {
if(Serial.available() > 0){
int inChar = Serial.read();
if(inChar != '\n'){
inString += (char)inChar;
}else{
float angulo =inString.toFloat();
Serial.println(angulo);
servo1.write(angulo);
inString = "";
}
}
}
- Instrumentación
Conectaremos los pines de alimentación del servomotor a los pines 5v y GND del Arduino para poder energizar al componente, puedes conectarlos directamente a la placa Arduino o hacer puentes de conexión en la protoboard.
El pin de datos del servo lo conectaremos al pin 9 porque es un pin digital PWM, podemos destacarlo por la línea ondeada junto del número. Terminamos la conexión con la unión del pin de datos y ejecutamos el programa.
DESCARGAS
COMO MOVER UN SERVOMOTOR CON EL MONITOR SERIAL
Imágenes
APRENDE LO QUE NECESITAS
NUESTROS CURSOS
Creación de un HMI en Android Studio y Arduino
Nivel: Básico 2 horas y 30 min (146 min.)
Diseña, maqueta y programa un HMI completo en Android Studio vinculado a un Arduino mediante Bluetooth.
CONSTRUYE un DISPENSADOR AUTOMÁTICO CASERO sin ARDUINO desde CERO
Nivel: Básico 27 minutos
Construye desde cero un dispensador automático casero sin Arduino desde cero, utilizando pura electrónica.
Creación de carrito robot desde cero usando mando de PS4
Nivel: Básico 2 horas y 19 min (139 min.)
Construye desde cero un carrito robot con arduino manipulado por un control de PS4 y un teléfono Android.
¿Tienes un proyecto que quieras compartir?
Mándanos tu proyecto o prácticas que quisieras difundir en la comunidad a nuestras redes.
ó
team@codiziapp.com