Documentos de Académico
Documentos de Profesional
Documentos de Cultura
GFPI-F-019 - Formato - Guia - de - Aprendizaje - Sistemas - Embebidos - 3 RESUELTA
GFPI-F-019 - Formato - Guia - de - Aprendizaje - Sistemas - Embebidos - 3 RESUELTA
2. PRESENTACION
Durante el proceso de formación del SENA en sus programas tecnólogos, es necesario que el aprendiz use
de forma adecuada los medios de aprendizaje como ese conjunto de técnicas, aplicaciones y herramientas
para la programación de sistemas embebidos. Esta guía de aprendizaje tiene como objetivo presentar las
actividades que corresponden a la programación de las pantallas LCD con los sistemas. En cada una de las
actividades propuestas se desarrollan las habilidades para alcanzar los objetivos de los resultados de
aprendizaje para la competencia.
https://www.zonamaker.com/arduino/modulos-sensores-y-shields/tipos-de-lcd-para-arduino
https://aprendiendoarduino.wordpress.com/category/pantalla-lcd/
el aprendiz, deberá realizar un cuadro comparativo acerca de las diferentes pantallas LCD usadas con
sistemas embebidos y explicar cuál es la importancia de estas en los sistemas automatizados.
GFPI-F-019 V3
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
En este momento, el aprendiz debe demostrar sus conocimientos y apropiación del tema de diagrama de
flujo, a partir del programa entregado por la instructora,
#define Pulsador_1 37
#define Pulsador_2 36
#define Pulsador_3 35
#define Pulsador_4 34
int unidad = 0;
int decena = 0;
int centena = 0;
int unidad_mil = 0;
int millisActual=0;
int millisAnterior=0;
int tiempo=1000;
void setup ()
{
DDRC = 0x00;
PORTC = 0xFF;
DDRA = 0xFF;
}
void loop ()
{
visualizar ();
millisActual=millis();
if ((millisActual-millisAnterior)>=tiempo)
{
incrementar ();
millisAnterior=millis();
}
}
void visualizar ()
{
PORTA = 0xF0;
PORTA = unidad | 0xE0;
delay (2);
PORTA = decena | 0xD0;
delay (2);
PORTA = centena | 0xB0;
delay (2);
PORTA = unidad_mil | 0x70;
delay (2);
}
void incrementar ()
{
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
unidad++;
if (unidad > 9)
{
unidad = 0;
decena++;
if (decena > 9)
{
decena = 0;
centena++;
if (centena > 9)
{
centena=0;
unidad_mil++;
{
unidad_mil=0;
}
}
}
}
}
El aprendiz debe realizar un diagrama de flujo para mostrar el valor de un contador de 4 dígitos en 4
display multiplexados.
El aprendiz debe demostrar todos sus conocimientos con la programación de las pantallas lcd 2x16 y la
utilización del ADC, para esto se debe realizar las lecturas de los documentos suministrados por la
instructora, LCD y ADC.
El aprendiz deberá presentar el diagrama esquemático de la placa Arduino con la pantalla lcd 2x16
En este momento el aprendiz debe tener un encuentro real con las placas Arduino Mega y la shield LCD y
ADC para verificar el perfecto funcionamiento de las actividades a desarrollar. Para esta actividad el
aprendiz debe verificar el plan de trabajo para saber la fecha de entrega de cada actividad.
B C D E F G H J
SIM1
VCC
SIMULINO MEGA
VCC
0
VCC
LCD1
PANTALLA_LCD
www.arduino.cc
R5 1 U1
blogembarcado.blogspot.com
2k
RV1
2
1 AREF
SW1
13 27.0
59%
RESET 12 A0 A1
Rigth 3
~11
2
VDD
5V ~10 VOUT A2
VDD
VSS
VEE
R4
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
~9
E
1
330R 1k
2 8
POWER
GND
SW2
ATMEGA2560
ATMEL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
LM35
7
DIGITAL (PWM~)
A0
GND
A0 ~6
ANALOG IN
A1 A1 ~5 Up
A2
ARDUINO
A2 4
A3 R3
GND
GND
VCC
GND
PA4
PA5
PA6
PA7
RS
E
~3
3 A4 2 620R
A5 TX0 >1 SW3
SIMULINO MEGA
A6 RX0 < 0
A7
14 Down
COMMUNICATION
TX3
A8 RX3 15
A9 TX2 16 R2
4 A10 RX2 17 1k
A11 TX1 18 SW4
A12 RX1 19
A13 SDA 20
A14 SCL 21 Left
A15
DIGITAL R1
5 3k3
52
50
48
46
44
42
40
38
36
34
32
30
28
26
24
22
SW5
53
51
49
47
45
43
41
39
37
35
33
31
29
27
25
23
Select
PC0 PA0
6 PC1 PA1
PC2 PA2
PC3 PA3
PA4
PA5
PA6
PA7
7
ADJUNTO ARCHIVO DE PROTEUS PARA LA RESPECTIVA SIMULACIÓN DE CADA UNO DE LOS PUNTOS:
C:\Users\Aprendiz01\Downloads\BJSEARDUINOPROTEUS.pdsprj
Actividad 3.4.1. Elaborar un programa en Arduino que muestre en la LCD sus nombres en la primera línea
y sus apellidos en la segunda línea.
#include <LiquidCrystal.h>
void setup() {
lcd.begin(16, 2);
void loop() {
lcd.setCursor(0,0);
lcd.print("BREINER JOSE");
lcd.setCursor(0,1);
lcd.print("SILVA FUENTES");
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
}
Actividad 3.4.2. Elaborar un programa en Arduino que muestre en la LCD el nombre completo de su
titulación y que los desplace a la izquierda.
#include <LiquidCrystal.h>
void setup() {
lcd.begin(16, 2);
lcd.print("DISENO E INTEGRACION DE AUTOMATISMOS MECATRONICOS");
void loop() {
lcd.scrollDisplayLeft();
delay(400);
}
Actividad 3.4.3. Elaborar un programa en Arduino que muestre en la LCD: en la primera fila el mensaje
ADC centrado y en la segunda línea, el nombre del pulsador presionado y su valor digital.
#include <LiquidCrystal.h>
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int VALOR_ADC;
void setup() {
lcd.begin(16, 2);
lcd.setCursor(7, 0);
lcd.print("ADC");
void loop() {
lcd.clear();
VALOR_ADC = analogRead (0);
if(VALOR_ADC > 128 && VALOR_ADC < 132)
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
{
lcd.setCursor(0, 0);
lcd.print("ADC");
lcd.setCursor(0, 1);
lcd.print("UP =");
lcd.print(VALOR_ADC);
delay(250);
}
else if(VALOR_ADC > 303 && VALOR_ADC < 307)
{
lcd.setCursor(0, 0);
lcd.print("ADC");
lcd.setCursor(0, 1);
lcd.print("DOWN =");
lcd.print(VALOR_ADC);
delay(250);
}
else if(VALOR_ADC >= 0 && VALOR_ADC < 2)
{
lcd.setCursor(0, 0);
lcd.print("ADC");
lcd.setCursor(0, 1);
lcd.print("RIGHT =");
lcd.print(VALOR_ADC);
delay(250);
}
else if(VALOR_ADC > 478 && VALOR_ADC < 482)
{
lcd.setCursor(0, 0);
lcd.print("ADC");
lcd.setCursor(0, 1);
lcd.print("LEFT =");
lcd.print(VALOR_ADC);
delay(250);
}
else if(VALOR_ADC > 718 && VALOR_ADC < 722)
{
lcd.setCursor(0, 0);
lcd.print("ADC");
lcd.setCursor(0, 1);
lcd.print("SELECT =");
lcd.print(VALOR_ADC);
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
delay(250);
}
else
{
lcd.setCursor(0, 1);
lcd.print("No push button");
delay(250);
}
}
Actividad 3.4.4. Elaborar un programa en Arduino que muestre en la LCD:
Si presiona el pulsador Up, el nombre del centro de formación.
Si presiona el pulsador down, el nombre de su titulación.
Si presiona el pulsador left, el nombre de la actividad de aprendizaje.
Si presiona el pulsador right, sus nombres y apellidos.
Si presiona el pulsador select, el nombre de su equipo de futbol favorito.
#include <LiquidCrystal.h>
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int VALOR_ADC;
void setup() {
lcd.begin(16, 2);
lcd.setCursor(7, 0);
lcd.print("ADC");
void loop() {
lcd.clear();
VALOR_ADC = analogRead (0);
if(VALOR_ADC > 128 && VALOR_ADC < 132)
{
lcd.setCursor(6, 0);
lcd.print("COMM");
delay(250);
}
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
delay(250);
}
else if(VALOR_ADC >= 0 && VALOR_ADC < 2)
{
lcd.setCursor(2, 0);
lcd.print("BREINER JOSE");
lcd.setCursor(2, 1);
lcd.print("SILVA FUENTES");
delay(250);
}
else if(VALOR_ADC > 478 && VALOR_ADC < 482)
{
lcd.setCursor(3, 0);
lcd.print("SISTEMAS DE ");
lcd.setCursor(4, 1);
lcd.print("EMBEBIDOS");
delay(250);
}
else if(VALOR_ADC > 718 && VALOR_ADC < 722)
{
lcd.setCursor(3, 0);
lcd.print("VALLEDUPAR");
lcd.setCursor(7, 1);
lcd.print("FC");
delay(250);
}
else
{
lcd.setCursor(2, 0);
lcd.print("NINGUN BOTON");
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
lcd.setCursor(3, 1);
lcd.print("PRESIONADO");
delay(250);
}
}
Actividad 3.4.5. Elaborar un programa en Arduino:
Muestre en la pantalla lcd, en la primera fila, el mensaje tipo de variables.
Al presionar el pulsador el pulsador select, muestre en la segunda fila el tipo de variables escogida.
Al presionar el pulsador Up, incremente el valor almacenado en la variable.
Al presionar el pulsador Down, decremente el valor almacenado en la variable.
#include <LiquidCrystal.h>
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int VALOR_ADC;
byte CONTADORDEPOSICION;
byte CONTADORBYTE;
unsigned int CONTADORINT;
unsigned long CONTADORLONG;
void setup() {
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("BYTE INT LONG");
}
void loop()
{
lcd.blink ();
lcd.setCursor(CONTADORDEPOSICION, 0);
VALOR_ADC = analogRead (0);
if(VALOR_ADC >= 0 && VALOR_ADC < 2)
{
delay(250);
CONTADORDEPOSICION++;
if(CONTADORDEPOSICION > 15)
{
CONTADORDEPOSICION = 15;
}
}
else if(VALOR_ADC > 478 && VALOR_ADC < 482)
{
delay(250);
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
CONTADORDEPOSICION--;
if(CONTADORDEPOSICION <0)
{
CONTADORDEPOSICION = 0;
}
}
else
{
CONTADORDEPOSICION = CONTADORDEPOSICION;
}
switch(CONTADORDEPOSICION)
{
case 0:
{
lcd.setCursor(0,1);
lcd.print("BYTE");
lcd.print(CONTADORBYTE);
lcd.print(" ");
delay(250);
VALOR_ADC = analogRead (0);
if(VALOR_ADC > 128 && VALOR_ADC < 132)
{
delay(250);
CONTADORBYTE++;
if(CONTADORBYTE > 255)
{
CONTADORBYTE = 0;
}
}
else if(VALOR_ADC > 303 && VALOR_ADC < 307)
{
delay(250);
CONTADORBYTE--;
if(CONTADORBYTE <0)
{
CONTADORBYTE = 255;
}
}
else
{
CONTADORBYTE = CONTADORBYTE;
}
break;
}
case 7:
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
{
lcd.setCursor(0,1);
lcd.print("INT");
lcd.print(CONTADORINT);
lcd.print(" ");
delay(250);
VALOR_ADC = analogRead (0);
if(VALOR_ADC > 128 && VALOR_ADC < 132)
{
delay(250);
CONTADORINT++;
if(CONTADORINT > 65535)
{
CONTADORINT = 0;
}
}
else if(VALOR_ADC > 303 && VALOR_ADC < 307)
{
delay(250);
CONTADORINT--;
if(CONTADORINT <0)
{
CONTADORINT = 65535;
}
}
else
{
CONTADORINT = CONTADORINT;
}
break;
}
case 12:
{
lcd.setCursor(0,1);
lcd.print("LONG");
lcd.print(CONTADORLONG);
lcd.print(" ");
delay(250);
VALOR_ADC = analogRead (0);
if(VALOR_ADC > 128 && VALOR_ADC < 132)
{
delay(250);
CONTADORLONG++;
if(CONTADORLONG > 4294967296)
{
CONTADORLONG = 0;
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
}
}
else if(VALOR_ADC > 303 && VALOR_ADC < 307)
{
delay(250);
CONTADORLONG--;
if(CONTADORLONG <0)
{
CONTADORLONG = 4294967296;
}
}
else
{
CONTADORLONG = CONTADORLONG;
}
break;
}
default: break;
}
}
Actividad 3.4.6. Elaborar un programa en Arduino que muestre un reloj con horas, minutos y segundos.
Al presionarse Select, se debe tener la posibilidad de ajustar tanto la alarma como el reloj.
Al presionarse Up y Down, se debe tener la posibilidad de ajustar la opción seleccionada.
#include <LiquidCrystal.h>
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int TIMESEGUNDOS;
int TIMEMINUTOS;
int TIMEHORAS;
int ALARMAMINUTOS;
int ALARMAHORAS;
int ESTADO = 0;
int VALOR_ADC;
int MILLISANTERIOR;
int MILLISACTUAL;
int INTERVALO = 1000;
void setup ()
{
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("TIME =");
pinMode(13, OUTPUT);
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
void loop ()
{
VALOR_ADC = analogRead (0);
if(VALOR_ADC > 718 && VALOR_ADC < 722)
{
delay(200);
ESTADO++;
if(ESTADO > 4)
{
ESTADO = 0;
}
}
switch (ESTADO)
{
case 0:
{
lcd.noBlink ();
lcd.setCursor (0,1);
lcd.print(" ");
incrementar ();
visualizar ();
comparar ();
break;
}
case 1:
{
visualizar ();
lcd.setCursor(7,0);
lcd.blink ();
VALOR_ADC = analogRead (0);
if(VALOR_ADC > 128 && VALOR_ADC < 132)
{
delay(200);
TIMEHORAS++;
if(TIMEHORAS > 23)
{
TIMEHORAS = 0;
}
}
else if(VALOR_ADC > 303 && VALOR_ADC < 307)
{
delay(200);
TIMEHORAS--;
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
if(TIMEHORAS < 0)
{
TIMEHORAS = 23;
}
}
else
{
}
break;
}
case 2:
{
visualizar ();
lcd.setCursor(0,0);
lcd.blink ();
VALOR_ADC = analogRead (0);
if(VALOR_ADC > 128 && VALOR_ADC < 132)
{
delay(200);
TIMEMINUTOS++;
if(TIMEMINUTOS > 59)
{
TIMEMINUTOS = 0;
}
}
else if(VALOR_ADC > 303 && VALOR_ADC < 307)
{
delay(200);
TIMEMINUTOS--;
if(TIMEMINUTOS < 0)
{
TIMEMINUTOS = 59;
}
}
else
{
}
break;
}
case 3:
{
lcd.setCursor(0,1);
lcd.print("ALARM =");
visualizar_alarma ();
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
lcd.setCursor(7,1);
lcd.blink ();
VALOR_ADC = analogRead (0);
if(VALOR_ADC > 128 && VALOR_ADC < 132)
{
delay(200);
ALARMAHORAS++;
if(ALARMAHORAS > 23)
{
ALARMAHORAS = 0;
}
}
else if(VALOR_ADC > 303 && VALOR_ADC < 307)
{
delay(200);
ALARMAHORAS--;
if(ALARMAHORAS < 0)
{
ALARMAHORAS = 23;
}
}
else
{
}
break;
}
case 4:
{
lcd.setCursor(0,1);
lcd.print("ALARM =");
visualizar_alarma ();
lcd.setCursor(0,1);
lcd.blink ();
VALOR_ADC = analogRead (0);
if(VALOR_ADC > 128 && VALOR_ADC < 132)
{
delay(200);
ALARMAMINUTOS++;
if(ALARMAMINUTOS > 59)
{
ALARMAMINUTOS = 0;
}
}
else if(VALOR_ADC > 303 && VALOR_ADC < 307)
{
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
delay(200);
ALARMAMINUTOS--;
if(ALARMAMINUTOS < 0)
{
ALARMAMINUTOS = 59;
}
}
else
{
}
break;
}
default: break;
}
void visualizar ()
{
lcd.setCursor(7,0);
lcd.print(TIMEHORAS);
lcd.print(":");
lcd.print(TIMEMINUTOS);
lcd.print(":");
lcd.print(TIMESEGUNDOS);
lcd.print (" ");
void visualizar_alarma ()
{
lcd.setCursor(9,1);
lcd.print(ALARMAHORAS);
lcd.print(":");
lcd.print(ALARMAMINUTOS);
lcd.print(" ");
}
void incrementar ()
{
MILLISACTUAL = millis ();
if((MILLISACTUAL - MILLISANTERIOR) >= INTERVALO)
{
TIMESEGUNDOS++;
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
void comparar ()
{
if(ALARMAHORAS == TIMEHORAS && ALARMAMINUTOS == TIMEMINUTOS)
{
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13, LOW);
}
}
Actividad 3.4.7. Elaborar un programa en Arduino que muestre en la pantalla lcd el valor digital del voltaje
enviado por el potenciómetro.
#include <LiquidCrystal.h>
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int VALOR_ADC;
void setup ()
{
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("ADC =");
}
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
void loop ()
{
VALOR_ADC = analogRead (8);
lcd.setCursor(6,0);
lcd.print(ADC);
lcd.print(" ");
delay(250);
}
Actividad 3.4.8. Elaborar un programa en Arduino para crear un voltímetro digital que marque desde 0
hasta 5V.
#include <LiquidCrystal.h>
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int VALOR_ADC;
float VOLTAJE;
void setup ()
{
lcd.begin (16,2);
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
lcd.setCursor(0,0);
lcd.print("VOLTAJE =");
}
void loop ()
{
VALOR_ADC = analogRead (15);
VOLTAJE = float(VALOR_ADC) *30/1024;
lcd.setCursor(10,0);
lcd.print(VOLTAJE);
lcd.print(" ");
delay(250);
}
Actividad 3.4.9. Elaborar un programa en Arduino para crear un voltímetro digital que marque desde 0
hasta 30V.
#include <LiquidCrystal.h>
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int VALOR_ADC;
float TEMP_C;
float TEMP_F;
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
void setup ()
{
lcd.begin (16,2);
lcd.setCursor(0,0);
lcd.print("TEMP_C =");
lcd.setCursor(0,1);
lcd.print("TEMP_F =");
}
void loop ()
{
VALOR_ADC = analogRead (1);
TEMP_C = float(VALOR_ADC) *5/1024*100;
TEMP_F = float(VALOR_ADC) TEMP_C *9/5+32;
lcd.setCursor(9,0);
lcd.print(TEMP_C);
lcd.print(" ");
delay(250);
lcd.setCursor(9,1);
lcd.print(TEMP_F);
lcd.print(" ");
delay(250);
}
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
Actividad 3.4.10. Elaborar un programa en Arduino para crear un termómetro digital que lea la
temperatura de un sensor LM35.
#include <LiquidCrystal.h>
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int VALOR_ADC;
float TEMP_C;
void setup ()
{
lcd.begin (16,2);
lcd.setCursor(0,0);
lcd.print("TEMP_C =");
}
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
void loop ()
{
VALOR_ADC = analogRead (1);
TEMP_C = float(VALOR_ADC) *5/1024*100;
lcd.setCursor(9,0);
lcd.print(TEMP_C);
lcd.print(" ");
delay(250);
}
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
Actividad 3.4.11. Elaborar un programa en Arduino para crear un termómetro digital que muestre el valor
de la temperatura tanto en grados centígrados como en grados Fahrenheit .
#include <LiquidCrystal.h>
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int VALOR_ADC;
float TEMP_C;
float TEMP_F;
void setup ()
{
lcd.begin (16,2);
lcd.setCursor(0,0);
lcd.print("TEMP_C =");
lcd.setCursor(0,1);
lcd.print("TEMP_F =");
}
void loop ()
{
VALOR_ADC = analogRead (1);
TEMP_C = float(VALOR_ADC) *5/1024*100;
TEMP_F = float(TEMP_C *9/5)+32;
lcd.setCursor(9,0);
lcd.print(TEMP_C);
lcd.print(" ");
delay(250);
lcd.setCursor(9,1);
lcd.print(TEMP_F);
lcd.print(" ");
delay(250);
}
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
#include <LiquidCrystal.h>
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int VALOR_ADC;
float TEMP_C;
void setup ()
{
lcd.begin (16,2);
lcd.setCursor(0,0);
lcd.print("TEMP_C =");
pinMode (13, OUTPUT);
}
void loop ()
{
VALOR_ADC = analogRead (1);
TEMP_C = float(VALOR_ADC) *5/1024*100;
lcd.setCursor(9,0);
lcd.print(TEMP_C);
lcd.print(" ");
delay(250);
while (TEMP_C > 27)
{
VALOR_ADC = analogRead (1);
TEMP_C = float(VALOR_ADC) *5/1024*100;
lcd.setCursor(9,0);
lcd.print(TEMP_C);
lcd.print(" ");
delay(250);
digitalWrite(13, HIGH);
}
while (TEMP_C < 18)
{
VALOR_ADC = analogRead (1);
TEMP_C = float(VALOR_ADC) *5/1024*100;
lcd.setCursor(9,0);
lcd.print(TEMP_C);
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
lcd.print(" ");
delay(250);
digitalWrite(13, LOW);
}
}
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
Ambiente Requerido
Materiales
Arduino Mega.
Shield LCD.
4. ACTIVIDADES DE EVALUACIÓN
5. GLOSARIO DE TERMINOS
Arduino: es una plataforma de electrónica abierta para la creación de prototipos basada en software y
hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado
en crear entornos u objetos interactivos.
Arduino Shield: es una placa impresa que se puede conectar en la parte superior de la placa Arduino para
ampliar sus capacidades, pudiendo ser apiladas una encima de la otra.
Sistemas embebidos: son dispositivos usados para controlar equipos, operación de maquinarias o plantas
industriales completas. El término “embebido” (también se lo conoce como “incrustado” o “embutido”)
está caracterizando que esos circuitos integrados son una parte integral del sistema en que se encuentran.
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
Lo interesante de que un sistema sea “embebido” es que puede estar de tal forma incrustado, puede
quedar tan oculto a nuestros ojos, que la presencia de tales “chips” no resulte nada obvia a quien lo mira”.
PULL-UP: resistencia que se conecta entre una señal lógica y la toma de alimentación; su función es
asegurar la estabilidad en el nivel de la señal. Todas las placas Arduino incorporan una resistencia pull-up
en el pin 13.
Sketch: es el nombre que usa Arduino para un programa. Es la unidad de código que se sube y ejecuta en
la placa Arduino.
6. REFERENTES BILBIOGRAFICOS
http://www.mastermagazine.info/termino/6694.php#ixzz2NSDcxkuF
http://www.youcoop.org/ca/goteo/cat/9/p/7/open-communities-business-models-chapter-1-open-
hardware/
http://www.arduino.cc/es/
http://ayudaelectronica.com/%C2%BFque-son-los-arduino-shields/
http://tdrobotica.co/tutoriales/arduino