Guiade Aprendizaje Arduino 2022
Guiade Aprendizaje Arduino 2022
Guiade Aprendizaje Arduino 2022
2. PRESENTACION
En nuestra cotidianidad hemos oído frases o palabras como voltaje, corriente, tomacorriente a 110, batería
de 9 voltios, etc. ¿Pero te has preguntado que es el voltaje?, ¿Qué es la corriente? Y otras preguntas más
que nos surge al utilizar electrodomésticos o aparatos electrónicos.
El propósito de esta guía de aprendizaje es adentrarnos con más detalle definir y comprender conceptos de
los cuales es importante que comprendamos de forma muy clara para que al seguir nuestro proceso de
formación en el área de electrónica nos sea más fácil utilizar y aplicar los diferentes dispositivos electrónicos.
Módulo Bluetooth
El Bluetooth es un estándar de comunicación inalámbrica que permite la transmisión de datos a través de
radiofrecuencia en la banda de 2,4 GHz. Existen muchos módulos Bluetooth para usarlos en nuestros
proyectos de electrónica, pero los más utilizados son los módulos de JY-MCU, ya que son muy económicos
y fáciles de encontrar en el mercado. Son módulos pequeños y con un consumo muy bajo que nos permitirán
GFPI-F-019 V3
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
agregar funcionalidades Bluetooth a nuestro Arduino. Estos módulos contienen el chip con una placa de
desarrollo con los pins necesarios para la comunicación serie.
Existen dos modelos de módulos Bluetooth: el HC-05 que puede ser maestro/esclavo (master/slave), y el
HC-06 que solo puede actuar como esclavo (slave). La diferencia entre maestro y esclavo es que en modo
esclavo es el dispositivo quien se conecta al módulo, mientras que en modo maestro es el módulo quien se
conecta con un dispositivo.
Físicamente, los dos módulos son muy parecidos, solo varían algunas conexiones. Los pins que
encontraremos son los siguientes:
-Vcc: Alimentación del módulo entre 3,6V y 6V.
-GND: La masa del módulo.
-TXD: Transmisión de datos.
-RXD: Recepción de datos a un voltaje de 3,3V.
-KEY: Poner a nivel alto para entrar en modo configuración del módulo (solo el modelo HC-05)
-STATE: Para conectar un led de salida para visualizar cuando se comuniquen datos.
Comandos AT
Los comandos AT son un tipo de comandos que sirven para configurar el módulo Bluetooth a través de un
microcontrolador, un ordenador o con cualquier dispositivo que posea una comunicación serie (Tx/Rx). Son
unas instrucciones que nos permiten cambiar los baudios del módulo, el PIN, el nombre, etc. Para usar los
comandos AT el módulo Bluetooth no debe estar vinculado a ningún dispositivo (led rojo del módulo
parpadeando). Según las especificaciones del módulo, el tiempo que se tiene que respetar entre el envío de
un comando AT y otro tiene que ser de 1 segundo. Si se envía un comando AT y en menos de un segundo
se envía otro, el módulo no devuelve respuesta.
Ahora vamos a configurar el módulo Bluetooth a través de comandos AT enviados desde el Monitor Serial
del Arduino. El código del Arduino necesario tanto por el módulo HC-05 como el HC-06 es el siguiente:
#include <SoftwareSerial.h> //Librería que permite establecer comunicación serie en otros pins
void setup()
{
BT.begin(9600); //Velocidad del puerto del módulo Bluetooth
Serial.begin(9600); //Abrimos la comunicación serie con el PC y establecemos velocidad
}
void loop()
{
if(BT.available())
{
Serial.write(BT.read());
}
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
if(Serial.available())
{
BT.write(Serial.read());
}
}
Entre los dos modelos de módulo Bluetooth existen diferencias a la hora de enviar los comandos AT:
HC-06
En el HC-06 solo se necesitan cuatro pines: Vcc, GND, TXD y RXD. El pin KEY no es necesario.
Al enviar un comando AT no se debe enviar ningún carácter de LF (nueva línea) ni CR (retorno de carro) al
final del comando. En el Monitor Serial del Arduino tenemos que poner No hay fin de línea.
Los comandos AT que se pueden enviar en este módulo son los siguientes:
Una vez compilado el código en el Arduino, abrimos el Monitor Serial y enviamos el comando AT, vemos
que el módulo Bluetooth nos responde con un OK.
HC-05
El HC-05 es necesario poner el pin KEY del módulo a nivel alto (5V) para enviar comandos AT. Además, al
enviar un comando AT hay que enviar un carácter de LF (nueva línea) y de CR (retorno de carro) al final del
comando. Por lo tanto, en el Monitor Serial de Arduino pondremos Ambos NL & CR.
Código Arduino
int ledred=8;
int ledgreen=9;
int ledblue=10;
int tx=1;
int rx=0;
char inSerial[15];
void setup(){
Serial.begin(9600);
pinMode(ledred, OUTPUT);
pinMode(ledgreen, OUTPUT);
pinMode(ledblue, OUTPUT);
pinMode(tx, OUTPUT);
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
pinMode(rx, INPUT);
}
void loop(){
int i=0;
int m=0;
delay(500);
if (Serial.available() > 0) {
while (Serial.available() > 0) {
inSerial[i]=Serial.read();
i++;
}
inSerial[i]='\0';
Check_Protocol(inSerial);
}}
void allpinslow()
{
digitalWrite(ledred, LOW);
digitalWrite(ledgreen, LOW);
digitalWrite(ledblue, LOW);
}
if(!strcmp(inStr,"red")){ //Ledred ON
allpinslow();
digitalWrite(ledred, HIGH);
Serial.println("Red ON");
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}
if(!strcmp(inStr,"green")){ //Ledgreen ON
allpinslow();
digitalWrite(ledgreen, HIGH);
Serial.println("Green ON");
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
if(!strcmp(inStr,"blue")){ //Ledblue ON
allpinslow();
digitalWrite(ledblue, HIGH);
Serial.println("Blue ON");
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}
else{
for(m=0;m<11;m++){
inStr[m]=0;
}
i=0;
}}
El código es bastante simple. Primero creamos un array de 256 posiciones tipo char llamado cadena para
almacenar los caracteres que recibiremos de la app. Cuando haya datos disponibles los vamos guardando
uno por uno en forma de carácter en la variable dato. Después ponemos estos caracteres por orden en el
array cadena. Cuando reciba un carácter de fin de línea (\n), se compara el texto almacenado en el array
con el texto que deseamos. Para hacer la comparación se usa la función strstr() que procede de C++ y que
permite encontrar partes de texto en un String. Después de esto, se limpia el array poniendo a 0 todas las
posiciones usadas para recibir el siguiente comando.
Pulsamos Buscar dispositivos y escogemos nuestro módulo Bluetooth que en nuestro caso le hemos puesto
el nombre DIYMakers. Si no lo habéis cambiado pondrá por defecto LINVOR o HC-06.
Después de esto, arriba a la derecha pondrá conectado:<nombre> Significa que tenemos asociado nuestro
dispositivo Android con nuestro módulo Bluetooth y el led de este deja de parpadear y se queda fijo.
Luego solo hay que poner los comandos para encender y apagar los leds. Cuando se escribe un comando
tenemos que pulsar Enter del teclado para enviarlos al Arduino. En el terminal no se pueden borrar
caracteres, por lo que si nos equivocamos pulsamos Enter y lo volvemos a escribir.
Video: https://www.youtube.com/watch?v=Cr0PXxLFvZk
Esquema de conexiones:
Para explicar el uso de este módulo voy a usar esta sencilla aplicación que consiste en encender y apagar 3
leds diferentes.
A la derecha del editor nos aparecerá una lista con todos los elementos que estamos usando, es muy
recomendable nombrar cada cosa para luego no volvernos locos en el editor de bloques.
Es fundamental añadir el cliente bluetooth para que funcione se encuentra en el menú de la izquierda,
dentro de "Other stuff".
Una vez tengamos hecho el diseño de la aplicación toca asignar funciones a cada elemento, para ello,
abrimos el editor de bloques con el siguiente botón:
Se nos abrirá esta ventana, donde iremos colocando los bloques que vamos a utilizar. En el menú de la
izquierda podemos ver todos los que tenemos disponibles:
Seguimos ahora con el botón para conectarnos con el módulo desde la aplicación.
- Realizamos una comprobación de la MAC del módulo para ver si está funcionando.
- Se envía un "1", que usaremos para encender en este caso el led rojo con el arduino.
- Desactivamos el botón de encender para este led.
- Activamos el botón de apagado (previamente en el diseño lo marcamos para que esté desactivado en el
inicio).
Segundo, una vez desactivado el botón de encender y activado el de apagar "off", si pulsamos este último:
- Se envía una "A", que usaremos para apagar en este caso el led rojo con el arduino.
- Desactivamos el botón de apagar para este led.
- Activamos nuevamente el botón de encendido.
(Las cadenas de caracteres que le enviamos al arduino, pueden ser cualquier texto, solo hay que poner luego
lo mismo en la parte del código donde corresponda.)
Y este sería el resultado final, añadiéndole al botón "salir" la acción de cerrar la aplicación:
cpp code
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
String dato; //Variable de tipo cadena para guardar los datos recibidos
int rojo= 8;
int naranja= 9;
int verde= 10;
void setup() {
Serial.begin(9600); //Iniciamos comunicación serial
//Salidas digitales
pinMode(rojo, OUTPUT);
pinMode(naranja, OUTPUT);
pinMode(verde, OUTPUT);
}
void loop() {
while (Serial.available()) {
delay(10);
if (Serial.available() > 0) {
char c = Serial.read(); //Cuando se recibe un dato, se guarda como carácter
dato += c; //Cadena de caracteres formada por la suma de los datos recibidos
}
}
if (dato.length() > 0) { //Comprueba que la variable "dato" tenga al menos un caracter
if(dato == "1") { //Comparamos la cadena de caracteres con cada uno de los casos
Serial.println("Encender led rojo"); //Muestra por el monitor serial la acción realizada
digitalWrite(rojo, HIGH); //Enciende el led rojo
}
if(dato == "A") {
Serial.println("Apagar led rojo");
digitalWrite(rojo, LOW);
}
if(dato == "2") {
Serial.println("Encender led naranja");
digitalWrite(naranja, HIGH);
}
if(dato == "B") {
Serial.println("Apagar led naranja");
digitalWrite(naranja, LOW);
}
if(dato == "3") {
Serial.println("Encender led verde");
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
GUÍA DE APRENDIZAJE
digitalWrite(verde, HIGH);
}
if(dato == "C") {
Serial.println("Apagar led verde");
digitalWrite(verde, LOW);
}
dato=""; //Declaramos la variable "vacía" para volver a guardar de nuevo caracteres y compararlos con
cada uno de los casos
}
}
Montaje en protoboard:
IMPORTANTE:
- El código para emparejar el módulo bluetooth con el dispositivo, suele ser "1234".
- Si se usan los pines 0 y 1 del arduino (Rx y Tx), a la hora de cargar el sketch hay que desconectarlos y una
vez se haya cargado los volvemos a conectar. En el caso de que queráis usar otros pines digitales para no
tener problema con esto, tendréis que usar la librería SoftwareSerial.h. Aquí podéis encontrar más
información: http://arduino.cc/es/Reference/SoftwareSerial
AppInventor: http://appinventor.mit.edu/explore/classic.html
AppInventor 2: http://ai2.appinventor.mit.edu/
Tome como referencia las técnica e instrumentos de evaluación citados en la guía de Desarrollo Curricular
Interpretar parámetros
eléctricos. Checklist de manejo del
multímetro...
Evidencias de Desempeño Representar diagramas eléctricos
utilizando simbología
normalizada.
Conectar circuitos e
instrumentos de medición.
Medir parámetros
fundamentales en circuitos
eléctricos.
Registrar parámetros de
magnitudes eléctricas.
Distinguir características,
funcionamiento y simbología de
los componentes activos y
pasivos
5. GLOSARIO DE TERMINOS
Electrón: Es una partícula subatómica con una carga eléctrica elemental negativa
Volt: El voltio o volt por símbolo V, es la unidad derivada del Sistema Internacional para el potencial
eléctrico, la fuerza electromotriz y la tensión eléctrica.
6. REFERENTES BILBIOGRAFICOS
Autor (es)