Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2
¿Qué es Arduino?
3
En este caso, nosotros realizaremos nuestra propia replica de Arduino, la cual será
realizada a partir de una placa fenólica, soldando desde cero cada uno de los
componentes necesarios. MiArduino CH340, que es el nombre que se le dio a
nuestra replica, es una réplica con ciertas modificaciones de la placa Arduino UNO,
las modificaciones fueron hechas con el propósito de facilitar la construcción de
tarjeta asumiendo que la persona que la construya no posee la experiencia y el
conocimiento suficiente en la fabricación de placas de circuito impreso.
Por tal motivo se hicieron las siguientes modificaciones al diseño original:
En la imagen anterior tenemos nuestra placa PCB, de MiArduino CH340, con los
componentes ya soldados e instalados de la manera correcta en la placa.
4
En la ilustración anterior, se tiene la placa PCB, sin lo componentes, se tiene
solamente con los canales de cobre estañados para así poder darle conexión y
continuidad a los componentes que se soldaran.
Entonces, ¿te imaginas ya para qué sirve un Arduino? Por darte una idea, con un
Arduino puedes crear básicamente lo que quieras, desde una báscula, un reloj,
hasta unas puertas controladas por voz, etc. Para que puedas entender cómo
podemos pasar de un microordenador a un sistema complejo como el que
acabamos de mencionar, vamos a ahondar en qué son las placas Arduino y en su
historia
Para poder entender este concepto, primero vas a tener que entender los conceptos
de hardware libre y el software libre. El hardware libre son los dispositivos cuyas
especificaciones y diagramas son de acceso público, de manera que cualquiera
puede replicarlos. Esto quiere decir que Arduino ofrece las bases para que cualquier
otra persona o empresa pueda crear sus propias placas, pudiendo ser diferentes
entre ellas, pero igualmente funcionales al partir de la misma base.
5
El software libre son los programas informáticos cuyo código es accesible por
cualquiera para que quien quiera pueda utilizarlo y modificarlo. Arduino ofrece la
plataforma Arduino IDE (Entorno de Desarrollo Integrado), que es un entorno de
programación con el que cualquiera puede crear aplicaciones para las placas
Arduino, de manera que se les puede dar todo tipo de utilidades.
6
Origen
El nombre del proyecto viene del nombre del Bar di Re Arduino (Bar del Rey
Arduino) donde Massimo Banzi pasaba algunas horas. El rey Arduino fue rey de
Italia entre los años 1002 y 1014.
El equipo central inicial de Arduino estaba formado por Massimo Banzi, David
Cuartielles, Tom Igoe, Gianluca Martino y David Mellis.
7
Arduino se puede utilizar para desarrollar elementos autónomos, o bien conectarse
a otros dispositivos o interactuar con otros programas, para interactuar tanto con el
hardware como con el software. Sirve tanto para controlar un elemento, pongamos
por ejemplo un motor que nos suba o baje una persiana basada en la luz que haya
gracias a un sensor conectado al Arduino, o bien para transformar la información de
una fuente, como puede ser un teclado, y convertir la información a algo que
entienda, por ejemplo, un ordenador.
8
Cómo funciona Arduino
También cuenta con una interfaz de salida, que es la que se encarga de llevar la
información que se ha procesado en el Arduino a otros periféricos. Estos periféricos
pueden ser pantallas o altavoces en los que reproducir los datos procesados, pero
también pueden ser otras placas o controladores.
10
Arduino es un proyecto y no un modelo concreto de placa, lo que quiere decir que
compartiendo su diseño básico te puedes encontrar con diferentes tipos de placas.
Las hay de varias formas, tamaños y colores para a las necesidades del proyecto
en el que estés trabajando, las hay sencillas o con características mejoradas,
Arduinos orientados al Internet de las Cosas o la impresión 3D y, por supuesto,
dependiendo de estas características te encontrarás con todo tipo de precios.
Además, las placas Arduino también cuentan con otro tipo de componentes
llamados Escudos (Shields) o mochilas. Se trata de una especie de placas que se
conectan a la placa principal para añadirle una infinidad de funciones, como GPS,
relojes en tiempo real, conectividad por radio, pantallas táctiles LCD, placas de
desarrollo, y un larguísimo etcétera de elementos. Incluso hay tiendas con
secciones especializadas en dichos elementos.
11
Qué podemos hacer con uno
Necesitas una impresora 3D para la carcasa y algunas piezas, pero el acabado será
entonces excelente. En este proyecto, con una placa Arduino como cerebro y
sensores para detectar hasta 200 kg de peso, puedes construirte tu propia báscula
conectada, con acceso al servicio IFTTT para conectar con otras cuentas de
cuantificación. (https://youtu.be/Fa-GL3Vo5TY )
Una máquina de chicles o cuches que solo se activa si sobre su superficie indicamos
un patrón sonoro específico. Vamos, que es una máquina de chuches que
activaremos con un ritmo que hayamos configurado. El proyecto combina sensores
piezoeléctricos con el cerebro de Arduino. (https://youtu.be/8kRTpmswgFk )
12
Portátil y de bajo coste. Así es la alarma para mochilas que con una placa Arduino
y un acelerómetro de tres ejes podemos construir en muy poco tiempo. Una vez
activada, si la mochila se mueve unos 10 grados, podemos hacer que suene la
alarma sin piedad. (https://youtu.be/SWqe4L3AAvU )
También tenemos este jardín automatizado que recoge datos y se encarga de regar
las plantas de nuestro huerto urbano de manera automática. Con este proyecto, si
tienes la información adecuada, mantener un huerto es cuestión de menos
dedicación. https://youtu.be/O_Q1WKCtWiA )
También existen proyectos como este, en el que se puede crear un brazo robótico
capaz de, tras coger un objeto con unas pinzas, no chocar contra obstáculos gracias
a un sensor de ultrasonidos. (https://youtu.be/-mQ_7H8bhck )
13
¿Cómo programar en Arduino?
Aunque Arduino utiliza un lenguaje de programación propio, este está basado en C++.
Por lo tanto, comparte las principales ventajas de este lenguaje de programación.
Además, en las versiones más recientes del IDE, es posible incluso enviarle las
instrucciones directamente en C++ sin tener que traducirlas a su propio lenguaje para
programar esta placa.
14
A continuación se mostrarán comandos básicos para programar en Arduino:
15
Variables, tipos de datos y constantes
16
Para programar nuestro Arduino tenemos que tomar en cuenta, o saber ciertas cosas
para lograr de manera exitosa la programación deseada.
Arduino UNO tiene una velocidad de reloj interno de 16 MHz. Que es de 16 millones de
tics de reloj por segundo. Eso suena como mucho, pero tenga en cuenta lo siguiente:
Cada instrucción o control en un programa utiliza los impulsos de reloj. Mientras más
tareas le hace hacer a su programa, más rápido se consume ese superávit
aparentemente interminable de ciclos de reloj; y antes de que usted lo sepa,
sorprendentemente, la placa Arduino se ha quedado sin señales de entrada o impulsos
de salida. Literalmente no tiene suficiente tiempo para hacer todo lo que se puede
esperar de ella. Para trabajos básicos rara vez esto sea un problema, pero a medida
que sus proyectos crecen usted se va a enfrentar a los mismos. El límite máximo de
velocidad de reloj realmente se hace aparente cuando empieza a tratar de controlar los
motores de pasos o al manipular la respuesta del codificador de servomotores.
17
Aprenda los principios básicos de los puertos, y sea consciente de la
comunicación en paralelo
La mayoría de quienes están comenzando, se inician con una de estas placas básicas
como la UNO o una Trinket. Finalmente descubrirá que ha llenado la memoria y la RAM.
Llegar a este límite es una buena cosa. Esto puede sonar ridículo, pero permítame que
le explique.
Eventualmente, usted puede tener que conseguir una tarjeta con más RAM y más
memoria, pero no se apresure.
Aquí tiene una pequeña sugerencia para comenzar: Si usted descubre que se está
quedando sin RAM, pruebe este truco para leer cadenas de texto directamente desde
la memoria de programa, en lugar de hacerlo desde la memoria RAM:
Serial.println(F("su texto aquí");
La F macro insertada aquí entre los paréntesis, impide que el texto se cargue en la
memoria RAM al iniciar el programa. La cadena se lee directamente desde la memoria
flash cuando sea necesario.
18
Algunas placas Arduino no tienen capacidad USB nativa
En resumen, si desea utilizar el puerto USB de su placa Arduino para conectarse a una
computadora o una cámara o una unidad USB, asegúrese de que la placa que compra
tiene incluido un controlador USB. O bien, puede agregar capacidad USB con un USB
host shield.
- Por ultimo, correr el programa dado por el profesor, el cual se le tendrán que hacer
unas pequeñas modificaciones, pero eso se realizara de acuerdo a lo dicho por el
profesor.
19
//******************************************
//* PROGRAMA PARA CONTROLAR UN INVERNADERO *
//******************************************
// LIBRERIA DE CRISTAL
#include <LiquidCrystal.h>
// DEFINICON DE CONSTANTES
int LM35=0;
float HUMEDAD=0;
float LUZ=0;
int CONTADOR=0;
String TANQUE ="BACIO";
// DEFINICION DE PINES
int bombaagua = 8;
int sensorlluvia = 12;
int abanico = 9;
int foco = 10;
int leds = 11;
// CONFIGURACIONES INICIALES
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
pinMode(bombaagua, OUTPUT);
pinMode(sensorlluvia, INPUT);
pinMode(abanico, OUTPUT);
pinMode(foco, OUTPUT);
pinMode(leds, OUTPUT);
}
// PROGRAMA PRINCIPAL
void loop() {
//LLAMADAS A SUBRUTINAS
tierra();
sol();
temperatura();
agua();
20
//MANDAR POR SERIAL DATOS DE SUBPROGRAMAS
Serial.print("HUMEDAD = ");
Serial.print(HUMEDAD);
Serial.print('\n');
Serial.print('\r');
21
}
else
{
digitalWrite(bombaagua, LOW);
}
digitalWrite(leds,LOW);
delay(100);
sol();
if (LUZ >= referenciluz)
{
Serial.print("HERROR REVISAR LEDS Y SENSOR DE LUZ");
Serial.print('\n');
Serial.print('\r');
delay(1000);
}
digitalWrite(leds,HIGH);
delay(100);
sol();
if (LUZ <= referenciluz)
{
Serial.print("HERROR REVISAR LEDS Y SENSOR DE LUZ");
Serial.print('\n');
Serial.print('\r');
delay(1000);
22
}
CONTADOR == CONTADOR++;
delay(1000);
//****************
//* SUBPROGRAMAS *
//****************
if (analogRead(3)== 1024)
{
TANQUE = "BACIO";
}
if (analogRead(4)== 1024)
{
TANQUE = "MEDIO";
}
23
if (analogRead(5)== 1024)
{
TANQUE = "LLENO";
}
}
Con esto debería de ser suficiente para poder programar a nuestro Arduino, aunque
puede que no funcione, ya que nuestro PC, puede no tenga los Drivers necesarios
para poder detectar y programarlo, si esto sucede, le instalaremos los drivers
necesarios, en este caso, el driver es el CH340, y el CP2102.
24
CONCLUSION
Como vimos anteriormente, la placa PCB de MiArduinoCH340, es una replica de la original, lo cual
significa que nosotros realizamos una Placa Mi Arduino, desde cero, esto, en general, para todo
el equipo fue muy necesario y gratificante a la vez, ya que, mediante la realización de la misma,
aprendimos demasiadas cosas, desde realizar una Placa PCB, desde un inicio, desde las placas
fenólicas, hasta el proceso de imprimirlas, plancharlas, cortarlas, estañarlas, soldarlas, etc. Este
proceso fue algo difícil al principio, pero al realizarla, lo más fácil fue la programación, una vez
realizada, el hecho de conectarla y que funcionara el programa fue algo grato, ver el trabajo hecho.
Al momento de programarla, se le tuvieron que realizar unos pequeños ajustes, pero todo esto fue
por orden del profesor lo cual no fue tan difícil, solo fue seguir instrucciones.
25