Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ESTUDIANTE
DOCENTE
DIPLOMADO IoT
BOGOTÁ, 2020
Introducción
Una de las herramientas de hardware libre más destacadas, y que permite a los
nuevos estudiantes es el arduino, este instrumento tecnológico nació como un proyecto
educativo en el año 2005, en su momento no se pensó que algunos años más tarde se
convertiría en líder del mundo DIY (do it yourself).
Que es Arduino
Arduino
Es una plataforma de hardware libre, la cual está diseñada en una placa con un
micro controlador y un entorno de desarrollo abierto que facilita a los usuarios en el uso de
la electrónica en proyectos multidisciplinares (Banzi).
Esta plataforma libre, y de bajo costo está basada en una placa de entrada/salida y en
un entorno de desarrollo IDE que implementa el lenguaje processing/wiringhardware. En su
estructura, el micro controlador en la placa se programa con un el lenguaje de
programación del propio arduino basado en writing, los proyectos propuestos con este
hardware pueden ejecutarse sin necesidad de que la placa esté conectada a una PC, esto
otorga la facilidad de movimiento para proyectos que lo necesiten.
El sistema arduino cuenta con muchas versiones, sin embargo, el más comercial ha
resultado ser arduino uno, la versión que se utilice depende del proyecto y puede ser
cambiado dependiendo de sus características, en esta situación particular se optó por
utilizar arduino uno ya que es el más standard y el que mejor se adapta al proyecto.
Figura Arduino
Microcontrolador: ATmega328
-Voltage: 5V
-Entradas Analogicas: 6
- SRAM: 2 KB (ATmega328)
- EEPROM: 1 KB (ATmega328)
pinMode(pinLED1, OUTPUT);
pinMode(pinLED2, OUTPUT);
pinMode(pinLED3, OUTPUT);
digitalWrite(pinLED1, HIGH);
digitalWrite(pinLED2, LOW);
digitalWrite(pinLED3, LOW);
delay(500);
digitalWrite(pinLED1, LOW);
digitalWrite(pinLED2, HIGH);
digitalWrite(pinLED3, LOW);
delay(500);
digitalWrite(pinLED1, LOW);
digitalWrite(pinLED2, LOW);
digitalWrite(pinLED3, HIGH);
delay(500);
Conexión calculadora
#include
<Keypad.h>
#include <Wire.h>
#include <LiquidCrystal.h>
char customKey;
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','+'},
{'4','5','6','-'},
{'7','8','9','*'},
{'C','0','=','/'}
};
byte rowPins[ROWS] = {7,6,5,4}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {3,2,1,0}; //connect to the column pinouts of the keypad
void setup()
{
lcd.begin(16, 2); // start lcd
for(int i=0;i<=3;i++);
lcd.setCursor(0,0);
lcd.print("IOT");
lcd.setCursor(0,1);
lcd.print("E-S-C-O-M");
delay(4000);
lcd.clear();
lcd.setCursor(0, 0);
}
void loop()
{
customKey = customKeypad.getKey();
switch(customKey)
{
case '0' ... '9': // This keeps collecting the first value until a operator is pressed "+-*/"
lcd.setCursor(0,0);
first = first * 10 + (customKey - '0');
lcd.print(first);
break;
case '+':
first = (total != 0 ? total : first);
lcd.setCursor(0,1);
lcd.print("+");
second = SecondNumber(); // get the collected the second number
total = first + second;
lcd.setCursor(0,3);
lcd.print(total);
first = 0, second = 0; // reset values back to zero for next use
break;
case '-':
first = (total != 0 ? total : first);
lcd.setCursor(0,1);
lcd.print("-");
second = SecondNumber();
total = first - second;
lcd.setCursor(0,3);
lcd.print(total);
first = 0, second = 0;
break;
case '*':
first = (total != 0 ? total : first);
lcd.setCursor(0,1);
lcd.print("*");
second = SecondNumber();
total = first * second;
lcd.setCursor(0,3);
lcd.print(total);
first = 0, second = 0;
break;
case '/':
first = (total != 0 ? total : first);
lcd.setCursor(0,1);
lcd.print("/");
second = SecondNumber();
lcd.setCursor(0,3);
lcd.print(total);
first = 0, second = 0;
break;
case 'C':
total = 0;
lcd.clear();
break;
}
}
long SecondNumber()
{
while( 1 )
{
customKey = customKeypad.getKey();
if(customKey >= '0' && customKey <= '9')
{
second = second * 10 + (customKey - '0');
lcd.setCursor(0,2);
lcd.print(second);
}
int ledazul = 8;
int ledrojo = 7;
int tiempo = 150;
void setup()
pinMode(ledazul, OUTPUT);
pinMode(ledrojo, OUTPUT);
void loop()
digitalWrite(ledazul, HIGH);
delay(tiempo);
digitalWrite(ledazul, LOW);
digitalWrite(ledazul, HIGH);
delay(tiempo);
digitalWrite(ledazul, LOW);
delay(tiempo);
digitalWrite(ledazul, HIGH);
delay(tiempo);
digitalWrite(ledazul, LOW);
digitalWrite(ledazul, HIGH);
delay(tiempo);
digitalWrite(ledazul, LOW);
delay(tiempo);
digitalWrite(ledrojo, HIGH);
delay(tiempo);
digitalWrite(ledrojo, LOW);
digitalWrite(ledrojo, HIGH);
delay(tiempo);
digitalWrite(ledrojo, LOW);
delay(tiempo);
digitalWrite(ledrojo, HIGH);
delay(tiempo);
digitalWrite(ledrojo, LOW);
digitalWrite(ledrojo, HIGH);
delay(tiempo);
digitalWrite(ledrojo, LOW);
delay(tiempo);
}
void setup() {
pinMode(verde,OUTPUT); //declaramos el pin verde como salida
pinMode(amarillo,OUTPUT);//declaramos el pin amarillo como salida
pinMode(rojo,OUTPUT); //declaramos el pin rojo como salida
}
void loop() {
digitalWrite(verde,HIGH); //encendemos el led rojo
delay(2000); //esperamos 2 segundos
digitalWrite(verde,LOW); //apagamos el led rojo
delay(500); //esperamos medio segundo
Conclusiones
Tener conocimientos básicos de electrónica y electricidad para las conexiones
residenciales, es importante tener conocimientos de programación en lenguaje java y
lenguaje C, para el desarrollo de la lógica de encendido y apagado de las luces que
interpretara la placa Arduino.