Como MOVER un SERVO utilizando el MONITOR SERIAL


servoserial.jpg

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

servoserial.jpg
servoserial2.jpg
servoserial3.jpg

APRENDE LO QUE NECESITAS

NUESTROS CURSOS


cursoarduinoyandroid.jpg

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.

cursodispensadorautomatico.jpg

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.

cursocarritorobot4wd.jpg

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.