Proyecto de Vinculación PVS-2018-031 · Proyecto de Vinculación PVS-2018-031 Desarrollo de...

Post on 02-Oct-2020

13 views 0 download

Transcript of Proyecto de Vinculación PVS-2018-031 · Proyecto de Vinculación PVS-2018-031 Desarrollo de...

Proyecto de VinculaciónPVS-2018-031

Desarrollo de habilidades técnicas en

el área de robótica en los estudiantes de la Unidad Educativa Don Bosco

PROGRAMACIÓN DE ENTRADAS Y SALIDAS

DIGITALES

1

Objetivos• Comprender el funcionamiento de las entradas y

salidas digitales de un Arduino.

• Analizar conceptos relacionados con las entradas ysalidas digitales y con los sistemas digitales.

• Conocer cuáles son las funciones que permitenprogramar una entrada y salida digital.

• Diseñar aplicaciones que permitan el manejo dedispositivos sencillos de entrada y salida (pulsadores,leds, resistencias, etc.)

2

INTRODUCCIÓNSeñales Digitales y Señales Analógicas

3

INTRODUCCIÓNSeñales Digitales

Las señales digitales que manejan losdispositivos electrónicos son representadas enla mayoría de casos en lenguaje binario, es decir,pueden tomar 1 o 0 lógico.

1 LÓGICO Encendido Nivel alto Abierto +Vcc 5 [V]

0 LÓGICO Apagado Nivel bajo Cerrado -Vcc 0 [V]

4

INTRODUCCIÓNEntradas / Salidas

Los microcontroladoresposeen una serie determinales o tambiénconocidos como pineso patas que funcionancomo entradas y salidasde señales digitales (oanalógicas).

5

Entradas DigitalesUn pin configurado como entradadigital puede verse como unterminal que permite el ingreso deinformación al microcontrolador.

A manera de ejemplo una entradadigital puede verse como unperiférico de entrada en unacomputadora.

6

Entradas Digitales

Una entrada es un terminal que permite que se leaplique una señal de voltaje, lo cual le permite almicrocontrolador interpretar que algo está sucediendoy que se debe comportar de una forma determinada.

¿Qué pasa si a una entrada digital no se conecta nada?

7

Cuando el interruptor está abierto, el voltaje registrado es 0 voltios.Cuando se presiona el botón se cierra el interruptor y el voltajealcanza 5 voltios. Si se conecta este circuito al Arduino, al presionarel botón éste registrará los 5 voltios y podrá interpretar que el botónha sido presionado. Entonces, por medio de la programaciónadecuada, se ejecutarán las acciones que el programador hayaestablecido.

8

Entradas DigitalesLos voltajes que el Arduino puede reconocer como 0lógico y como 1 lógico son los siguientes:

Existe una franja en la que el valor delvoltaje se desprecia, no se considera ni un1L ni un 0L, de este modo se filtranposibles datos erróneos producidos porposibles rebotes de tensión provenientesde dispositivos externos.

9

Salidas DigitalesUn pin configurado como salidadigital puede verse como unterminal que permite mostrarinformación al usuario.

Como ejemplo, un terminalconfigurado como salida digitalpuede verse como un periférico deentrada .

10

Salidas DigitalesEl pin se encuentra en un estado de baja impedancia.Gracias a esto, el microcontrolador puede entregar unacorriente alta de hasta 40 mA.

NOTA: no es recomendable conectar directamente loselementos. Se debe colocar una resistencia de 1kΩ porlo menos para proteger los pines.

11

Función pinModeFunción usada en la function setup() para configurar unpin dado para comportarse como INPUT o OUTPUT. Elcomando pinMode(pin, OUTPUT) configura el pinnúmero pin como salida. Los pines de Arduinofuncionan por defecto como entradas, de forma que nonecesitan declararse explícitamente como entradasempleando pinMode().

Ejemplo: pinMode(4,OUTPUT)

12

Función digitalReadLee el valor desde un pin digital específico. Devuelve unvalor HIGH o LOW. El pin puede ser especificado conuna variable o una constante (0-13).

Ejemplo: v = digitalRead(Pin);

13

Función digitalWriteIntroduce un nivel alto (HIGH) o bajo (LOW) en el pindigital especificado. De nuevo, el pin puede serespecificado con una variable o una constante 0-13.

Ejemplo: digitalWrite(pin, HIGH)

14

Ejercicio 1Encender un led

//declaración de variables

int tiempo=200; //para el control de los intervalos de parpadeo

void setup() //código que se ejecuta una sola vez

pinMode(2,OUTPUT); //el pin 2 del arduino uno como salida digital

void loop() //ciclo del programa

digitalWrite(2,HIGH); //led en el pin 2 encendido

delay(tiempo); //pausa de 200ms

digitalWrite(2,LOW); //led en el pin 2 apagado

delay(tiempo); //pausa de 200ms

15

Ejercicio 1

Al momento de armar el circuito, ¿cuál es laresistencia adecuada?

V = I x R

Vfuente – Vled = I x R

Vfuente – Vled = I x R

R = (Vfuente – Vled) / I

Por lo general, la corriente que soporta un led es 20 mA16

Ejercicio 2Encender un led mediante un pulsador

declaración de variables

byte pulsador=11; //al pin 11 se le llamará pulsador

byte led=13; //al pin 13 se le llamará led

byte tiempo=500; //antirrebotes

boolean aux=0; //variable auxiliar para cambiar los estados del led

void setup() //código que se ejecuta una sola vez

pinMode(pulsador,INPUT_PULLUP); //el pin 11 del arduino uno como entrada digital

//con su resistencia pull up interna activada

pinMode(led,OUTPUT); //el pin 13 del arduino uno como salida digital

digitalWrite(led,LOW); //el led inicia apagado

void loop() //ciclo del programa

if(digitalRead(pulsador)==0 && aux==0) //si se ha pulsado y la variable aux es 0

delay(tiempo); //antirreboltes

digitalWrite(led,HIGH); //el led enciende

aux=1; //aux a 1 para que el led se pueda volver a apagar con el mismo pulsador

if(digitalRead(pulsador)==0 && aux==1) //si se ha pulsado y la variable aux es 1

delay(tiempo); //antirreboltes

digitalWrite(led,LOW); //el led se apaga

aux=0; //aux a 0 para que el led se pueda volver a encender con el mismo pulsador

17