Está en la página 1de 5

Instituto Tecnológico de Oaxaca

ACTIVIDAD N°5

Alumno: Marcos Mendoza Pedro

N° Control 19161333

Club de Programación

Ingenieria en Sistemas Computacionales

19/07/2022
Materiales
● Placa Arduino UNO
● 2 Diodos Led
● 2 Resistencias de 220 ohm
● Potenciómetro 250k ohm
● Protoboard
● Micro Servomotor

Desarrollo

1.Se hará uso de los potenciómetros, que son dispositivos analógicos que en este caso estará
conectada a uno de los pines analógicos de la placa Arduino Uno (A5), mientras que de igual manera
estará conectada a la corriente de 5v de la propia placa y la terminal de GND (Ground) o tierra.

Un servomotor es un dispositivo rotativo que hace un giro


rotativo con respecto a una medición angular, para conectarlo
es similar al potenciómetro, se conecta la terminal de poder a
la misma pista de corriente de 5v además de la terminal de
tierra va a la correspondiente pista del protoboard. Para darle
la señal digital que dictara el movimiento del motor se conecta
el pin de señal a uno de las terminales digitales de la placa
arduino (Pin 2). Para monitorear el movimiento del servomotor
se colocan dos diodos LED a cada lado del dispositivo, que se
encenderá de acuerdo a la programación que se verá adelante.
2. Programación del programa que controla el circuito primero se tiene que definir la librería
correspondiente para poder trabajar con servomotores, además de declarar un nuevo servo; en este
caso se llamará “palanca”.
#include <Servo.h>
Servo palanca;

3. Declaramos 3 variables de tipo entero que almacenará: el valor de grados que girará el servo
motor, el número del pin del diodo rojo y del diodo verde.
int grados;
int rojo=3;
int verde=4;

4. Declaramos los métodos, primero el método setup(). Inicializamos la consola de la placa con la
instrucción begin(), declaramos el pin analógico del servo con la instrucción attach() con parámetro
el número del pin.

5. Finalmente se declaran los pines digitales 3 y 4 como de salida.


void setup()
{
Serial.begin(9600);
palanca.attach(2);
pinMode(rojo, OUTPUT);
pinMode(verde, OUTPUT);
}

6. Construir el método bucle que se estará ejecutando en ciclo; primero se mapean la señal analógica
del potenciómetro que marca un valor entre 0 y 1023 para que en la variable se guarde un valor
entre 0 y 360 que son grados de una circunferencia, en seguida se imprime en consola el valor del
pin analógico que viene del potenciómetro, seguimos con un delay de 500 ms y colocamos la
instrucción write() en la instancia del servomotor con el parámetro
“grados” para indicar el giro del servo.
void loop()
{ grados = map
(analogRead(A5),0,1023,0,180);
Serial.println(analogRead(A5));
delay(500); palanca.write(grados);
7.Agregamos un condicional if, si el valor de los grados es menor o igual a 90 (ángulo recto) se usa
la instrucción digitalWrite() para encender el led rojo y mantener apagado el led verde. La sentencia
hace lo contrario, enciende el diodo verde y apaga el rojo.
if (grados<=90)
{
digitalWrite(rojo,HIGH
);
digitalWrite(verde,LOW
);
}

else
{
digitalWrite(verde,HIGH
);
digitalWrite(rojo,LOW);
}
}

Resultado

8. El estado inicial es el potenciómetro en su mínimo con el diodo led rojo encendido y el servo es
su posición inicial.

9. Al mover el potenciómetro podemos ver este movimiento reflejado en el servomotor con una
rotación.
10. Al rebasar los 90 grados podemos ver como el diodo led verde se enciende.

También podría gustarte