Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VERSIÓN: 1
CHIMBORAZO
GUÍA DE PRÁCTICAS
PERIODO ACADÉMICO ABRIL AGOSTO 2019
CARRERA: DOCENTE: LEONARDO SEMESTRE: TERCERO
ELECTRONICA Y RENTERIA PARALELO: A
TELECOMUNICACIONES
NOMBRE DE LA ASIGNATURA: CÓDIGO DE LA ASIGNATURA: LABORATORIO A UTILIZAR:
MICROPROCESADORES Y LAB EET61 LABORATORIO ELECTRONICA
Práctica No. Tema: Manejo de GPIO Duración No. Grupos No. Estudiantes (por Grupo)
Atmega. (horas)
3 4
3 • Edison Brasales
• Daniel Cabrera
• Víctor Morejón
• Christopher Velecela
Objetivos de la Práctica:
- Osciloscopio
- Generador de funciones,
- Multímetro,
- Mcu, Arduino
- Pc
- Sensores
- LEDs
Procedimiento:
1. Abrir un nuevo proyecto Arduino y crear un código que active y desactive 5 leds cada 100ms.
void setup() { // EN ESTA PARTE EL CODIGO SE EJECUTA SOLO UNA VEZ AL INCIO DEL SISTEMA
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(LED5,OUTPUT);
void loop() { //EN ESTA PARTE DEL CODIGO VAMOS EJECUTAR EL ENCENDIDO Y APAGADO DEL LED A LOS
100 ms
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,HIGH);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
delay(100);
Fig. 1: Implementación
const int LED=13; // DECLARAMOS UN PUERTO DIGITAL CONSTNATE DE SALIDA PARA LA VISUALIZACION
LED
const int BOTON=7; // DECLARAMOS UN PUERTO DIGITAL CONSTANTE DE ENTRADA PARA EL PULSADOR
int presione;
void setup(){ // EN ESTA PARTE EL CODIGO SE EJECUTA SOLO UNA VEZ AL INCIO DEL SISTEMA
}
void loop(){ //EN ESTA PARTE DEL CODIGO VAMOS EJECUTAR EL ENCENDIDO Y APAGADO DEL LED
presione = digitalRead(BOTON);
if (val==HIGH){
digitalWrite(LED,HIGH);
}
else {
digitalWrite(LED,LOW);
}
}
5. Repetir los pasos anteriores optimizando el código a través del manejo de registros de E/S. DDRX, PINX y
PORTX.
void setup() {
DDRB= 0b11111111;// DDRX REGISTTOS PARA LA CONFIGURACION DE ENTRADA Y SALIDA ASIGNAMOS LOS
PINES DIGITALES DE 0-7 DEL ARDUINO Y B PORQUE ES ES PUERTO QUE UTILIZAMOS
void loop() {
PORTB= 0b11111111; //EN ESTA PARTE DEL CODIGO ENCENDEREMOS TODOS LOS LEDS
delay(100); // ES EL TIEMPO DE RETARDO EN ESTE CASO 100 ms
delay(100);
void setup() {
void loop() {
// PORTB UTILIZAMOS PORQUE ES UN DE DATOS DEL PUERTO B(BINARIO)-
LECTURA/ESCRITURA
PORTB= 0b11111111; //EN ESTA PARTE DEL CODIGO ENCENDEREMOS TODOS LOS LEDS
delay(100); // ES EL TIEMPO DE RETARDO EN ESTE CASO 100 ms
PORTB= 0b00000000; //EN ESTA PARTE APAGAMOS TODOS LOS LEDS
delay(100);
}
• En el programa se hace uso de los registros DDRB con valor lógico 1 para asignar como salidas los pines
del puerto B del arduino, y PORTB para asignar un estado de encendido 1 y apagado 0, con un retardo
entre cada acción de 100ms estas instrucciones serán introducidas dentro de un ciclo de repetición infinita.
• Mediante el uso de los registros DDRB configuramos el puerto B. P1 como salida del arduino, y
haciendo uso de los registros PORTB y PINB hace una comparación del pulsador si este encendido
enciende el led caso contrario apaga el LED estas instrucciones van inmersas en un ciclo de
repetición infinito.
Resultados:
Los presentes programas tienen una finalidad en común y se pueden programar de diferente manera, lo
cual depende de las estrategias y métodos en que cada programador desee trabajar.
❖ En el tercer y cuarto programa se hace uso de lenguaje ensamblador por lo que tenemos que hacer
uso de registros DDR para asignar Pines como entradas o salidas, registros PORT para asignar
estados de ON-OFF, es una manera más compleja de programación ya que se quiere hacer uso de
pines de diferentes puertos ya que se debe de conocer de manera exacta en donde están ubicados
en la tarjeta arduino para realizar su respectiva asignación en el programa y hace uso de más líneas
de programación .
❖ Si se busca un mismo fin en el programa, de la manera en que el programador desee trabajar deberá
obtener los mismos resultados.
Anexos:
Referencias bibliográficas:
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-
328P_Datasheet.pdf
http://playground.arduino.cc/Code/BitMathhttps://lizarragablog.wordpress.com/2014/06/17/practica-10-
polarizacion-de-jfe