Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERIA
Práctica No.: Tema: Duración (horas) No. Grupos No. Estudiantes (por Grupo)
Puertos de entrada salida 2 9 4
2
Integrantes:
- Juan Haro
- Danilo Orna
- Cristian Manosalvas
- Javier Espinoza
- Eduardo Caicedo
Objetivos de la Práctica:
Configurar los puertos E/S para enviar y recibir datos.
Equipos, Materiales e Insumos:
Procedimiento:
Nota: Para esta opción de código se ha verificado que: El Sketch usa 1014 bytes (3%) del espacio de
almacenamiento de programa.
Nota: Para esta opción de código se ha verificado que: El Sketch usa 1038 bytes (3%) del espacio de
almacenamiento de programa.
- Además, se observa en la Fig. 5 que las señales están un poco retrasadas en el tiempo, esto es debido
a que el código fue realizado con la finalidad de que los leds se enciendan de forma consecutiva.
4. Abrir un nuevo proyecto Arduino y crear un código que encienda led LED_X cada vez que se presione un
botón B_X. Determinar el tamaño del código generado.
int LED1 = 4,LED2 = 5,LED3 = 6,LED4 = 7,BOTON1=0,BOTON2=1,BOTON3=2,BOTON4=3,val1,val2,val3,val4;
void setup() {
pinMode(LED1, OUTPUT);pinMode(LED2, OUTPUT);pinMode(LED3, OUTPUT);pinMode(LED4,
OUTPUT);pinMode(BOTON1,INPUT);pinMode(BOTON2,INPUT);pinMode(BOTON3,INPUT);pinMode(BOTON4,INPUT);
}
void loop() {
val1=digitalRead(BOTON1);val2=digitalRead(BOTON2);val3=digitalRead(BOTON3);val4=digitalRead(BOTON4);
if (val1==HIGH){
digitalWrite(LED1,LOW);
}
else { digitalWrite(LED1,HIGH);
}
if (val2==HIGH){
digitalWrite(LED2,LOW);
}
else { digitalWrite(LED2,HIGH);
}
if (val3==HIGH){
digitalWrite(LED3,LOW);
}
else { digitalWrite(LED3,HIGH);
}
if (val3==HIGH){
digitalWrite(LED3,LOW);
}
else { digitalWrite(LED3,HIGH);
}
if (val4==HIGH){
digitalWrite(LED4,LOW);
}
else { digitalWrite(LED4,HIGH);
}
}
Nota: El Sketch usa 1104 bytes (3%) del espacio de almacenamiento de programa. El máximo es 32256 bytes.
Las variables Globales usan 17 bytes (0%) de la memoria dinámica, dejando 2031 bytes para las variables
locales. El máximo es 2048 bytes.
5. Verificar el funcionamiento del código anterior con el uso del osciloscopio.
Esta opción de código (Fig. 6), se realizó con la finalidad de permitir que cada led se encienda cuando
se presione su botón correspondiente.
- En la Fig. 6. Se observan los pulsos que representan la activación de cada led.
6. Repetir los pasos anteriores creando un código a través del manejo de registros de E/S. DDRX, PINX y PORTX.
Fig. 7. Encender los leds, mediante el uso de registros.
En la Fig. 7. Se muestra el código a través del manejo de registros de E/S. DDRX, PINX y PORTX, que permite
encender todos los leds.
En la Fig. 8. Se muestra el código a través del manejo de registros de E/S. DDRX, PINX y PORTX, que permite
encender todos los leds, cada vez que se active el switch.
Nota: El Sketch usa 644 bytes (1%) del espacio de almacenamiento de programa. El máximo es 32256 bytes.
- Las variables Globales usan 9 bytes (0%) de la memoria dinámica, dejando 2039 bytes para las
variables locales. El máximo es 2048 bytes.
Fig. 10. Formas de onda de las señales de salida referente al código de la Fig. 8.
Nota: El Sketch usa 450 bytes (1%) del espacio de almacenamiento de programa. El máximo es 32256 bytes.
• Las variables Globales usan 9 bytes (0%) de la memoria dinámica, dejando 2039 bytes para las
variables locales. El máximo es 2048 bytes.
8. Remplace los botones por switches y cree un código que permita visualizar la suma de dos números de dos
bits ingresados.
Resultados:
Utiliza los periféricos de E/S para enviar y recibir datos digitales.
Anexos:
Los registros DDR, PORT, y PIN.
Referencias bibliográficas:
- MakerElectronico. 2020. Entradas Y Salidas Digitales DDR, PORT, PIN Con ATMEGA32 -
Makerelectronico. [online] Available at: <https://www.makerelectronico.com/entradas-y-salidas-
digitales-ddr-port-pin-atmega32/> [Accessed 11 November 2020].
- Arduino.cc. 2020. Arduino - Portmanipulation. [online] Available at:
<https://www.arduino.cc/en/Reference/PortManipulation> [Accessed 11 November 2020].
- Loflin, L., 2020. Arduino Port Registers Revisited. [online] Bristolwatch.com. Available at:
<http://www.bristolwatch.com/k150/port1.htm> [Accessed 11 November 2020].
- Aprendiendo Arduino. 2020. Entradas Y Salidas Arduino. [online] Available at:
<https://aprendiendoarduino.wordpress.com/2016/11/08/entradas-y-salidas-arduino/> [Accessed
11 November 2020].
Fecha de Revisión y Aprobación: 18/05/2020
_____________________ __________________