proyecto de vinculación pvs-2018-031 · proyecto de vinculación pvs-2018-031 desarrollo de...
TRANSCRIPT
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