Lab 9 Sol
Lab 9 Sol
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
void setup() {
lcd.init();
lcd.backlight();
lcd.print("Hola a todos");
void loop() {
ej.2
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
int val = 0;
void setup() {
lcd.init();
lcd.backlight();
void loop() {
val = analogRead(A0);
lcd.clear();
lcd.print("Valor: ");
lcd.print(val);
delay(500);
}
ej.3
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <HCSR04.h>
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
void loop() {
lcd.clear();
lcd.setCursor(0, 0);
Serial.println(hc.dist());
lcd.print(hc.dist());
lcd.print("cm");
delay(500);
}
ej.4
#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);
};
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
void loop() {
if (key != NO_KEY) {
Serial.println(key);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(key);
delay(500);
ej.5
#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
char keys[FIL][COL] = {
char tecla;
byte indice = 0;
byte pos = 0;
void borrenum() {
num[0] = 0;
num[1] = 0;
num[2] = 0;
num[3] = 0;
num[4] = 0;
num[5] = 0;
num[6] = 0;
indice = 0;
void imprimirlcd()
lcd.print(tecla);
void cargar() {
if (indice >= 7) {
Serial.print("dms");
else {
num[indice] = tecla;
indice++;
pos++;
Serial.print(tecla);
imprimirlcd();
long num1 = 0;
long num2 = 0;
void setup() {
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Calculadora");
delay(1000);
lcd.clear();
lcd.blink();
Serial.begin(9600);
void loop() {
tecla = teclado.getKey();
if (tecla) {
switch (tecla) {
case '1':
cargar();
break;
case '2':
cargar();
break;
case '3':
cargar();
break;
case '4':
cargar();
break;
case '5':
cargar();
break;
case '6':
cargar();
break;
case '7':
cargar();
break;
case '8':
cargar();
break;
case '9':
cargar();
break;
case '0':
cargar();
break;
case '+':
Serial.println();
num1 = atof(num); //las funciones atof convierte un char array, a un número entero
lcd.setCursor(indice + 1, 0);
borrenum();
operacion = '+';
pos++;
lcd.print(operacion);
break;
case '-':
Serial.println();
num1 = atof(num); //las funciones atof convierte un char array, a un número entero
lcd.setCursor(indice + 1, 0);
borrenum();
operacion = '-';
pos++;
lcd.print(operacion);
break;
case 'x':
Serial.println();
num1 = atof(num); //las funciones atof convierte un char array, a un número entero
Serial.println(num1);
lcd.setCursor(indice + 1, 0);
borrenum();
operacion = 'x';
pos++;
lcd.print(operacion);
break;
case '/':
Serial.println();
num1 = atof(num); //las funciones atof convierte un char array, a un número entero
lcd.setCursor(indice + 1, 0);
borrenum();
operacion = '/';
pos++;
break;
case 'C':
Serial.println();
borrenum();
lcd.clear();
pos = 0;
break;
case 'E':
num2 = atof(num);
borrenum();
Serial.println();
Serial.print(num1);
Serial.print(operacion);
Serial.print(num2);
Serial.print("=");
lcd.setCursor(0, 1);
lcd.print('=');
switch (operacion) {
case '+':
Serial.println(num1);
Serial.println(num2);
Serial.println(num1 + num2);
lcd.print(num1 + num2);
lcd.setCursor(0, 0);
pos = 0;
num1 = 0;
num2 = 0;
break;
case '-':
Serial.print(num1 - num2);
lcd.print(num1 - num2);
lcd.setCursor(0, 0);
pos = 0;
num1 = 0;
num2 = 0;
break;
case 'x':
Serial.print(num1 * num2);
lcd.print(num1 * num2);
lcd.setCursor(0, 0);
pos = 0;
num1 = 0;
num2 = 0;
break;
case '/':
if (num2 == 0) {
Serial.println("Error div/0");
}
else {
Serial.print(num1 / num2);
lcd.print(num1 / num2);
lcd.setCursor(0, 0);
pos = 0;
num1 = 0;
num2 = 0; }
break; }
break;