Microcontroladores Lab 2
Microcontroladores Lab 2
Microcontroladores Lab 2
Microcontroladores
Maury Sebastián Macías Sánchez.
Ray Stevenson Amaya Maldonado.
Resumen.
En esta práctica de laboratorio se habla a cerca de Arduino, que según fundamentos teóricos
se trata de una placa electrónica de hardware libre que incorpora un microcontrolador
reprogramable y una serie de pines de conexión. A partir de allí se puede programar y simular
para pedirle que realice ciertas tareas con sus debidos criterios de diseño, en este laboratorio
se abordarán cinco retos cuya dificultad aumenta secuencialmente.
Introducción.
Para poder identificar la importancia de Arduino, la práctica empieza con una exhaustiva
investigación a cerca de características, funciones básicas y especificaciones de los
microcontroladores utilizados en Arduino, para desembocar en una serie de retos asignados
en la guía que deberán ser desarrollados y posteriormente simulados usando una serie de
Leds e interruptores, y a partir de allí realizar la debida sustentación de uno de los retos.
Objetivos.
• Analizar las características y especificaciones de los microcontroladores que se usan en
Arduino.
• Realizar e implementar la programación en el IDE de Arduino usando ordenes de
programación básicas y de control.
Marco teórico.
Arduino: Es una plataforma de desarrollo basada en una placa electrónica de hardware libre
que incorpora un microcontrolador re-programable y una serie de pines de conexión. Estos
permiten establecer conexiones entre el microcontrolador y los diferentes sensores y
actuadores de una manera muy sencilla (principalmente con cables dupont). Funciones
Básicas Pines Arduino:
• Pin mode: Esta instrucción se usa para configurar los pines de nuestro Arduino como
entrada o como salida. Se declara dentro de la función setup por lo tanto, la
configuración de pines solo se hará una vez antes de empezar a ejecutar el programa
principal.
• Entradas/Salidas digitales: Solo se ejecutan en dos estados (Alto o bajo), en relación al
nivel de voltaje 5 volts o 0 volts respectivamente.
• Entradas/Salidas analógicas: Estos pines pueden tomar cualquier valor entre el intervalo
de 0 a 5 voltios. Cuando se tomen lecturas, tendremos una resolución de 10 bits, desde
0 hasta 1023. Para poder escribir un valor analógico, utilizamos PWM (modulación de
ancho de pulso) la resolución será de 8 bits, desde 0 hasta 255.
• Instrucciones de tiempo: permite hacer temporizaciones, conteos durante la ejecución
del programa.
Investigación:
Cómo ya sabemos, Arduino es una board que está basada en el microcontrolador
Atmega328 y tiene 14 pines de entrada/salida digital (de los cuales 4 pueden ser utilizados
para salidas PWM), 6 entradas análogas, un resonador cerámico de 16 MHz, un conector
para USB tipo hembra, un Jack para fuente de Poder, un conector ICSP y un botón reset).
Para llevar a cabo la debida conexión de Arduino se requiere estar conectado a un
computador y a una fuente de alimentación, en algunos casos, si se conecta por cable USB
al computador no requerirá una conexión de alimentación.
El hardware de Arduino usa microcontroladores generalmente Atmel AVR. Los
microcontroladores más usados en las plataformas Arduino son
el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez, pero se está
ampliando a microcontroladores Atmel con arquitectura ARM como el Atmel SAMD21 o
los ST STM32, y también Intel.
Atmega1280
Atmega8
Propiedades y características de los microcontroladores mencionados.
REFERENCIA Temperatura Comparadores Memoria FLASH Memoria Memoria Líneas E/S.
de trabajo EPROM SRAM
Atmega168 -40...85°C 1 16kB 512B 1kB 23
Atmega328 -40...85°C 1 32kB 1kB 2kB 23
Atmega1280 1 120kB 8kB
Atmega8 -40...85°C 8kB 512B 1kB 23
Retos.
1. Se trata de cinco leds que se enciende cuando se activa un botón pulsador y se apagan
con otro botón pulsador.
Código Arduino
int estado;
void setup() {
pinMode(9, INPUT);
pinMode(8, INPUT);
pinMode (2,OUTPUT);
pinMode (3,OUTPUT);
pinMode (4,OUTPUT);
pinMode (5,OUTPUT);
pinMode (6,OUTPUT);
}
void secuencia(){
if(digitalRead(9)==HIGH){
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
}
if(digitalRead(8)==HIGH){
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
}
Tinkercad
Descripción: En la imagen se puede apreciar el apagado de los 5 leds al activar otro botón
pulsador.
2. Se trata de encender y apagar 6 leds secuencialmente al activar un pulsador y se apagan
con otro botón.
Arduino.
for(x=0;x<7;x++){
pinMode(leds[x],OUTPUT);
}
}
void secuencia(){
if(digitalRead(9)==HIGH){
for(x = 0;x<7;x++){
digitalWrite(leds[x], HIGH);
delay(1000);
}
}
if(digitalRead(8)==HIGH){
digitalWrite(leds[0], LOW);
digitalWrite(leds[1], LOW);
digitalWrite(leds[2], LOW);
digitalWrite(leds[3], LOW);
digitalWrite(leds[4], LOW);
digitalWrite(leds[5], LOW);
}
}
void loop(){
secuencia();
}
Tinkercad
Descripción: En la imagen se puede apreciar el apagado de los 6 leds al activar otro botón
pulsador.
3. Se trata de un cruce de semáforos, para ello se utilizará en el primer semáforo los pines.
La secuencia de funcionamiento debe ser: rojo 1 – verde 2 durante 5 segundos, rojo 1 –
amarillo 2 durante 500 ms, verde 1 – rojo 2 durante 5 segundos, amarillo 1 - rojo 2 durante
500 ms.
Arduino.
int leds[] = {2,3,4,5,6,7};
int x;
void setup()
{
pinMode(8, INPUT);
for(x=0;x<7;x++){
pinMode(leds[x],OUTPUT);
}
}
void actuacion(){
if(digitalRead(8)==HIGH){
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
delay(5000);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
delay(500);
digitalWrite(4,LOW);
digitalWrite(6,LOW);
digitalWrite(2,HIGH);
digitalWrite(7,HIGH);
delay(5000);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
delay(500);
digitalWrite(3,LOW);
digitalWrite(7,LOW);
}
}
void loop(){
actuacion();
}
Tinkercad.
Aqeel, A., 2020. Introduction to Atmega168 - The Engineering Projects. [online] The Engineering
Projects. Available at: <https://www.theengineeringprojects.com/2018/09/introduction-to-
atmega168.html> [Accessed 22 September 2020].
2020. [online] Available at:
<http://kunlida.en.seekic.com/product/integrated_circuits_ics/ATMEGA1280_16AU.html >
[Accessed 22 September 2020]
Tme.com. 2020. Atmega 168 - La Frase En Busca | Distribuidor De Componentes Electrónicos.
Tienda En Línea: Transfer Multisort Elektronik | Circuitos Integrados | Componentes Y Subgrupos,
Piezas Electrónicas / TME. [online] Available at: <https://www.tme.com/co/es/katalog/circuitos-
integrados_100283/?s_order=desc&search=Atmega%20168&s_field=1000011> [Accessed 26
September 2020].
Ww1.microchip.com. 2020. [online] Available at:
<http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-9365-Automotive-Microcontrollers-
ATmega88-ATmega168_Datasheet.pdf > [Accessed 26 September 2020].