Está en la página 1de 9

1.

Para identificar los terminales de la tarjeta Arduino UNO tome como referencia
la guía de la práctica anterior.

Figura 1 Distribución de los terminales de la tarjeta Arduino

2. Para comprobar el correcto funcionamiento del servomotor y verificar el


posicionamiento implemente el siguiente código.
Código para Arduino:
#include <Servo.h>
Servo servomotor;
void setup ()
{
Serial.begin(9600);
servomotor.attach(3);
delay(50);
}
void loop()
{
//servomotor a 0°
servomotor.write(0);
Serial.println(0);
delay(1000);

//servomotor a 90°
servomotor.write(90);
Serial.println(90);
delay(1000);

//servomotor a 180°
servomotor.write(180);
Serial.println(180);
delay(1000);
3. Analice el código, realice una breve descripción de este, además un diagrama de
flujo del funcionamiento del código.
Análisis del código:
Primero importar la librería <Servo.h>, después creamos un objeto de tipo Servo en este
caso Servo.servomotor pues así obtendremos todas sus funcione asociadas, después.
Para inicializar el servomotor empleamos servomotor.attach (3), donde colocamos el
Pin por donde va a ingresar la señal, todo este proceso se va a realizar a una velocidad
de 9600 baudios, para la parte de void loop utilizamos servomotor.write (0) que va a
leer el ángulo en el cual debe posicionarse el servomotor en este caso 0°, después se
imprime los datos obtenidos mediante Serial.println(0°) con una demora de 1000 ms,
este mismo proceso se debe realizar para los valores 90° y 180°, pues de esta manera se
puede comprobar el funcionamiento del servomotor.
Diagrama de flujo:

Figura 2. Diagrama de flujo del código para Arduino


Análisis de funcionamiento
Después de haber comprobado el terminal que nos permite conectar el servomotor con
el Arduino, copiamos el código que nos permite mover el servomotor en sus grados de
libertad correspondientes de acuerdo con su modelo, para verificar el estado del
elemento cargamos el código a la placa Arduino, para observar cual es la posición 0° se
pinto una de las hélices y de esta manera poder ver los cambios de posición que existe.

Figura 3. Visualización de datos en el Monitor serial

Figura 4 Servomotor posicionado en 0°

Figura 5 Servomotor posicionado en 90°


Figura 6 Servomotor posicionado en180°

Después de observar los cambios en la posición de la hélice pintada se puede concluir


que el servomotor está funcionando de manera correcta, pues se está posicionado en un
rango de 0° a 180° con un intervalo de tiempo que nos permite corroborar de manera
visual los giros que realiza el servomotor.
4. Para controlar desde Python el desplazamiento del servomotor implemente los
siguientes códigos.
Código para Python:
# -*- coding: utf-8 -*-
"""
@author: Usuario-AGC
"""
import serial
arduino=serial.Serial('COM3',9600)

print("INGRESE EL VALOR DE DESPLAZAMIENTO ENTRE 0 -180 \n")


entrada= input()
while entrada != "Salir":
try:
if(int(entrada)>= 0 and int(entrada <= 180):
arduino.write(str(entrada).encode())
print("Desplazamiento: " + str(entrada))

else:
print("ERROR: ENTRE 0° - 180°")
print("Ingrese un número entre 0° y 180° ")
entrada= input()
except KeyboardInterrupt:
break
arduino.close()

Código par Arduino:


#include <Servo.h>
Servo servomotor;
int datos;
void setup()
{
Serial.begin(9600);
servomotor.attach(3);
delay(50);
}

void loop() {
if (Serial.available ()> 0)
{
datos=Serial.parseInt();
servomotor.write(datos);
Serial.println(datos);
delay(50);
}
}

5. Analice el código, realice una breve descripción de este, además un diagrama de


flujo del funcionamiento de código
Análisis del código para Arduino
Primero debemos importar las librería #include <Servo.h> , colocamos la variable para
controlar el servomotor de la siguiente forma: Servo servomotor, después declaramos
una variable entera int datos que va a almacenar los números ingresados, la void setup
colocamos la velocidad de entrada de datos e inicializamos el servomotor en el pin 3,
para el bloque de void loop abrimos la comunicación para que el usuario envíe los
datos, con comando write el servomotor escribe los datos de entrada por ultimo imprime
dichos datos y se genera el movimiento del servomotor.
Diagrama de flujo de Arduino

Figura 7. Diagrama de flujo para el código de Arduino


Análisis del código en Python
Para establecer la comunicación Python- Arduino, dentro del código de Python se debe
importar la librería serial, después declaramos una variable utilizando serial. Serial que
nos servirá para abrir el puerto de comunicación que en este caso es COM3 y junto al
puerto debemos colocar la velocidad de entrada de datos, como estamos enviando datos
vamos a imprimir un mensaje pidiendo al usuario un valor que este en el rango de 0° a
180° , para que los datos cumplan con el pedido, se genera un ciclo If para que compara
los datos de entrada, en caso de ser correctos imprime el valor del desplazamiento del
servomotor, y si el dato es erróneo pide al usuario que ingrese nuevamente el dato hasta
que cumpla la condición correcta. Por último, cerramos el puerto del Arduino que
estamos utilizando.
Diagrama de flujo de Python

Figura 8. Diagrama de Flujo para el código de Pytho


Análisis de funcionamiento
Para comprobar la comunicación entre Python y Arduino, se van a ingresar valores
que estén en el rango de movimiento del servomotor para ver cómo cambia de
posición la hélice.

Figura 9. Inicialización del condigo en Python

 Dato de ingreso 90°

Figura 10. Valor de entrada 90°


Figura 11.Servomotor a 90°

 Dato de ingreso 180°

Figura 12.Valor de entrada 180°

Figura 13. Servomotor a 180°

 Dato de ingreso 0°

Figura 14. Valor ingresado 0°


Figura 15. Servomotor a 0°

 Datos fuera de rango

Figura 16. Condición de error por ingresar mal el número

Después de implementar los códigos se comprueba que la comunicación entre Arduino


y Python es correcta pues se ingreso datos desde la consola de Python y se pudo
visualizar los cambios de posición que sufrió la hélice, también se pudo comprobar que
en caso de que el número no esté en rango el programa emitía un mensaje de error y
pedía que ingrese un nuevo dato hasta que se cumpla la condición.

También podría gustarte