37 Sensor Kit Tutorial de Uso Del Kit de 37 Sensores V2.0 19.9.17 PDF
37 Sensor Kit Tutorial de Uso Del Kit de 37 Sensores V2.0 19.9.17 PDF
37 Sensor Kit Tutorial de Uso Del Kit de 37 Sensores V2.0 19.9.17 PDF
SENSORES
Atención al cliente
Como una empresa de tecnología en continuo y rápido crecimiento, nuestros principales
objetivos son brindarle excelentes productos y atención al cliente de primera calidad. Puedes
ponerte en contacto con nosotros a través de los correos electrónicos [email protected] o
[email protected]. Queremos leer sus comentarios y sugerencias, ya que tienen un gran
valor para nosotros.
Todas sus preguntas y dudas serán respondidas con prontitud por nuestros ingenieros
especializados en menos de 12 horas (o 24 durante los días feriados)
4/332
5/332
6/332
Contenido
Lesson 16 Large Microphone Module and Small Microphone Module .................. 163
Introducción
El Entorno de Desarrollo Integrado o IDE (siglas en inglés de Integrated Development
Environment) es el software que se utiliza en la plataforma de Arduino.
En esta lección, aprenderás como configurar tu computador para utilizar Arduino y poder
trabajar de ahíen adelante con las demás lecciones que vienen posteriormente.
El IDE de Arduino que se utilizará para programar está disponible para Windows, Mac y Linux.
El proceso de instalación es diferente para cada plataforma y se requiere cierto trabajo manual
para instalar el software.
La versión del IDE de Arduino disponible en esta página web es usualmente la más
actualizada, por lo que es posible que el número de la misma sea diferente del que se
muestra en la imagen anterior.
10/332
Paso 2: Descarga el IDE de Arduino compatible con el sistema
operativo de tu computadora. Tomaremos como ejemplo el de
Windows.
De esta forma, te hemos explicado como instalar el IDE de Arduino con el paquete
de instalación .exe A continuación te mostraremos algunas otras maneras de
instalar el software, asíque puedes saltar a la lección 1 directamente si asílo
deseas instalar
Descomprime el archivo zip descargado, haz doble clic para abrir el programa e
ingresa en el entorno de desarrollo que desees.
Es importante tomar en cuenta que este método de instalación
requiere agregar otro driver adicional.
La carpeta contiene tanto el programa Arduino como los controladores (drivers) que le
permiten a tu computador conectarse con Arduino a través del puerto USB. Antes de
iniciar el software de Arduino, vas a configurar los drivers correspondientes.
1 Utiliza tu cable USB para conectar el Arduino con el puerto USB de tu computadora.
Los usuarios de Windows pueden saltarse las instrucciones de instalación para Mac
y Linux si lo desean, continuando a la lección 1. Los usuarios de Mac y Linux
pueden continuar leyendo esta sección.
OSX 10.7 Lion or newer
Instalar Arduino en
Mac OS X
https://www.arduino.cc/en/guide/linux
Lección 1 Agregar Librerías
Para instalar una nueva librería en tu IDE de Arduino, puedes usar el Library
Manager (disponible desde la versión 1.8.5 del IDE). Abre el IDE y haz clic en el
menú "Sketch" y luego incluye las librerías en Library > Manage Libraries.
El Library Manager abrirá y en él podrás ver la lista de librerías instaladas o
listas para instalar. En el ejemplo instalaremos la librería Bridge. Desplázate a
lo largo de la lista para encontrarla y selecciona la versión de la librería a
instalar, Algunas veces solo encontrarás una versión disponible. No te
preocupes si el menú de selección de versiones no aparece, es normal que
eso pase algunas veces
Trata de tener paciencia que se toma su tiempo; tal como aparece en la figura,
refresca y espera un poco.
Para finalizar, haz clic en Install y espera que se incluya la nueva librería en el
IDE. Descargarlo se toma cierto tiempo y depende de la velocidad de tu
conexión a internet. Cuando se complete la instalación, una etiqueta de
instalado aparecerá junto a la librería Bridge. Ya puedes cerrar el Library
Manager para ese momento.
Instalación Manual
Para instalar la librería, primero cierra la aplicación Arduino y descomprime el archivo
zip que contiene la librería. Por ejemplo, si estás instalando una librería llamada
28/332
"Arduino Party", descomprime el archivo ArduinoParty.zip. Este debería tener una
carpeta llamada ArduinoParty, con archivos como ArduinoParty.cpp y ArduinoParty.h
adentro. (Si los archivos .cpp y .h no están en una carpeta, será necesario crearla. En
ese caso, crea una carpeta de nombre "ArduinoParty" y coloca dentro de la misma
todos los archivos que estaban en la carpeta zip, tales como ArduinoParty.cpp and
ArduinoParty.h.)
MyDocuments\Arduino\libraries\ArduinoParty\ArduinoPa
rty.cpp
MyDocuments\Arduino\libraries\ArduinoParty\ArduinoPa
rty.h
My Documents\Arduino\libraries\ArduinoParty\examples
Pueden haber más archivos que el .cpp y el .h, pero asegúrate que esos
estén ahí (La librería no funcionará si colocas los archivos .cpp y .h
directamente en la carpeta librerías o si se encuentran anidados en una
carpeta extra.)
Por ejemplo:
Documents\Arduino\libraries\ArduinoParty.cpp y
Documents\Arduino\libraries\ArduinoParty\ArduinoParty\ArduinoParty.cp
p no funcionarán)
29/332
Reinicia la aplicación Arduino.
Para instalar una nueva librería en tu IDE de Arduino, puedes usar el Library
Manager (disponible desde la versión 1.8.5 del IDE). Abre el IDE y haz clic en el
menú "Sketch" yluegoincluyelaslibrerí
asenLibrary > Manage Libraries.
30/332
para instalar. En el ejemplo instalaremos la librería Bridge. Desplázate a lo largo
de la lista para encontrarla, y selecciona la versión de la librería que quieres
instalar. Algunas veces solo habrá una versión de la librería disponible. Si no te
aparece el menú de selección de versiones, no te preocupes, es algo normal.
Trata de tener paciencia que se toma su tiempo; tal como aparece en la figura. Por
favor refresca y espera un poco.
31/332
Para finalizar, haz clic en Install y espera que se incluya la nueva librería en
el IDE. Descargarlo se toma cierto tiempo y depende de la velocidad de tu
conexión a internet. Cuando se complete la instalación, una etiqueta de
instalado aparecerá junto a la librería Bridge. Ya puedes cerrar el Library
Manager para ese momento.
32/332
Importar una librería .zip
33/332
hasta la ubicación de los archivos zip y ábrelos.
34/332
35/332
Vuelve al menú Sketch > Import Library. Deberías poder ver la librería al final de
la lista desplegable. Ya está lista para usarse en tu Sketch. El archivo zip ya se
habrá expandido en la carpeta librerías del directorio de tus sketches de Arduino.
Importante: la librería estará disponibles para ser usada en los sketches pero
no se expondrá en la carpeta <t125/> <t126/>File<t127/> <t128/>><t129/>
<t130/>Examples<t131/> <t132/> hasta que no se haya reiniciado el IDE de
Arduino.
Esos serían los dos métodos más comunes para instalar el IDE. Los sistemas
Mac y Linux se pueden manejar de la misma manera. El proceso de instalación
manual se muestra abajo aunque sea requerido en pocos casos. Los usuarios
que no lo necesiten pueden saltarse esta parte.
Instalación Manual
36/332
My Documents\Arduino\libraries\ArduinoParty\examples
36/332
Lección 2 Abrir Monitor Serial de Arduino
Seleccionar el puerto a abrir en el Monitor Serial equivale a seleccionar el puerto a través del cual se
cargará el código Arduino. Ve a Tools -> Serial Port, y selecciona el puerto correcto.
37/332
Tips: Escoge el mismo puerto COM que se muestra en el Administrador de
Dispositivos Una vez que lo abras, deberías ver algo como esto:
38/332
Configuración
El Monitor Serial tiene pocos ajustes, pero los suficientes para manejar la mayoría de tus
necesidades de comunicación serial. El primer ajuste que puedes alterar es el baud rate o velocidad
de transmisión Haz clic en el menú desplegable de Vaud rate para seleccionar la velocidad de
transmisión correcta. (9600 baudios)
Por último, puedes configurar que el terminal haga Auto scroll o no, tildando la casilla de
verificación ubicada en la esquina inferior izquierda.
Pros
El Monitor Serial es una excelente manera de establecer una conexión serial con tu Arduino de
forma rápida y sencilla. Si ya te encuentras trabajando en el IDE de Arduino, no hay necesidad de
abrir una ventana separada del terminal para mostrar los datos.
Contras
Los escasos ajustes que se pueden configurar dejan mucho que desear en el Monitor Serial, por lo
que para comunicaciones seriales avanzadas puede no funcionar como se esperaría.
39/332
En el entorno Mac, abre el monitor de puerto serial:
Seleccionar el puerto a abrir en el Monitor Serial equivale a seleccionar el puerto a través del cual se
cargará el código Arduino. Ve a Tools -> Serial Port, y selecciona el puerto correcto.
40/332
Una vez que lo abras, deberías ver algo como esto:
41/332
Configuración
El Monitor Serial tiene pocos ajustes, pero los suficientes para manejar la mayoría de tus
necesidades de comunicación serial. El primer ajuste que puedes alterar es el baud rate o velocidad
de transmisión Haz clic en el menú desplegable de baud rate para seleccionar la velocidad de
transmisión correcta. (9600 baudios)
Por último, puedes configurar que el terminal haga Auto scroll o no, tildando la casilla de
verificación ubicada en la esquina inferior izquierda.
Pros
El Monitor Serial es una excelente manera de establecer una conexión serial con tu Arduino de
forma rápida y sencilla. Si ya te encuentras trabajando en el IDE de Arduino, no hay necesidad de
abrir una ventana separada del terminal para mostrar los datos
Contras
Los escasos ajustes que se pueden configurar dejan mucho que desear en el Monitor Serial, por lo
que para comunicaciones seriales avanzadas puede no funcionar como se esperaría.
42/332
Lección 3 Destello
Resumen
En esta lección, aprenderás a programar tu tarjeta controladora UNO R3 para hacer destellar su
LED integrado asícomo para descargar programas.
La tarjeta UNO R3 posee filas de conectores de ambos lados, las cuales se pueden usar para
conectar varios dispositivos electrónicos enchufables conocidos como "shields" o tarjetas
auxiliares que extienden sus capacidades.
Tiene también un LED individual que puedes controlar desde tus sketches. Este LED está
incorporado directamente sobre la tarjeta UNO R3 y es conocido comúnmente como el LED "L"
ya que asíaparece marcado en la tarjeta.
43/332
Como seguramente notarás, el LED "L" se ilumina cuando conectas la tarjeta a un puerto USB. Esto
se debe a que las tarjetas se envían precargadas con el sketch "Blink" (o destello) instalado por
defecto.
En esta lección, reprogramaremos la tarjeta UNO R3 con nuestro propio sketch de destello para
después modificar la velocidad a la cual se ilumina.
El IDE de Arduino incluye una colección bastante grande de sketches de ejemplos para cargarlos y
usarlos. Entre esos ejemplos está incluido un sketch para hacer destellar el LED "L".
Carga el sketch "Blink" que encontrarás en el siguiente menú del IDE: File > Examples > 01.Basics
44/332
Cuando abre la ventana del sketch, agrándala para que puedas ver el sketch por completo en la ventana.
Los sketches de ejemplo incluidos con el IDE de Arduino son de solo lectura. Por lo tanto, los puedes
subir a una tarjeta UNO R3 pero si haces algún cambio no podrás salvarlo bajo el mismo nombre.
Conecta tu tarjeta Arduino a tu computadora con el cable USB y verifica que el tipo de tarjeta ('Board
Type') y el puerto serial ('Serial Port') estén configurados correctamente.
45/332
46/332
47/332
http://www.elegoo.com
Nota: el tipo de tarjeta y puerto serial no son necesariamente los mismos que se muestran
en la figura. Si usas la 2560, tendrás que seleccionar Mega 2560 como el tipo de tarjeta y
las demás selecciones se pueden realizar de la misma forma. El puerto serial que se
muestra es diferente en cada caso, a pesar de que se muestra el COM 3 aquí, podría ser el
COM4 o COM8 en tu computadora. Un puerto COM correcto se supone que sea COMX
(Arduino XXX) según el criterio de certificación.
Haz clic en botón 'Upload'. En la barra de herramientas, es el segundo botón empezando desde la
derecha, representado con una fecha que apunta hacia la derecha.
Si te fijas en el área de estatus del IDE, verás una barra de estado y una serie de mensajes. Al principio,
dirá 'Compiling Sketch...'. Durante esta etapa se convierte el sketch a un formato adecuado para
descargarlo en la tarjeta.
Después de eso, el estado cambiará a 'Uploading'. En ese punto, el LED del Arduino debería comenzar a
encender de forma intermitente mientras se transfiere el sketch.
51/332
http://www.elegoo.com
El otro mensaje nos dice que el sketch está utilizando 928 bytes de los 32,256 bytes disponibles.
Si falla la carga, recibirás el siguiente mensaje después de 'Compiling Sketch...'
Este es un error genérico y puede significar una de tres cosas: O tu tarjeta no está conectada, o no tienes
instalados los drivers, o se seleccionó el puerto serial erróneo. Si te encuentras con esto, vuelve a la
lección 0 y verifica tu instalación.
Una vez que la carga se haya completado, la tarjeta debería reiniciar y comenzar a destellar.
Instrucción: explica como trabaja el programa. Están allípara tu beneficio. Todo lo que aparece
entre los símbolos /* y */ en la parte superior del sketch es un bloque de comentarios; explica
para qué sirve el sketch.
Los comentarios de una sola línea comienzan con el símbolo // y todo lo que salga hasta al final de dicha
52/332
http://www.elegoo.com
línea se considera parte del comentario.
Como se explica en el comentario de arriba, con esta línea se le está dando nombre al pin al cual se
encuentra conectado el LED. Dicho pin es el 13 en la mayoría de los Arduino, incluyendo al UNO y el
Leonardo.
Luego, tenemos la función de configuración o 'setup'. Nuevamente, tal como dice el comentario, esto se
ejecuta cuando se presiona el botón reset. También se ejecuta cuando la tarjeta se reinicia por cualquier
motivo, como cuando se enciende o cuando se ha terminado de cargar un sketch.
void setup() {
Todo sketch de Arduino debe contar con una función de 'setup' y el sitio donde deberías colocar las
instrucciones de la tuya es entre los símbolos { y }.
En este caso, solo hay un comando allí, el cual, de acuerdo a lo que dice el comentario le dice a la tarjeta
de Arduino que vamos a usar el pin del LED como salida.
Es también obligatorio que los sketches tengan una función 'loop'. A diferencia de la función 'setup' que
solo corre una vez. Después de reiniciar, la función 'loop' arrancará de nuevo de forma inmediata después
de terminar de correr sus comandos.
void loop() {
Dentro de la función loop, los comandos encienden el LED primero que todo (HIGH), luego hacen un
53/332
http://www.elegoo.com
'delay' (esperan) por 1000 millisegundos (1 segundo), para luego apagar el pin del LED y hacer una pausa
de un segundo. Ahora harás que el LED destelle más rápido.
Como seguramente has adivinado, la clave es cambiar el parámetro dentro de los paréntesis () del
comando 'delay'.
Este periodo es en milisegundos, por tanto si quieres que el LED destelle dos veces más rápido, cambia
el valor de 1000 a 500. Esto hace que el programa se pause solamente medio segundo entre cada
cambio de estado.
Vuelve a cargar el sketch y verás como el LED comienza a destellar más rápidamente.
En la lección 0, configuraste tu IDE de Arduino y te aseguraste encontrar el puerto serial adecuado para
conectarse con tu UNO R3. Pues ahora llego el momento que pruebes esa conexión y programes tu
tarjeta UNO R3.
El IDE de Arduino incluye una colección bastante grande de sketches de ejemplos para cargarlos y
usarlos. Entre esos ejemplos está incluido un sketch para hacer destellar el LED "L".
Carga el sketch "Blink" que encontrarás en el siguiente menú del IDE: File > Examples > 01. Basics
54/332
http://www.elegoo.com
55/332
http://www.elegoo.com
Cuando abre la ventana del sketch, agrándala para que puedas ver el sketch por
completo en la ventana.
56/332
http://www.elegoo.com
Conecta tu tarjeta Arduino a tu computadora con el cable USB y verifica que el tipo de tarjeta ('Board
Type') y el puerto serial ('Serial Port') estén configurados correctamente.
53/332
http://www.elegoo.com
Nota: el tipo de tarjeta y puerto serial no son necesariamente los mismos que se muestran
en la figura. Si usas la 2560, tendrás que seleccionar Mega 2560 como el tipo de tarjeta y
las demás selecciones se pueden realizar de la misma forma. Y el puerto serial se muestra
para /dev/cu.usbmodem1471 (Arduino/Genuino Uno). Todos son diferentes, si no es el
escogido acá, puede ser también /dev/cu.usbmodemfa121(Arduino Uno) en tu computadora.
Un puerto COM correcto debe ser /dev/cu.usbmodemfaXX(Arduino XXX), el cual
corresponde con el criterio de certificación.
Haz clic en botón 'Upload'. . Es el segundo botón en la barra de herramientas, mirando desde la izquierda.
Si te fijas en el área de estatus del IDE, verás una barra de estado y una serie de mensajes. Al principio,
dirá 'Compiling Sketch...'. Durante esta etapa se convierte el sketch a un formato adecuado para
descargarlo en la tarjeta.
http://www.elegoo.com
Después de eso, el estado cambiará a 'Uploading'. En ese punto, el LED del Arduino debería comenzar a
encender de forma intermitente mientras se transfiere el sketch.
El otro mensaje nos dice que el sketch está utilizando 928 bytes de los 32,256 bytes disponibles. Podrías
recibir el siguiente mensaje de error después de la fase 'Compiling Sketch...'
Puede significar que la tarjeta no está conectada, que no se han instalado los drivers (de ser necesarios)
o que se ha seleccionado el puerto serial errado.
Nota que una gran parte de este sketch está compuesto por comentarios. Los mismos no son parte
del programa propiamente dicho; solo explican cómo funciona el programa. Están allípara tu beneficio.
Todo lo que aparece entre los símbolos /* y */ en la parte superior del sketch es un bloque de
comentarios; explica para qué sirve el sketch.
Los comentarios de una sola línea comienzan con el símbolo // y todo lo que salga hasta al final de dicha
línea se considera parte del comentario.
Como se explica en el comentario de arriba, con esta línea se le está dando nombre al pin al cual se
encuentra conectado el LED. Dicho pin es el 13 en la mayoría de los Arduino, incluyendo al UNO y el
Leonardo.
Luego, tenemos la función de configuración o 'setup'. Nuevamente, tal como dice el comentario, esto se
ejecuta cuando se presiona el botón reset. También se ejecuta cuando la tarjeta se reinicia por cualquier
motivo, como cuando se enciende o cuando se ha terminado de cargar un sketch.
void setup() {
// inicializar el pin digital como una salida. pin Mode(led, OUTPUT);
}
Todo sketch de Arduino debe contar con una función de 'setup' y el sitio donde deberías colocar las
instrucciones de la tuya es entre los símbolos { y }.
En este caso, solo hay un comando allí, el cual, de acuerdo a lo que dice el comentario le dice a la tarjeta
de Arduino que vamos a usar el pin del LED como salida.
Es también obligatorio que los sketches tengan una función 'loop'. A diferencia de la función 'setup' que
solo corre una vez (después de reiniciar) la función 'loop' arrancará de nuevo de forma inmediata después
de terminar de correr sus comandos.
void loop() {
http://www.elegoo.com
Dentro de la función loop, los comandos encienden el LED primero que todo (HIGH), luego hacen un
'delay' (esperan) por 1000 millisegundos (1 segundo), para luego apagar el pin del LED y hacer una pausa
de un segundo.
Ahora harás que el LED destelle más rápido. Como seguramente has adivinado, la clave es cambiar el
parámetro dentro de los paréntesis () del comando 'delay'.
Este periodo es en milisegundos, por tanto si quieres que el LED destelle dos veces más rápido, cambia
el valor de 1000 a 500. Esto hará que cada retardo sea de medio segundo y no de un segundo entero.
Vuelve a cargar el sketch y verás como el LED comienza a destellar más rápidamente.
http://www.elegoo.com
Temperatura y Humedad
Un módulo con un sensor de temperatura/humedad tipo DHT1.
Rango de temperatura: -20 - 60°C (+/-1°C), Humedad Rel. : 5-95% (+/5%),
Voltaje de alimentación: 3 a 5.5V.
Con un resistor tipo pull up de 10 K ohm
Librería: DHT.h
Componentes requeridos:
1 x Elegoo Uno R3
Características eléctricas
Fuente de poder: DC 3.5 ~5.5V
Corriente de suministro: en medición 0.3mA en espera 60μA
Periodo de muestreo: más de 2 segundos
63/332
http://www.elegoo.com
Descripción de Pines:
1. La fuente de poder VDD 3.5~5.5VDC
2. DATA datos seriales, un bus sencillo
Aplicaciones típicas
64/332
http://www.elegoo.com
Esquema de conexiones
61/332
http://www.elegoo.com
62/332
http://www.elegoo.com
Diagrama de cableado
63/332
http://www.elegoo.com
Tal como puedes ver, solo necesitamos 3 conexiones al sensor, debido a que uno de los
pines no se utiliza.
Las conexiones son: voltaje, tierra y señal, la cual puede ser conectada a cualquier pin de
nuestro UNO.
Código
Después de realizar el cableado, por favor abre el programa en la carpeta de código (Lección 4 Módulo de
Temperatura y Humedad) y haz clic en UPLOAD para cargar el programa. Si hay algún error, consulta los
detalles en la lección 2 para cargar el programa.
Antes de poder correrlo, asegúrate de tener la librería < DHT> instalada, o reinstálala de ser necesario.
De otra forma, tu código no funcionará.
Para detalles del tutorial acerca de cómo cargar los archivos de librerías, consulta la lección 1.
65/332
http://www.elegoo.com
66/332
http://www.elegoo.com
67/332
http://www.elegoo.com
Carga el programa y abre el monitor, se podrán ver los datos como aparecen abajo: (se muestra la
temperatura ambiental, en este caso de 28 grados)
Haz clic en el botón del Monitor Serial para encenderlo. En la lección 2 se explica en detalle como
utilizarlo.
67/332
http://www.elegoo.com
#include<dht_nonblocking.h>
void setup( )
Serial.begin( 9600);
void loop( )
if(dht_sensor.measure(&temperatu
re, &humidity)){ Serial.print( "T
= " );
Serial.print( t
emperature,
1 );
Serial.print(
" deg. C, H = "
68/332
http://www.elegoo.com
);
Serial.print(
humidity,
1 );
Serial.printl
n( "%" );
}
69/332
http://www.elegoo.com
70/332
http://www.elegoo.com
(1) if
if prueba si cierta condición se ha alcanzado, como por ejemplo si una entrada está por encima de cierto
número. El formato para una prueba if es como sigue:
El programa prueba si el valor de algunaVariable es mayor que 50. Si es así, el programa ejecuta una
acción particular. Para decirlo de otra forma, si lo que está entre paréntesis (el enunciado) es verdadero,
se ejecutará entonces lo que aparece entre corchetes. Si no, el programa se salta el código.
Los corchetes después de un enunciado if pueden ser omitidos Si se omiten, la siguiente línea (definida
por el punto y coma) se convertirá en el único enunciado condicional.
Los enunciados que se evalúan dentro de los paréntesis requieren del uso de uno o más operadores:
Operadores:
x == y (x es igual a y)
x != y (x es diferente de y)
x< y (x es menor que y)
x> y (x es mayor que y)
x <= y (x es menor o igual que y)
x >= y (x es mayor o igual que y)
71/332
http://www.elegoo.com
Advertencia
Ten cuidado de no utilizar accidentalmente el símbolo de igualdad sencillo (ejemplo: if (x = 10) ). Este
símbolo es un operador de asignación, es decir, determina que el valor de x es una constante, en este
caso 10. En su lugar, utiliza el símbolo de igualdad doble (ejemplo: if (x == 10) ), que es el operador de
comparación, para probar si la variable x es igual a 10 o no. El último enunciado es verdadero síy solo si
x es igual a 10; el anterior siempre será verdadero. Esto debido a que C evalúa el enunciado if (x=10) de
la siguiente manera: 10 está asignado a x, asíque x contiene 10. Luego, el "if" condicional evalúa 10,
dándolo siempre como verdadero, ya que todo número diferente de cero es verdadero. En consecuencia if
(x = 10) siempre será evaluado como TRUE, lo que no es deseable cuando se requiere utilizar un
enunciado "if". Adicionalmente, la variable x será definida como una constante de valor 10, lo que
tampoco es una acción deseable.
if también puede formar parte de una estructura de control entrelazada, utilizando la construcción if...else].
El enunciado "for" es útil para cualquier operación repetitiva, y se usa frecuentemente en combinación con
arreglos para operar recolección de datos desde los pines. El encabezado del lazo "for" consta de tres
partes: for (inicialización; condición; incremento) { //enunciado(s); }
La inicialización sucede al principio y solo una vez. Cada vez que se cumple una vuelta del lazo se evalúa
la condición; si es verdadera, se ejecuta el bloque de enunciado y el incremento, para volver a probar la
condición al continuar. Cuando la condición se hace falsa, se termina el lazo.
Ejemplo
// Baja la intensidad de un LED utilizando un pin PWM pin int PWMpin = 10; // LED en serie con resistor de
1k en pin 10 void setup()
{ // no es necesario configurar } void loop()
{ for (int i=0; i <= 255; i++)
{ analogWrite(PWMpin, i);
delay(10);
}
}
72/332
http://www.elegoo.com
Tip de programación
El loop for de lenguaje C es mucho más flexible que los de otros lenguajes de programación, incluyendo a
BASIC. Cualquiera de los tres elementos del encabezado puede ser omitido, aunque se requiere utilizar
punto y coma. De igual manera, los enunciados para inicialización, condición e incremento pueden ser
cualquier enunciado válido para C con variables no relacionadas. Estos raros tipos de enunciado "for"
inusuales pueden proporcionar soluciones a extraños problemas de programación.
73/332
http://www.elegoo.com
Debido a que la salida del anterior sensor de temperatura es analógica, será necesario agregar un chip
A/D y D/A al circuito. Esto será todo un desafío. Asíque vamos a crear el módulo Ds18b20
El nuevo módulo sensor de temperatura DS18B20 es muy bueno para solucionar el problema. es barato,
tiene un bus de un solo cable y es totalmente compatible con la plataforma Arduino. Los usuarios pueden
hacer una red de manera sencilla con este módulo.
74/332
http://www.elegoo.com
Componentes requeridos:
72/332
http://www.elegoo.com
Principio
El módulo DS18B20 utiliza un bus sencillo. El rango de la fuente de poder de 3.0 V a 5.5 V sin fuente de
poder para tiempo de espera.
Puede medir temperatura en un rango desde -55 grados a +125 grados, con una precisión de +/-0.5°C.
El sensor de temperatura posee un DPI programable puede ajustarse entre 9 y 12. La temperatura
propiamente dicha se representa mediante 12 bits y puede registrarse a una tasa máxima de una vez
cada 750 milisegundos.
Cada DS18B20 contiene un número de serie único, de forma que puede haber múltiples chips
DS18B20en un bus.
73/332
http://www.elegoo.com
Esquema de conexiones
74/332
http://www.elegoo.com
Diagrama de cableado
75/332
http://www.elegoo.com
76/332
http://www.elegoo.com
Código
Después de realizar el cableado, por favor abre el programa en la carpeta de código Lección 5 Módulo de
sensor de temperatura digital DS18B2) y haz clic en UPLOAD para cargar el programa. Si hay algún error,
consulta los detalles en la lección 2 para cargar el programa.
Para detalles del tutorial acerca de cómo cargar los archivos de librerías, consulta la lección 1.
Resultados
77/332
http://www.elegoo.com
Este sensor de temperatura puede ejecutar mediciones en diferentes lugares al mismo tiempo. Carga el
programa y abre el monitor, se podrán ver los datos como aparecen abajo:
77/332
http://www.elegoo.com
/* Configura una instancia oneWire para comunicarte con dispositivos del tipo OneWire (No
solo con Ics de temperatura Maxim/Dallas)*/
One Wire one Wire(ONE WIRE BUS);
/*ç
* La función de configuración. Solo arrancamos el sensor desde aqui
*/
void setup (void)
{
/* start serial port*/ Serial. begin(9600);
Serial. Println("Dallas Temperature IC Control Library Demo");
/*ç
* Función principal, obtiene y muestra la temperatura
*/
78/332
http://www.elegoo.com
void loop(void)
{
/* Llama sensores. Solicita las temperaturas () para promediar un total */
/*request to all devices on the bus*/ Serial.print("Requesting temperatures...");
sensors.requestTemperatures(); /*Envía el comando para obtener las temperaturas*/
Serial.println("DONE");
/* Después de recibir las temperaturas, las imprimimos acá.*/
/*Usamos la función ByIndex como ejemplo, solo obtenemos la temperatura del primer
sensor.*/ Serial.print("Temperature for the device 1 (index 0) is: ");
Serial.println(sensors.getTempCByIndex(0));
}
A partir del programa mostrado arriba, es posible aprender la sintaxis de la estructura de control de la
programación.
(1) begin ()
Descripción
Configura la velocidad de transmisión de datos en bit por segundos (baudios). Para comunicarte con la
computadora, utiliza cualquiera de estas velocidades: 300, 600, 1200, 2400, 4800, 9600, 14400, 19200,
28800, 38400, 57600, o 115200. Puedes también especificar otras velocidades para, por ejemplo,
comunicarte a través de los pines 0 y 1 con un componente que requiera una velocidad de transmisión
particular.
Un segundo argumento opcional configura los bits de datos, paridad y parada. Por defecto la
configuración es 8 bits de datos, sin bit de paridad ni parada.
Syntax Serial.begin(speed)
Serial.begin(speed, config) Arduino Mega only: Serial1.begin(speed) Serial2.begin(speed)
Serial3.begin(speed) Serial1.begin(speed, config)
79/332
http://www.elegoo.com
config: configura los bits de datos, paridad y datos. Son valores válidos: SERIAL_5N1
SERIAL_6N1 SERIAL_7N1
SERIAL_8N1 (por defecto) SERIAL_5N2
SERIAL_6N2 SERIAL_7N2 SERIAL_8N2 SERIAL_5E1 SERIAL_6E1 SERIAL_7E1 SERIAL_8E1
SERIAL_5E2
Serial. begin (9600); // Abre el puerto serial, configurando la velocidad de transmisión de datos en 9600
bps
}
80/332
http://www.elegoo.com
}
void loop() {}
81/332
http://www.elegoo.com
(2) println()
Imprime la data en el puerto serial en la forma de un texto ASCII entendible por el ser humano, seguido de
un carácter de corte de línea (ASCII 13, o '\r') y uno de línea nueva (ASCII 10, o '\n'). Este comando toma
la misma forma que Serial.print().
Sintaxis
Example:
/*ç
Entrada analógica
82/332
http://www.elegoo.com
int analogValue = 0; void setup() {
Serial. println (analog Value, BIN); // La imprime como un binario codificado mediante ASCII
// retardo de 10 milisegundos antes de la nueva lectura: delay(10);
}
83/332
http://www.elegoo.com
Resumen
Un resistor de 10 K ohm incorporado se conecta entre el pin central y el pin "S" para ser usado como
resistor pull up o pull down según se requiera. El pulsador conecta los dos pines externos.
Componentes requeridos:
84/332
http://www.elegoo.com
Interruptores pulsadores
Los interruptores son componentes realmente simples Cuando presionas un botón o mueves una palanca,
conectan dos contactos de forma que la electricidad fluya entre ellos. Los pequeños interruptores táctiles
que se usan en esta lección tienen cuatro conexiones, por lo que pueden ser algo complicados.
En realidad, solo hay dos conexiones eléctricas, ya que dentro del interruptor B y
C están conectados, al igual que A y D
Principio
El interruptor de botón y el puerto 13 forman parte de un simple circuito con el LED integrado. Para
hacer destellar el LED usando el botón, podemos conectar el puerto digital número 13 al mismo y el
interruptor al puerto 3 de la tarjeta Elegoo Uno. Cuando el interruptor sense, el LED parpadeará de
acuerdo a su señal.
85/332
http://www.elegoo.com
Esquema de conexión
86/332
http://www.elegoo.com
Diagrama de cableado
87/332
http://www.elegoo.com
88/332
http://www.elegoo.com
Imagen ejemplo
89/332
http://www.elegoo.com
Código
Después de realizar el cableado, por favor abre el programa en la carpeta de código (Lección 6 Módulo
de botón interruptor ) y haz clic en UPLOAD para cargar el programa. Consulta la lección 2 para más
detalles acerca de la carga del programa en caso que haya algún error. Luego presiona el botón y podrás
ver como el LED enciende y apaga.
pinMode(Shock, INPUT);
}
void loop()
{
/Lee el valor de la interfaz digital 3 asignada a val
if (val == HIGH)
{
digitalWrite(Led, LOW);
90/332
http://www.elegoo.com
}
else
{
digitalWrite(Led, HIGH);
}
}
{ // acción A }
else
{ // acción B }
else puede proceder con otra prueba if, así que es posible realizar múltiples pruebas mutuamente
excluyentes al mismo tiempo: if (pinFiveInput < 500)
{ // Ejecuta la acción A }
else if (pinFiveInput >= 1000)
{ //Ejecuta la acción B } else
{ // Ejecuta la acción C }
Puedes tener innumerables opciones para ejecutar en el programa. (Otra forma de expresar las pruebas
mutuamente excluyentes es a través del enunciado del interruptor)
Nota de programación: si utilizas if/else y quieres estar seguro de que siempre se tome alguna acción por
defecto, es una buena idea. Terminar tus pruebas con un enunciado else configurado para ejecutar la
acción que deseas.
91/332
http://www.elegoo.com
Resumen
En esta lección, aprenderemos como utilizar módulos de interruptor. Incluyendo los módulos de interruptor
de choque, inclinación y toque.
Un resistor de 10 K ohm incorporado se conecta entre el pin central y el pin "S" para ser usado como
resistor pull up o pull down según se requiera. Los contactos del interruptor conectan los dos pines
externos.
92/332
http://www.elegoo.com
93/332
http://www.elegoo.com
También llamado modulo sensor de vibración Los contactos de interruptor momentáneos van conectados
entre los dos pines externos.
Componentes Requeridos:
Principio
El módulo de interruptor y el puerto digital 13 de la tarjeta UNO (o de la Mega 2560) tienen circuitos
LED incorporados. Por tanto, para hacer que el interruptor lo haga parpadear solo necesitas conectar
el pin "S" del módulo interruptor al puerto digital 13 de la tarjeta Elegoo Uno (o de la Mega 2560).
Después de conectar, el módulo envía una señal que cuando el interruptor está censando, hace que el
LED parpadee.
94/332
http://www.elegoo.com
Esquema de conexión
95/332
http://www.elegoo.com
Diagrama de cableado
94/333
http://www.elegoo.com
95/333
http://www.elegoo.com
95/333
http://www.elegoo.com
96/333
http://www.elegoo.com
Código
Después de realizar el cableado, por favor abre el programa en la carpeta de código (Lección 7 todos los
tipos de interruptores de vibración ) y haz clic en UPLOAD para cargar el programa. Si hay algún error,
consulta los detalles en la lección 2 para cargar el programa. Ya puedes inclinar o chocar el sensor para
que veas como el LED se enciende y apaga
Imagen ejemplo
97/333
http://www.elegoo.com
98/333
http://www.elegoo.com
99/333
http://www.elegoo.com
val=digitalRead(buttonpin);
//cuando el sensor interruptor tenga señal, el LED destellará
if(val==HIGH)
{
/*Puedes cambiar el estado de la luz de control entre LOW y HIGH*/
digitalWrite (Led,HIGH);
}
else
{
digitalWrite (Led,LOW);
}
}
100/333
http://www.elegoo.com
(1) if/else
if/else permite tener mayor control del flujo de código que con el enunciado if básico, al permitir que se
agrupen múltiples pruebas. Por ejemplo, se podría programar una entrada analógica y tomar una acción si
el valor fuese menor que 500, o tomar otra acción cuando sea mayor que 500.
else puede proceder con otra prueba if, así que es posible realizar múltiples pruebas mutuamente
excluyentes al mismo tiempo: if (pinFiveInput < 500)
{ // Ejecuta la acción A }
{ // Ejecuta la acción C }
Puedes tener innumerables opciones para ejecutar en el programa. (Otra forma de expresar las pruebas
mutuamente excluyentes es a través del enunciado del interruptor)
Nota de programación: si utilizas if/else y quieres estar seguro de que siempre se tome alguna acción por
defecto, es una buena idea terminar tus pruebas con un enunciado else configurado para ejecutar la
acción que deseas.
101/332
http://www.elegoo.com
102/332
http://www.elegoo.com
En este experimento, aprenderemos como utilizar el Receptor Infrarrojo y el módulo transmisor IR.
De hecho, en nuestra vida diaria esta clase de dispositivos juegan un rol en muchos aparatos eléctricos
del hogar, tales como aires acondicionados, TVs, DVDs, etc. Se basan en tecnologías de sensores sin
cables (wireless) y es muy conveniente usarlos.
Receptor IR
Sensor infrarrojo tipo 1838 para usar con señales IR de 38 KHz.
Módulo transmisor IR
El LED-IR puede ser usado para construir una barrera de luz o un transmisor de señal para control remoto
103/332
http://www.elegoo.com
Componentes Requeridos:
Los detectores IR son pequeños microchips con una fotocelda calibrada para activarse al recibir luz
infrarroja. Casi siempre se utilizan para detección de control remoto - Todos los TVs y DVDs tienen uno al
frente para recibir la señal del mando manual. Dentro del control remoto se genera una señal de IR que
activa el detector. LED, que emite pulsos IR para decir al televisor que se encienda, apague o cambie
los canales. La luz IR no es visible para el ojo humano, lo que hace que sea un poco más trabajoso
probar una configuración.
Hay algunas diferencias entre estas y las fotoceldas CdS, por ejemplo.
Los detectores IR tienen filtros especialmente diseñados para luz infrarroja, por lo que no son buenos
para detectar la luz visible. Por otro lado, las fotoceldas son buenas detectando la luz visible amarilla /
verde, pero no para detectar luz IR.
Los detectores IR tienen un demodulador interno que les permite captar la luz IR modulada a 38
KHz. Si los tratas de alumbrar con un LED-IR no funcionarán; necesitan una luz modulada bajo PWM a
38KHz. Las fotoceldas no poseen demodulador y son capaces de detectar cualquier frecuencia
(incluyendo DC) dentro de su tiempo de respuesta de aproximadamente 1KHz
Los detectores IR tienen salidas digitales - Pueden detectar la señal IR de 38KHz y entregar una
salida de nivel bajo (Low - 0V) o de nivel alto (High - 5V). Las fotoceldas actúan como resistores, su
resistencia cambia dependiendo de la cantidad de luz a la que estén expuestas.
104/332
http://www.elegoo.com
Como puedes ver en estos gráficos de la hoja técnica, la frecuencia de detección pico es de 38
KHz y el peak LED color es 940 nm. . Puedes usar un rango de entre 35 KHz a 41 KHz pero la
sensibilidad caerá y podrás detectar muy bien a la distancia. Del mismo modo, puedes usar
LEDs de 850 a 1100 nm LEDs pero no serán tan eficientes como los de 900 a 1000 nm asíque
trata de utilizar los que recomendamos. Verifica la hoja técnica de tu LED IR para constatar la
longitud de onda Trata de usar 940 nm - recuerda que este valor de 940 nm no es luz visible,
sino infrarroja!
Principio
Primeramente, conozcamos la estructura del cabezal receptor de infrarrojos: este tiene dos elementos
importantes que lo componen, el IC y el PD. El IC tiene los componentes de procesamiento del cabezal
receptor, principalmente compuestos de silicio y circuitería. Es un dispositivo de alta integración. Su
función principal es filtrar, decodificar, amplificar, etc. El PD es un diodo foto sensitivo Su principal función
es recibir la señal de luz.
105/332
http://www.elegoo.com
El diodo emisor de luz infrarroja genera una señal modulada que será recibida por el cabezal receptor de
infrarrojos, donde se filtrará, decodificará y procesará.
Diodo emisor de luz infrarroja: mantener limpio y en buenas condiciones. Durante la operación del
dispositivo, todos los parámetros deben mantenerse dentro de los valores límite (positivo para la corriente
30~60mA, corriente de pulso positiva 0.3~1A, voltaje reverso 5V, potencia de disipación 90mW, rango de
temperatura de trabajo -25~+80 ℃, y rango de temperatura de almacenamiento entre 40~100 ℃,
temperatura de soldadura
260℃) el infrarrojo del cabezal debe corresponder a la aplicación, pues de otro modo influenciará la
sensibilidad.
Código
Después de realizar el cableado, por favor abre el programa en la carpeta de código (Lección 8
Receptor y Emisor IR y haz clic en UPLOAD para cargar el programa. Si hay algún error, consulta los
detalles en la lección 2 para cargar el programa.
Antes de poder correrlo, asegúrate de tener la librería < IRremote> instalada, o reinstálala de ser
necesario. De otra forma, tu código no funcionará. Para detalles del tutorial acerca de cómo cargar los
archivos de librerías, consulta la lección 1.
Para empezar, toma la tarjeta UNO y conéctale el módulo emisor de infrarrojos de acuerdo con la imagen
que se muestra. Luego sigue el procedimiento previo para escribir el programa de emisión de infrarrojos.
Luego, toma otra tarjeta UNO, conéctale el módulo receptor de infrarrojos como se muestra abajo y
escribe el programa del receptor IR.
106/332
http://www.elegoo.com
Nota: antes de descargar, asegúrate de seleccionar de nuevo el puerto de descarga. Habrá dos puertos
seriales cuando conectas dos tarjetas UNO, debemos seleccionar uno nuevo como se muestra en la
figura.
Después de escribir el programa, alinea los módulos de emisión y recepción de infrarrojos. Presta
atención al UNO del receptor infrarrojo. Si la luz L destella, significa que el experimento fue exitoso.
El principio del experimento es que el módulo de emisión de infrarrojos transmita la señal codificada
específica. Una vez que el módulo receptor capta la señal, el UNO la decodifica y opera la lámpara L,
haciéndola destellar.
Este experimento es la base de muchas aplicaciones: puedes usar la señal IR para que el UNO controle
otros módulos tales como robots、juguetes、electrodomésticos, etc.
107/332
http://www.elegoo.com
Esquema de conexión
108/332
http://www.elegoo.com
109/332
http://www.elegoo.com
Diagrama de cableado
110/332
http://www.elegoo.com
111/332
http://www.elegoo.com
112/332
http://www.elegoo.com
Imagen ejemplo
113/332
http://www.elegoo.com
Resolución de fallas
Si la lámpara L no destella, puede ser un error de conexión o un problema en la escritura del programa.
Por favor verifica los pasos anteriores y corrige los errores.
Pero si estás seguro que tanto la conexión como el programa están correctos. Hay dos maneras para
determinar si el módulo receptor IR o el emisor IR están dañados.
1. El módulo receptor
Por favor utiliza un control remoto de TV para controlar el módulo. Si el receptor IR destella, significa que
el mismo está en buen estado. Si no lo hace, está averiado.
2. El módulo emisor.
Abre la cámara de tu teléfono Android y ponla frente al LED del emisor. Si puedes ver una luz púrpura, el
módulo está bien. Si no la puedes ver, está averiado.
Si alguno de los módulos te llego dañado, por favor contáctanos y te enviaremos el recambio.
#include <IRremote.h>
IRsend irsend; void setup()
{}
void loop()
{
/* send 0x0 code (8 bits)*/ irsend.sendRC5(0x0, 8);
Delay (200); irsend.sendRC5 (0x1, 8);
Delay (200);
}
111/332
http://www.elegoo.com
/*Se hace referencia al archivo de librería <IRremote.h> */
#include <IRremote.h>
/* Infrared signal receiving pin */
#define RECV_PIN
11
else{
State = LOW;
}
irrecv.resume();
}
}
111/332
http://www.elegoo.com
Resumen
En este experimento, aprenderemos a utilizar el módulo de timbre.
Utilizando Arduino podemos hacer muchas aplicaciones interactivas. Hasta ahora solo hemos
utilizado luces haciendo destellar LEDs. Así como hemos utilizado luces, también podemos
implementar otros circuitos como el de este experimento, donde estaremos produciendo sonidos.
Los componentes más comunes para este tipo de aplicaciones son los timbres y los altavoces. Si
se los compara con los altavoces, los timbres son más sencillos y fáciles de usar, por lo que para
este experimento implementaremos el timbre.
Los timbres electrónicos se alimentan con corriente directa y vienen equipados con un circuito integrado.
Son ampliamente utilizados en computadoras, impresoras, alarmas, juguetes electrónicos, dispositivos
electrónicos automotrices, teléfonos, temporizadores y otros productos electrónicos para dispositivos de
voz. Hay dos tipos de timbres: los activos y los pasivos. Si volteas los timbres te podrás fijar en que el que
tiene una tarjeta de circuito verde es un timbre pasivo. El que está cerrado y tiene cinta negra es uno
activo.
114/333
http://www.elegoo.com
Componentes requeridos:
Esquema de conexión
115/333
Http://www.elegoo.co
115/332
http://www.elegoo.com
Diagrama de cableado
116/332
http://www.elegoo.com
Código
Después de realizar el cableado, por favor abre el programa en la carpeta de código (Lección 9 Módulo de
Timbre Activo) y haz clic en UPLOAD para cargar el programa. Si hay algún error, consulta los detalles
en la lección 2 para cargar el programa.
Imagen ejemplo
117/332
http://www.elegoo.com
/*define la variable char i */
delay(1);
// espera 1ms
digitalWrite(buzzer,LOW);
delay(1);
}
// espera 1ms
delay(2);
//espera 2ms
digitalWrite(buzzer,LOW);
delay(2);
}
//espera 2ms
//espera 2ms
118/332
http://www.elegoo.com
A partir del programa mostrado arriba, es posible aprender la sintaxis de la estructura de control de la
programación.
Descripción
Los lazos while se mantendrán funcionando infinitamente hasta que la expresión entre los paréntesis () se
haga falsa. Debe haber algún cambio en la variable a probar, o el lazo jamás se detendrá. Este cambio
puede darse en tu código, como por ejemplo al incrementar una variable, o mediante una condición
externa, como la señal de un sensor.
Sintaxis
while(expresión){ // enunciado(s) } parámetros
expresión - Un enunciado (booleano) de lenguaje C que realiza una evaluación de verdadero o falso
Ejemplo
var = 0; while(var < 200){ // Ejecuta algo repetitivo 200 veces var++; }
Enunciado "for"
El enunciado "for" se utiliza para repetir un bloque de enunciados encerrados entre llaves. Un contador de
incremento se usa por lo general para monitorear los incrementos y terminar el lazo. El enunciado "for" es
útil para cualquier operación repetitiva, y se usa frecuentemente en combinación con arreglos para operar
recolección de datos desde los pines..
El encabezado del lazo "for" consta de tres partes: for (inicialización; condición; incremento)
{ //enunciado(s); } La inicialización sucede al principio y solo una vez.. Cada vez que se cumple una vuelta
del lazo se evalúa la condición; si es verdadera, se ejecuta el bloque de enunciado y el incremento, para
volver a probar la condición al continuar. Cuando la condición se hace falsa, se termina el lazo.
Ejemplo
// Baja la intensidad de un LED utilizando un pin PWM pin int PWMpin = 10; // LED en serie con resistor de
1k en pin 10 void setup()
{ // no es necesario configurar } void loop()
{ for (int i=0; i <= 255; i++)
{ analog Write(PWMpin, i);
delay(10);
Tip de programación
El loop for de lenguaje C es mucho más flexible que los de otros lenguajes de programación, incluyendo a
BASIC. Cualquiera de los tres elementos del encabezado puede ser omitido, aunque se requiere utilizar
119/332
http://www.elegoo.com
punto y coma. De igual manera, los enunciados para inicialización, condición e incremento pueden ser
cualquier enunciado válido para C con
variables no relacionadas. Estos raros tipos de enunciado "for" inusuales pueden proporcionar soluciones
a extraños problemas de programación.
119/332
http://www.elegoo.com
El propósito de este experimento es generar ocho sonidos diferentes, cada uno con duración de 0.5
segundos: empezando con Do mayor (523 Hz), Re (587 Hz), Mi (659 Hz), Fa (698 Hz), So (784 Hz), La
(880 Hz), Si (988 Hz) y terminando con
Do menor (1047 Hz).
Componentes requeridos:
1x Elegoo Uno R3 1x Timbre pasivo
3x Cables F-M (Cables DuPont Hembra a Macho)
Introducción de Componente
Timbre Pasivo:
El principio de funcionamiento del timbre pasivo es utilizar un audio generador de PWM para hacer que el
aire vibre. por tanto tiempo como la frecuencia de vibración se mantenga de forma apropiada. Por ejemplo,
si se envía un pulso de 523 Hz, se genera un Do mayor; un pulso de 587 Hz genera un Re; un pulso de
659 Hz.
120/332
http://www.elegoo.com
121/332
http://www.elegoo.com
Diagrama de cableado
122/332
http://www.elegoo.com
Código
Después de realizar el cableado, por favor abre el programa en la carpeta de código (Lección 10 Timbre
Pasivo )
y haz clic en UPLOAD para cargar el programa. Si hay algún error, consulta los detalles en la lección 2
para cargar el programa y verificar donde está el error.
Antes de poder correrlo, asegúrate de tener la librería < pitches> instalada, o reinstálala de ser necesario.
Instalada, o reinstálalas de ser necesario. De otra forma, tu código no funcionará. Para detalles del tutorial
acerca de cómo cargar los archivos de librerías, consulta la lección 1. Imagen ejemplo
123/332
http://www.elegoo.com
#include "pitches.h"
void loop() {
for (int thisNote = 0; thisNote < 8; thisNote++) {
// la voz sale por el pin 8, el tono de cada escala es de 0.5 segundos de(11, melody[thisNote],
duración);
124/332
http://www.elegoo.com
A partir del programa mostrado arriba, es posible aprender la sintaxis de la estructura de control de la
programación.
Descripción
Los lazos while se mantendrán funcionando infinitamente hasta que la expresión entre los paréntesis () se
haga falsa. Debe haber algún cambio en la variable a probar, o el lazo jamás se detendrá. Este cambio
puede darse en tu código, como por ejemplo al incrementar una variable, o mediante una condición
externa, como la señal de un sensor.
Sintaxis
while(expresión){ // enunciado(s) } parámetros
Expresión - Un enunciado (booleano) de lenguaje C que realiza una evaluación de verdadero o falso
Ejemplo
var = 0; while(var < 200){ // Ejecuta algo repetitivo 200 veces var++; }
Ejemplo
// Baja la intensidad de un LED utilizando un pin PWM pin int PWMpin = 10; //
LED en serie con resistor de 1k en pin 10 void setup()
125/332
http://www.elegoo.com
Tip de programación
El loop for de lenguaje C es mucho más flexible que los de otros lenguajes de programación, incluyendo a
BASIC. Cualquiera de los tres elementos del encabezado puede ser omitido, aunque se requiere utilizar
punto y coma. De igual manera, los enunciados para inicialización, condición e incremento pueden ser
cualquier enunciado válido para C con variables no relacionadas. Estos raros tipos de enunciado "for"
inusuales pueden proporcionar soluciones a extraños problemas de programación.
126/332
http://www.elegoo.com
Resumen
Emisor de láser
Conecta el primer pin ("-") del módulo al pin GND de la tarjeta y el segundo pin al pin de 5V en la tarjeta.
Por último, conecta el tercer pin ("S") al puerto digital 9.
Longitud de onda de transmisión: 650 nm
Componentes Requeridos:
127/332
http://www.elegoo.com
Introducción de Componente
Sensor Láser:
http://www.elegoo.com
http://www.elegoo.com
Diagrama de cableado
http://www.elegoo.com
Código
Mientras conectamos el circuito, busquemos la "Lección 11 Módulo Láser" en la carpeta de códigos del
tutorial y carguémosla. Verás como el módulo laser comienza a emitir luz
Imagen ejemplo
131/332
http://www.elegoo.com
/*Define una variable integral pos y le asigna el valor cero*/ int pos = 0;
/* void setup () La función de configuración () se llama al arrancar la tarjeta Arduino. Se usa para
inicializar variables, patrones de pines, comenzar a usar librerías y mucho más. Esta función
corre solo una vez al encender o reiniciar la tarjeta Arduino */
void setup()
{
/*Define los pines del módulo y configura el tipo de salida*/
pinMode (9,OUTPUT);
void loop()
{
}
for (pos = 255; pos >= 0; pos -= 1)
{
132/332
http://www.elegoo.com
En este experimento, aprenderemos a utilizar el módulo LED SMD RGB y el módulo LED RGB
En realidad, la función de los módulos LED SMD RGB y RGB es casi la misma. Pero podemos escoger la
formar que nos guste o necesitemos
Los módulos SMD RGB LED y RGB LED están hechos de LEDs a todo color. Al ajustar el voltaje de
entrada a los pines R, G, B, podemos ajustar la fuerza de los tres colores primarios (rojo/azul/verde) para
asípoder implementar un resultado a todo color.
Módulo RGB LED
RGB-LED con lente claro y resistor en serie de 150 ohm incorporado para operar a 5V.
133/332
http://www.elegoo.com
Componentes Requeridos:
134/332
http://www.elegoo.com
RGB LED:
135/332
http://www.emegoo.co
m
137/332
http://www.emegoo.co
m
Diagrama de cableado
138/332
http://www.emegoo.co
m
139/332
m
http://www.elegoo.co
Resultados
Después de conectar los circuitos, abrimos la carpeta de códigos de nuestra documentación para
encontrar la carpeta "Lección 12 Módulo SMD RGB y Módulo RGB”. Abre el programa, cárgalo y córrelo.
Podrás ver que el módulo cambia de color de acuerdo a lo establecido en el código. Si quieres que el
color se comporte de otra forma, puedes modificar el código.
Imagen ejemplo
139/332
http://www.elegoo.com
140/332
http://www.elegoo.com
140/332
http://www.elegoo.com
Resumen
Bloqueo de luz
Barrera de luz con ranuras El pin del medio se conecta a los +5V de suministro y el marcado con el
símbolo ‘-’ se conecta a tierra. The output signal (with a 10 K ohm pullup to +5 V) is available on the pin on
the right.
Componentes Requeridos:
140/332
http://www.elegoo.com
Introducción de componente
Sensor Opto interruptor:
Los opto interruptores se usan comúnmente en muchos juegos de arcade como por ejemplo en la
columna de dirección de los antiguos juegos de conducción de vehículos, o en los interruptores para
anotar puntos en Whack A Crock, etc. Un rayo de luz ininterrumpido encenderá el fototransistor al
conectar la tierra hacia la entrada de la tarjeta de juegos. Si el rayo de luz se interrumpe, el fototransistor
se apaga, por lo cual se desconecta la tierra de la entrada y el resistor pull-up R1 forzar la misma a
"HIGH" (nivel de tensión de 5V).
140/332
http://www.elegoo.com
Principio
El módulo foto-interruptor y el puerto 13 forman parte de un simple circuito con el LED integrado. Para
hacer una interrupción más rápida, podemos conectar el puerto digital número 13 al LED integrado y el
puerto S de la foto-interruptor al puerto 3 de la tarjeta Elegoo Uno. Cuando el interruptor sense, el LED
parpadeará de acuerdo a su señal.
144/332
http://www.elegoo.com
Esquema de conexión
146/332
http://www.elegoo.com
Diagrama de cableado
147/332
http://www.elegoo.com
Resultados
Cuando termines de hacer el cableado, abre el tutorial y ve a code > Lección 13 Módulo foto-interruptor y
corre el programa (el archivo .ino).
Coloca un pedazo de papel en la ranura del módulo y luego retíralo; verás como el LED 13 se enciende y
apaga mientras lo haces
Imagen ejemplo
148/332
http://www.elegoo.com
149/332
http://www.elegoo.com
Resumen
El LED de 5 mm tiene un cátodo común conectado a el pin ‘-‘del PCB. El pin central se conecta al ánodo
rojo y el pin ‘S’ al ánodo verde. No se incluyen resistores en serie en el circuito. Un valor adecuado de
resistencia para operación a bajo voltaje sería de 220 ohm
Componentes requeridos:
150/332
http://www.elegoo.com
Introducción de componente
150/332
http://www.elegoo.com
150/332
http://www.elegoo.com
Esquema de Conexión
Esquema
150/332
http://www.elegoo.com
Diagrama de cableado
150/332
http://www.elegoo.com
Código
Después de conectar el circuito, abrimos la carpeta "code" en el tutorial y buscamos la carpeta "Lección
14 Módulo LED de Dos Colores" para abrir el programa.
Podrás ver que el módulo cambia de color de acuerdo a lo establecido en el código. Si quieres que el
color se comporte de otra forma, puedes modificar el código.
Imagen ejemplo
150/332
http://www.elegoo.com
150/332
http://www.elegoo.com
150/332
http:/www.elegoo.com
En este experimento, aprenderemos a utilizar la resistencia variable por luz, también conocida como
módulo foto resistor.
Los resistores variables por luz son muy comunes en nuestra vida diaria. Son usados como interruptores
inteligentes para traer conveniencia a nuestra vida. Del mismo modo, en nuestra vida diaria, los usamos
en diseño electrónico. Asíque para usarlos de la mejor forma, proveemos los módulos correspondientes
para ayudarle a aplicarlos de forma conveniente y eficiente.
LDR (Light Dependent Resistor). Resistencia en la oscuridad >20M Ohm, Luz <80 Ohm. Los dos pines
exteriores se conectan al LDR. Un resistor fijo de 10 K ohm se conecta entre el pin del medio y el ‘S’;
viene incluido con el módulo. Esto simplifica la construcción de un circuito puente de medición.
Componentes Requeridos:
158/332
http:/www.elegoo.com
Introducción de componentes
Resistencia variable por luz:
La fotocelda utilizada es de un tipo denominado resistencia variable por luz, o LDR. Como sugiere el
nombre, estos componentes actúan como un resistor, excepto por el hecho que su resistencia varia en
respuesta a la cantidad de luz que incide sobre ellos.
Este tiene una resistencia de aproximadamente 50 kΩ en la oscuridad y 500 Ω en la luz brillante. Esta
variación del valor de resistencia puede convertirse en algo que usamos para medir a través de la entrada
analógica de un Arduino.
159/332
http:/www.elegoo.com
El resistor y la fotocelda funcionan como un medidor de nivel al estar juntos. Cuando la luz es muy
brillante, la resistencia de la fotocelda es muy pequeña comparada con la del resistor de valor fijo, por lo
que actúa como si el medidor estuviese marcando cerca del máximo.
Cuando la fotocelda está en la oscuridad, su resistencia se hace mayor que la del resistor fijo de 1 K ohm,
por lo que el sistema actúa como si el medidor está en un valor bajo, cercano a GND.
Carga el sketch que se muestra en la siguiente sección y cubre la fotocelda con un dedo, manteniéndola
cerca de una fuente de luz.
Esquema de conexión
157/332
http://www.elegoo.com
Diagrama de cableado
158/332
http://www.elegoo.com
Código
Cuando termines de hacer el cableado, abre el tutorial y ve a code > Lección 15 Módulo foto resistor y
corre el programa (el archivo .ino). Recuerda que en la lección 2 se explica como abrir el monitor serial y
encontrar los siguientes datos en él.
160/332
http://www.elegoo.com
En la prueba, solo leemos el valor de voltaje de la salida analógica del módulo foto resistor. En la prueba
Resulta, encontraremos que si hay iluminación se emitirá un voltaje alto equivalente al estado de
encendido. En la ausencia de luz, el voltaje será bajo, equivalente al estado de apagado. Eso puede ser
usado en la práctica
Imagen ejemplo
161/332
http://www.elegoo.com
160/332
http://www.elegoo.com
void setup ()
{
/*Define ledPin como una salida*/ pinMode(ledPin,OUTPUT);
/*Configura la velocidad de transmisión en 9600*/ Serial.begin(9600);
}
void loop()
{
/*Lee el valor sensorPin asignado a sensorValue*/ sensorValue = analogRead (sensorPin);
digitalWrite(ledPin, HIGH);
/*Sensor de retraso almacena el valorl*/ delay(sensorValue); digitalWrite(ledPin, LOW);
delay(sensorValue);
Serial.println(sensorValue,
}
Serial.println(sensorValue,
}
DEC);
161/332
Lección 16 Módulos de Micrófono Grande y Pequeño
Resumen
166/302
Componentes requeridos:
Introducción de componentes
Sensor de sonido:
El módulo de sensor de sonido proporciona una manera sencilla de detectar sonido y se usa
generalmente para detectar la intensidad del sonido. Este módulo puede utilizarse para aplicaciones de
seguridad, conmutación y monitoreo. Puede ajustarse su precisión de forma sencilla para usarlo como
convenga. Utiliza un micrófono que entrega una señal de entrada para el amplificador, detector de picos y
memoria intermedia. Cuando el sensor detecta un sonido, produce una señal de voltaje de salida la cual
es enviada a un microcontrolador que realiza cierto procesamiento de la misma.
167/302
Estos micrófonos se usan ampliamente en circuitos electrónicos para detectar sonidos menores o
vibraciones de aire para convertirlas en señales eléctricas a fin de usar dichas señales posteriormente.
Las dos patas que se muestran en la imagen de arriba se utilizan para hacer las conexiones eléctricas
con el circuito.
Un cuerpo solido de metal conductor encapsula las varias partes del micrófono. La parte de arriba está
cubierta de un material poroso adherido con pegamento. Actúa como un filtro para las partículas de polvo.
Las señales de sonido o vibraciones del aire pasan a través del material poroso y caen en el diafragma a
través del agujero que se muestra en la imagen de arriba
Esquema de Conexión
168/302
167/302
Diagrama de cableado
168/302
Código
Después de realizar el cableado, por favor abre el programa en la carpeta de código (Lección 17 Módulos
de sensor de sonido grande y pequeño) y haz clic en UPLOAD para cargar el programa.
Si hay algún error, consulta los detalles en la lección 2 para cargar el programa. El sensor de voz de alta
sensibilidad tiene dos salidas:
AO: salida analógica, es la salida en voltaje en tiempo real del micrófono.
DO: salida digital cuando la intensidad del sonido alcanza cierto umbral. Puede ser ajustada utilizando el
potenciómetro.
Por favor fíjate en que necesitas mover el tornillo con un destornillador en sentido
contrario a las manecillas del reloj hasta que el LED 2 se apague, para asíajustar el
potenciómetro de 10K usando el mismo destornillador.
Imagen ejemplo
168/302
168/302
Graficador serial abierto:
171/332
Ejemplo del graficador serial:
Cuando hablas por el micrófono o respiras cerca del mismo, puedes observar como las formas de
onda cambian.
172/332
A continuación se muestra el código usado en este experimento y su correspondiente explicación:
void setup()
{
Serial.begin(9600); speed
// Los ajustes del IDE para el Monitor Serial / Graficador (el preferido) deben ser parecidos a
estos
void loop(){
analogValue = analogRead(sensorAnalogPin);
// Lee el valor de la interfaz analógica A0 asignada a digitalValue
digitalValue=digitalRead(sensorDigitalPin);
/Lee el valor de la interfaz digital 7 asignada a digitalValue
Serial.println(analogValue);
// Envía el valor analógico a la interfaz de transmisión serial
if(digitalValue==HIGH)
{
digitalWrite(Led13,HIGH);
}
else
{
173/332
digitalWrite(Led13,LOW);
}
174/332
Lección 17 Módulo de Interruptor tipo Reed
Resumen
En este experimento, aprenderemos a utilizar el módulo interruptor tipo Reed y mini interruptor
tipo Reed
Este interruptor tipo Reed ofrece tanto una interfaz analógica como una digital El pin ‘G’ conectado a GND,
el pin ‘+’ a 5V DC, el pin ‘AO’ ofrece una saç analógica y el ‘DO’ una salida digital. Se usa un
potenciómetro como resistor pull up
Componentes Requeridos:
174/332
Component Introduction
Aunque un interruptor tipo Reed puede ser activado al colocarlo dentro de una bobina eléctrica, muchos
interruptores tipo Reed y sensores Reed se usan para medir proximidad y son activados por un magneto.
En lo que el magneto se acerca a las proximidades del sensor / interruptor tipo Reed, se activa el
dispositivo. Cuando el magneto se aleja del interruptor tipo Reed, este se desactiva. Sin embargo, la
interacción magnética involucrada en activar los contactos del interruptor tipo Reed no es obvia
necesariamente. Una manera de pensar acerca de dicha interacción es que el magneto induce polos
magnéticos en las partes metálicas del interruptor tipo Reed, lo que resulta en una atracción entre los
contactos eléctricos y cause que se active el interruptor.
Otra forma igualmente válida de pensar acerca de la interacción entre un magneto y un interruptor tipo
Reed es que el magneto induce un flujo magnético a través de los contactos eléctricos. Cuando el flujo
magnético es lo suficientemente grande, la atracción magnética entre los contactos causa que se cierre el
interruptor tipo Reed.
178/332
Los siguientes son ejemplos de las distancias típicas de activación de los sensores e interruptores tipo
Reed.
Principio
179/332
Como puede observarse, la orientación magnética y la ubicación relativa con respecto al interruptor tipo
Reed juegan un papel importante en la distancia de activación. Adicionalmente, el tamaño de las regiones
de activación (lóbulos) variará dependiendo de la fuerza del magneto y la sensibilidad del interruptor tipo
Reed. La orientación apropiada del magneto respecto al sensor Reed es una consideración importante a
tener en cuenta para cumplir los requerimientos de la aplicación en cuanto a los rangos de tolerancia para
los sistemas mecánicos, la fuerza magnética y sensibilidad del sensor Reed o interruptor tipo Reed.
180/332
Diagrama de cableado
181/332
182/332
Código
Después de realizar el cableado, por favor abre el programa en la carpeta de código "Lección 17 Módulo
de Interruptor tipo Reed y Mini Reed" y corre el compilador. Cuando el sensor detecte magnetismo, el
módulo enviará en su salida la data que refleja la fuerza de dicho magnetismo. Este valor estará entre 0 y
1023. Verás que el LED comenzará a destellar. Abre el monitor y te mostrará datos parecidos a los
siguientes:
Imagen ejemplo
179/332
http:/mwww.elegoo.com
180/332
http:/mwww.elegoo.com
void setup()
{ pinMode(ledPin,OUTPUT); Serial.begin(9600);
}
void loop()
{
sensorValue = analog Read(sensorPin); digitalWrite(ledPin, HIGH); delay(sensorValue);
digitalWrite(ledPin, LOW); delay(sensorValue); Serial.println(sensorValue, DEC);
}
int buttonpin=3;
/* define la variable digital val */ int val;
void setup()
{
/* define el LED como una salida */ pinMode(Led,OUTPUT);
/ *define el interruptor como una salida */ pinMode(buttonpin,INPUT);
}
void loop()
181/332
http:/mwww.elegoo.com
{
/* Lee el valor de la interfaz digital 3 asignada a val */ val=digitalRead(buttonpin);
/* cuando el sensor o interruptor tenga señal, el LED destellará */ if(val==HIGH)
{
digitalWrite(Led,HIGH);
}
else
{
digitalWrite(Led,LOW);
}
}
182/332
http:/mwww.elegoo.com
Resumen
En este experimento, aprenderemos como utilizar el módulo digital de temperatura y el módulo analógico
de temperatura.
Componentes Requeridos:
183/332
http:/mwww.elegoo.com
Introducción de Componente
Termistor:
184/332
http://www.elegoo.com
Los termistores NTC son resistores no lineales, que alteran su resistencia de acuerdo a la temperatura. La
resistencia del NTC disminuirá si la temperatura se incrementa. La manera en la cual la resistencia se
disminuye tiene relación con una constante conocida en la industria electrónica como beta o ß. Esta Beta
se mide en °K.
El Arduino posee varios puertos ADC que podemos usar para medir un voltaje, o mejor dicho, un ‘ADC
value’. Si se conecta el puerto analógico a Vcc, el valor máximo que se puede leer es 1023 y cuando se
conecta a tierra es 0
Ahora, si hacemos un divisor de voltaje, constituido normalmente por dos resistores en serie entre Vcc y
Ground, con el puerto analógico en el medio, la lectura dependerá de la relación entre los dos resistores:
si son iguales, la lectura será de 512, es decir, la mitad de 1023. Si uno de los resistores, digamos el de
abajo, es un NTC, las lecturas del puerto analógico variarán de acuerdo a la temperatura.
Si la temperatura baja, el valor de la resistencia se incrementa y del mismo modo la lectura del puerto
analógico.
Supongamos que tenemos un resistor de 10K en serie con un NTC al cual por ahora llamamos ‘R’. El
voltaje a medir en el medio será
Vo=R/(R+10K) * Vcc
185/332
http://www.elegoo.com
La lectura en analogPort no dan un voltaje, sino un valor ADC; pero en base a ese valor podemos aplicar
una simple regla de tres ADC value= Vo*1023/Vcc // Si por ejemplo el Vo=4Volt el ADC = 818
o
ADC value= 1023 *(Vo/Vcc)
Si ahora combinamos las dos fórmulas o aplicamos el método de substituir Vo en la fórmula para ADC
obtendremos lo siguiente:
ADC value= (R/(R+10K))*Vcc*1023/Vcc
Como dividimos y multiplicamos por Vcc, podemos despejar ese valor de la ecuación y quedamos con
ADC value= (R/(R+10k))*1023
ADC value= 1023*R/(10+R)
Si queremos el valor de resistencia para esa ecuación, queda en R=10k/(1023/ADC-1)
Si eso fue muy rápido, aqui se muestra la ecuación paso a paso Me gustan más las formulas ‘in line’
Esto se convierte en
Substracción de R
Trabaja-R en la multiplicación
186/332
http://www.elegoo.com
El ’10’ se usó en lugar de ’10k’ y como no siempre usamos 10k lo hacemos más general:
Y
como no siempre usamos 10k lo hacemos más
general:
190/332
http://www.elegoo.com
Asíque, si sabemos el valor del resistor en serie, podremos calcular el valor del NTC a partir del valor
ADC medido. Pero recuerda que esto es válido para la configuración pull up Si es pull down, el cálculo
valor ADC a resistencia es el inverso
void setup()
Serial.begin(9600);
void loop()
190/332
http://www.elegoo.com
//end program
Conocer la resistencia del NTC es interesante, pero no nos dice mucho acerca de la temperatura... o sí?
Bueno, la mayoría de los NTC tienen un valor nominal medido a 25 grados centígrados, por tanto si tienes
un NTC de 10K y mides precisamente ese valor, significa que la temperatura es de 25 grados en ese
momento. Pero eso no es mucha ayuda cuando la medida es diferente.
Como guía, podrías armar una tabla en la cual se reflejen los valores de temperatura correspondientes a
cada valor de resistencia. Esas tablas son muy precisas pero requieren mucho trabajo y espacio de
memoria.
Sin embargo, existe una fórmula llamada la ecuación de Steinhart-Hart, que sirve para obtener muy
buenos resultados aproximados al convertir valores de una NTC a temperatura. No es tan exacta la tabla
de valores de termistores (después de todo es una aproximación), pero si es bastante precisa.
.
La ecuación de Steinhart-Hart es algo así:
C
Como puedes notar, es una ecuación algo complicada que requiere de varios parámetros (A, B, C) que no
tenemos normalmente al comprar un NTC. Pero hay dos cosas que podemos hacer. Podríamos tomar 3
lecturas con patrón de temperatura calibrado y deducir los parámetros A, B y C a partir de allí.
Afortunadamente existe una simplificación de esta fórmula, llamada la ecuación del parámetro B. La
misma luce como sigue:
190/332
http://www.elegoo.com
//--------¨-------
190/332
http://www.elegoo.com
}
//-------------
190/332
http://www.elegoo.com
192/332
http://www.elegoo.com
Diagrama de cableado
193/332
http://www.elegoo.com
Código
Después de realizar el cableado, por favor abre el programa en la carpeta de código “Lección 18 Módulo
Digital de Temperatura " y corre el compilador. Cuando el sensor mide la temperatura, el módulo emite
datos que reflejan la misma. Verás que el LED comenzará a destellar. Abre el monitor y te mostrará datos
parecidos a los siguientes:
Imagen ejemplo
194/332
http://www.elegoo.com
195/332
http://www.elegoo.com
#define NOMINAL_TEMPERATURE 25
void setup()
{Serial.begin(9600);
void loop()
196/332
http://www.elegoo.com
println(
"
Ohm");
float
steinh
art;
steinhart = Resistance /
NOMINAL_RESISTANCE; // (R/Ro)
steinhart = log(steinhart); // ln(R/Ro)
steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro)
steinhart = 1.0 /
steinhart; // Invert
steinhart -=
273.15; // convert
to C
Serial.print(steinh
art);
Serial.println("
oC");
delay(1000);
197/332
http://www.elegoo.com
Resumen
Componentes Requeridos:
1x Elegoo Uno R3
1x Módulo de Sensor Hall Magnético Lineal 1x Cable USB
4x Cables F-M
198/332
http://www.elegoo.com
199/332
http://www.elegoo.com
200/332
http://www.elegoo.com
Esquema de conexión
201/332
http://www.elegoo.com
Diagrama de cableado
202/332
http://www.elegoo.com
Código
Después de conectar el circuito, abrimos la carpeta "code" en el tutorial y buscamos la carpeta "Lección
19 Módulo Hall Lineal y Hall Analógico" para abrir el programa.
Para el módulo de sensor hall, podemos seleccionar el tipo de salida: digital o analógica. En la siguiente
figura, usamos el puerto de salida DO. Para saber si el sensor hall está captando la fuerza magnética,
después de que encienda la luz, entra al monitor para ver los siguientes datos:
Imagen ejemplo
203/332
http://www.elegoo.com
pinMode(buttonpin,INPUT);
}
204/332
http://www.elegoo.com
void loop()
{
//Lee el valor de la interfaz digital 3 asignada a val val=digitalRead(buttonpin);
// cuando el sensor o interruptor tenga señal, el LED destellará if(val==HIGH)
{
digitalWrite(Led,HIGH);
}
else
{
digitalWrite(Led,LOW);
}
}
void setup()
{
pinMode(ledPin,OUTPUT); Serial.begin(9600);
}
void loop(){
sensorValue = analogRead(sensorPin); digitalWrite(ledPin, HIGH); delay(sensorValue);
digitalWrite(ledPin, LOW); delay(sensorValue); Serial.println(sensorValue, DEC);
}
205/332
http://www.elegoo.com
Resumen
Componentes Requeridos:
1 x Elegoo Uno R3 1 x cable USB
1 x Modulo sensor de llama 4 x Cables F-M
206/332
http://www.elegoo.com
Detecta llamas o una fuente de luz con una longitud de onda en el rango de 760nm-1100 nm
Distancia de detección: 20cm (4.8V) ~ 100cm (1V)
Angulo de detección de aproximadamente 60 grados, sensible al espectro de la llama. Chip comparador
LM393 hace que las lecturas del módulo sean estables.
Rango de detección ajustable. Voltaje de funcionamiento 3.3V-5V Salidas digitales y analógicas
La salida DO conmuta entre 0 y Salida analógica de voltaje AO Indicador de encendido e indicador de
conmutación salida digital
Esquema de Conexión
207/332
http://www.elegoo.com
Diagrama de cableado
208/332
http://www.elegoo.com
Código
Después de conectar el circuito, abrimos la carpeta "code" en el tutorial y buscamos la carpeta "Lección
20 Módulo de sensor de llama" para abrir el programa,
Para el módulo de sensor de llama, podemos seleccionar el tipo de salida: digital o analógica. En la
siguiente figura, usamos el puerto de salida DO. Para saber si el detector de llama está censando,
después de que encienda la luz, entra al monitor para ver los siguientes datos:
Imagen ejemplo
209/332
http://www.elegoo.com
En la siguiente figura, usamos el puerto de salida AO. Cuando el sensor detecte llama, el módulo enviará
en su salida la data que refleja la fuerza de la misma. Este valor estará entre 0 y 1023.
210/332
http://www.elegoo.com
211/332
http://www.elegoo.com
void setup()
{
pinMode(ledPin,OUTPUT); Serial.begin(9600);
}
void loop()
212/332
http://www.elegoo.com
{
sensorValue = analogRead(sensorPin); digitalWrite(ledPin, HIGH); delay(sensorValue); digitalWrite(ledPin,
LOW); delay(sensorValue); Serial.println(sensorValue, DEC);
}
213/332
http://www.elegoo.com
Resumen
Componentes requeridos:
214/332
http://www.elegoo.com
Esquema de Conexión
215/332
http://www.elegoo.com
Diagrama de cableado
216/332
http://www.elegoo.com
Código
Después de conectar los circuitos, abrimos la carpeta de códigos de nuestra documentación para
encontrar la carpeta "Lección 21 Módulo de sensor táctil metálico”. Abre y corre el compilador cargador. El
módulo táctil metálico puede tener salidas digitales o analógicas. En la siguiente figura, usamos el puerto
de salida DO. Para que veas como enciende la luz cuando el sensor se activa. Luego abre el monitor,
para ver los siguientes datos:
Imagen ejemplo
217/332
http://www.elegoo.com
En la siguiente imagen, utilizamos el puerto AO para salida. Cuando el sensor se active, el módulo
generara una salida de datos. Este valor estará entre 0 y 1023.
218/332
http://www.elegoo.com
int void
{
val;
setup()
void
{
loop()
220/332
http://www.elegoo.com
}
}
void setup()
{
pinMode(ledPin,OUTPUT); Serial.begin(9600);
}
void loop()
{
sensorValue = analogRead(sensorPin); digitalWrite(ledPin, HIGH); delay(sensorValue); digitalWrite(ledPin,
LOW); delay(sensorValue); Serial.println(sensorValue, DEC);
}
220/332
http://www.elegoo.com
Resumen
LED claro de 5mm para operación directa a 5V. El color del LED cambia en un ciclo
automático.
con una secuencia de siete colores Los 5V de la fuente de poder se conectan con el pin ‘S’ y la tierra con
el pin del centro.
Componentes Requeridos:
221/332
http://www.elegoo.com
Este módulo utiliza LEDs redondos de 5mm y alto brillo con las siguientes características:
Esquema de conexión
222/332
http://www.elegoo.com
Diagrama de cableado
223/332
http://www.elegoo.com
Código
Después de conectar el circuito, abrimos la carpeta "code" en el tutorial y buscamos la carpeta "Lección
22 Módulo de LED Flash de Siete Colores" para abrir el programa. Podrás ver nuestro fenomenal y
colorido LED
Imagen ejemplo
224/332
http://www.elegoo.com
void setup()
{
// inicializar el pin digital como una salida.
// El pin 13 se conecta a un LED en la mayoría de las tarjetas Arduino: pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH);
225/332
http://www.elegoo.com
Resumen
Funciona tal como una palanca de mando en un juego de consola. Puedes controlar las dimensiones x, y,
z con este módulo. Pueden ser considerado una combinación de potenciómetros con un botón. Las
dimensiones x, y son señales analógicas y la dimensión z es una entrada digital. Por tanto los puertos x, y
van conectados con los pines analógicos del Shield de sensores y el puerto z con el pin digital.
Una palanca de mando de 2 ejes con 2x potenciómetros de 10K ohm y un botón pulsador. Las
descripciones de los pines están impresas en el PCB Con el módulo viene una leva de operación incluida.
Componentes Requeridos:
226/332
http://www.elegoo.com
Muchos robots necesitan utilizar palancas de mando Este módulo constituye una solución económica para
esos casos. Con solo conectarte a dos entradas analógicas, el robot está listo para que lo operes en los
ejes x, y. También posee un interruptor que se conecta a un pin digital. Este módulo de palanca de mando
puede conectarse de manera sencilla al Shields IO de Arduino. Se usa para un Arduino con sus cables
respectivos
Especificaciones
El módulo tiene 5 pines: Vcc, Ground, X, Y, Key. Es probable que tu etiqueta diga algo distinto,
dependiendo de dónde la compraste. La palanca de mando es analógica y provee lecturas más precisas
que otras simples palancas direccionales que utilizan otro tipo de botones o interruptores mecánicos.
Adicionalmente, puedes presionar la palanca de mando hacia abajo (quizás algo fuerte) para activar un
pulsador ‘press to select.
Para leer los datos de los pines X/Y tenemos que usar entradas analógicas del Arduino y para los botones
necesitamos entradas digitales. El pin Key se conecta a tierra cuando la palanca de mando se presiona y
queda flotando si no. Para obtener lecturas estables de el pin Key / Select, se necesita conectarlo a Vcc
por medio de un resistor pull up. Se pueden utilizar los resistores incorporados en los pines digitales del
Arduino para tal fin. Para un tutorial de como activar los resistores pull up desde los pines de Arduino,
configurados como entradas
227/332
http://www.elegoo.com
Esquema de Conexión
228/332
http://www.elegoo.com
Diagrama de cableado
230/332
http://www.elegoo.com
Código
Las palancas de mando son básicamente potenciómetros, por lo que retornan valores analógicos. Cuando
la palanca de mando está en reposo o en una posición neutral, debería retornar un valor de 512, con
valores en el rango entre 0 a 1023. Además; SW (eje Z) es una entrada digital, conectada a un puerto
digital, y habilita el resistor pull up. Valores del SW: 1 significa no presionado, 0 significa presionado
Después de conectar el circuito, abrimos la carpeta "code" en el tutorial y buscamos la carpeta "Lección
23 Módulo de palanca de mando" para abrir el programa y ver los siguientes datos.
Imagen ejemplo
230/332
http://www.elegoo.com
231/332
http://www.elegoo.com
El sensor infrarrojo de evasión de obstáculos está diseñado para ser utilizado en un robot con ruedas con
distancia de evasión ajustable. Este sensor de luz ambiental adaptable y de alta precisión cuenta con un
elemento transmisor y un receptor. Durante su operación normal, el elemento transmisor emite una luz
infrarroja de cierta frecuencia a su alrededor que rebota en los obstáculos y es captada por el elemento
receptor. Cuando eso sucede, se enciende un indicador luminoso. La distancia de detección puede ser
ajustada a través de un potenciómetro, en un rango de entre 2 a 40 cm y con un voltaje de operación de
3.3-5V. El módulo es capaz de trabajar con una amplia variedad de microcontroladores, tales como
Arduino, controlador BS2, etc. para aplicarse en robots con la finalidad de censar los cambios en sus
alrededores.
232/332
http://www.elegoo.com
Componentes Requeridos:
Introducción de Componente
Esquema de conexión
233/332
http://www.elegoo.com
Diagrama de cableado
234/332
http://www.elegoo.com
Código
Después de conectar el circuito, abrimos la carpeta "code" en el tutorial y buscamos la carpeta "Lección
24 Módulo de seguidor de línea" abrimos el programa, corremos el compilador y esperamos que se
encienda el indicador L Es normal que dicho LED este iluminado cuando no hay nada obstruyéndolo. El
módulo se comporta de acuerdo con los principios de la óptica infrarroja. Cuando el LED ilumina un objeto
negro, el receptor recibe una señal de rebote de baja intensidad, comparable a la que recibe cuando no
tiene obstáculos en frente. Por el contrario, al tener un objeto blanco en frente, sucede el fenómeno
contrario, ya que se recibe una señal de alta intensidad que la electrónica interpreta como un obstáculo
y la luz del módulo se apaga.
Como se puede apreciar la distancia de detección se ajusta con un potenciómetro; si este se gira en el
sentido de las agujas del reloj la distancia se hace más pequeña y si se gira al contrario, se hace más
grande.
Imagen ejemplo
http://www.elegoo.com
Resumen
Non logic chip oscillation frequency regulation 38KHz detection circuit. Este módulo para evasión de
obstáculos infrarrojo de 38KHZ es mucho mejor que la tradicional detección de obstáculos fotoeléctrica y
posee una salida sencilla de contactos normalmente abiertos o cerrados.
Componentes Requeridos:
237/332
http://www.elegoo.com
Introducción de Componente
Módulo de Evasión de obstáculos
Especificaciones
Voltaje de alimentación: 3.3V a 5V
Corriente de trabajo: ≥20mA
Temperatura de operación: - 10 ℃ - +50 ℃
Distancia de detección: 2-40cm
Interfaz IO: interfaces tipo 4-wire (- / + / S /EN)
Señal de salida: Nivel TTL (si hay obstáculos nivel bajo, si no los hay nivel alto)
Ajuste: Resistencia de ajuste multi vueltas Ángulo efectivo: 35 °Tamaño: 28mm × 23mm Peso: 9g
240/332
http://www.elegoo.com
Hay dos potenciómetros en el módulo, uno para controlar la frecuencia de operación (centrado en 38 kHz)
y el otro para controlar la intensidad. El detector se diseñó para 38 kHz y el oscilador que forma parte del
circuito se basa en un temporizador 555. Se puede jugar con los ajustes para mejor rango, pero la
sugerencia es dejarlo como viene de fábrica ya que el rango es bastante pequeño.
241/332
http://www.elegoo.com
El sensor infrarrojo de evasión de obstáculos está diseñado para ser utilizado en un robot con ruedas con
distancia de evasión ajustable. Este sensor de luz ambiental adaptable y de alta precisión cuenta con un
elemento transmisor y un receptor. Durante su operación normal, el elemento transmisor emite una luz
infrarroja de cierta frecuencia a su alrededor infrared receiver tube que rebota en los
obstáculos y es captada por el elemento receptor. Cuando eso sucede, se enciende un indicador
luminoso. La distancia de detección puede ser ajustada a través de un potenciómetro, en un rango de
entre 2 a 40 cm y con un voltaje de operación de 3.3-5V.
Esquema de conexión
242/332
http://www.elegoo.com
243/332
http://www.elegoo.com
244/332
http://www.elegoo.com
Diagrama de cableado
245/332
http://www.elegoo.com
Código
Después de conectar el circuito, abrimos la carpeta "code" en el tutorial y buscamos la carpeta "Lección
25 Módulo de Sensor Evasión de Obstáculos” para abrir el programa. Intenta tapar el frente del módulo
con la mano y verás lo que sucede.
.
Imagen ejemplo
Aquíutilizamos el módulo sensor para evasión de obstáculos y una interfaz digital, junto al LED integrado
número 13 y un pequeño circuito para construir una lámpara de advertencia para evasión. Cuando el
sensor detecta una señal el LED se ilumina y de lo contrario se apaga.
Es necesario ajustar los potenciómetros de 5K y 10K antes de usar el módulo de evasión de obstáculos.
Por lo general, el mejor funcionamiento se obtiene girando el potenciómetro de 5K 90 grados en el sentido
de las agujas del reloj y el de 10K entre 10 y 30 grados. Te recomendamos armarte de paciencia para
hacerlo funcionar.
246/332
http://www.elegoo.com
247/332
http://www.elegoo.com
Resumen
En este experimento, aprenderemos a utilizar el Módulo de Encoder Rotativo.
Encoder rotativo
Este encoder rotativo es ideal para hacer un potenciómetro electrónico, etc. Las descripciones de los
pines están impresas en el PCB
Componentes Requeridos:
248/332
http://www.elegoo.com
Introducción de Componente
Encoder Rotativo
249/332
http://www.elegoo.com
Principio
Encoder Incremental
Los encoder incrementales entregan una señal de onda cuadrada de dos fases, con una diferencia de 90
grados en sí, llamadas comúnmente canales A y B. Uno de los dos canales tiene información
concerniente a la velocidad y al mismo tiempo, se comparan ambos canales de forma de obtener la
información de la dirección de rotación del elemento. También poseen una señal especial denominada Z o
canal Z, que da la referencia de la posición cero del encoder. Generalmente es otra onda cuadrada que
coincide con la línea central del canal A.
En sentido de las agujas del reloj en contra de las agujas del reloj
La precisión de los encoders incrementales depende de dos factores, los cuales son:
errores de indexado de tramas, excentricidad de disco, excentricidad de rodamientos, más otras fuentes
diversas de errores e imprecisiones ópticas. La resolución del encoder se mide en grados y su precisión
depende del pulso del mismo. Los grados eléctricos de seguimiento comprenden 360 grados de rotación
del eje de una máquina determinada. Para saber el equivalente eléctrico del ángulo mecánico de 360
grados, se puede utilizar la siguiente fórmula: Electrical 360 = Machine 360 °/ n °pulses /revolution
El error de indexado es el ángulo eléctrico de la unidad representada por la diferencia de dos pulsos
máximos. Cualquier encoder tiene errores causados por los factores arriba mencionados. El encoder Eltra
tiene un error máximo de ± 25 grados eléctricos (en cualquier condición), equivalente al valor de Offset
nominal ± 7%, con una diferencia de fase de 90 °(eléctricos) de los dos canales de desviación máxima ±
250/332
http://www.elegoo.com
Esquema de Conexión
250/332
http://www.elegoo.com
Diagrama de cableado
251/332
http://www.elegoo.com
Código
Cuando termines de hacer el cableado, abre el tutorial y ve a code > Lección 26 Módulo de Encoder
Rotativos y corre el programa (el archivo .ino). Luego ve al monitor serial y mueve el encoder; verás los
siguientes datos:
Imagen ejemplo
252/332
http://www.elegoo.com
253/332
http://www.elegoo.com
Serial.begin(9600);
}
void loop()
{//Lee cuando se presiona el botón y coloca el valor del contador en 0 cuando se reinicia if
(!digitalRead(SW) && count != 0)
{
count = 0; Serial.print("count:"); Serial.println(count);
}
}
//The interrupt handlers void ClockChanged()
{
lastCLK = clkValue;
//CLK y DT inconsistente + 1, de otro modo - 1 conteo += (clkValue != dtValue ? 1 : -1);
Serial.print("count:"); Serial.println(count);
}
}
255/332
http://www.elegoo.com
Un relé es un tipo de componente que responde a un cambio de una variable de entrada basándose en
parámetros específicos del circuito de entrada. El circuito de salida conmuta tan pronto como se cumplen
las condiciones. Nuestra empresa produce módulos de relé en un rango que vas desde los 28V hasta los
240V, tanto en AC como en DC. Se pueden usar en combinación con un MCU para crear un interruptor de
control de tiempo. Los relés se usan en todas partes, ya sea para sistemas de alarmas, juguetes o en
equipos de construcción. Constituyen dispositivos de control eléctrico con dos subsistemas: el circuito de
entrada y el de salida, que interactúan para lograr la salida deseada.
Módulo de relé
Un módulo de relé adecuado para la conexión directa a una tarjeta Arduino. Este módulo requiere una
fuente de poder de 5V. La señal de entrada de control recibe el nombre de ‘S’. El relé posee un contacto
que cambia su estado. Puede conmutar cargas resistivas de hasta 10 A 250 VAC y hasta 10 A 30 V
máximo.
256/332
http://www.elegoo.com
Componentes Requeridos:
Introducción de componente
Relé:
Un relé es un interruptor operado eléctricamente. Muchos relés utilizan electro magnetos para operar
mecánicamente un interruptor, pero también se usan otros principios de operación, como los relés de
estado sólido. Los relés se usan cuando es necesario controlar un circuito mediante una señal de baja
potencia (siempre conservando un aislamiento eléctrico completo entre los circuitos de control y potencia),
o cuando se desean controlar varios circuitos con una sola señal. Los primeros relés se usaron en los
circuitos de los telégrafos de larga distancia como amplificadores: Ellos repetían la señal proveniente de
un circuito y la re-transmitían en el otro. Se usaban ampliamente en los Intercambios telefónicos y las
computadoras de primera generación para realizar operaciones lógicas.
Un tipo de relé con la capacidad de manejar grandes potencias destinadas a controlar motores eléctricos
y otras cargas es el contactor. Los relés de estado sólido controlan circuitos de potencia sin tener partes
móviles, a través de dispositivos semiconductores que realizan la conmutación. Relés con características
de operación calibradas y con múltiples bobinas se utilizan para protección de circuitos eléctricos de
sobrecargas o fallas; en los sistemas de potencia modernos se les denomina relés de protección.
Abajo se muestra el esquema de como operar un relé con Arduino (descarga de arduino.cc)
257/332
http://www.elegoo.com
258/332
http://www.elegoo.com
Esquema de Conexión
260/332
http://www.elegoo.com
Diagrama de cableado
260/332
http://www.elegoo.com
Código
Después de conectar los circuitos, abrimos la carpeta de códigos de nuestra documentación para
encontrar la carpeta "Lección 27 1 Módulo de Relé de 1 Canal" . Abre y corre el compilador cargador y
podrás escuchar el sonido del relé al mover sus contactos.
Imagen ejemplo
260/332
http://www.elegoo.com
pinMode(relayPin, OUTPUT);
}
void loop()
{
// Enciende el relé (con el nivel de voltaje HIGH) digitalWrite(relayPin, HIGH);
// espera por un segundo retardo (2000);
// Apaga el relé bajando el voltaje a LOW digitalWrite(relayPin, LOW);
// espera por un segundo retardo (2000);
}
http://www.elegoo.com
En este experimento, aprenderemos a cablear y utilizar un display LCD alfanumérico. El display posee
iluminación posterior mediante LEDs y puede mostrar dos filas de hasta 16 caracteres cada una. Puedes
ver los rectángulos para cada carácter en el display y los pixeles que componen cada carácter El displays
muestra texto de color blanco sobre un fondo azul.
En esta lección, correremos el programa ejemplo de Arduino para le librería LCD, pero en la siguiente,
haremos que nuestro display muestre la temperatura, utilizando sensores.
Introducción de
Componente LCD1602
Introducción a los pines delLCD1602:
Esquema de conexión
263/332
http://www.elegoo.com
264/332
http://www.elegoo.com
Diagrama de cableado
266/332
http://www.elegoo.com
267/332
http://www.elegoo.com
El Display LCD necesita seis pines Arduino, todos configurados como salidas digitales También necesita
conexiones de 5V y GND.
Como ves, es necesario hacer algunas conexiones. Si alineas el displays desde el tope del protoboard,
podrás identificar fácilmente los pines sin estar contando tanto, especialmente si el protoboard es de los
que vienen numerados con la línea 1 en la parte superior.
El display te podría llegar también separado del cabezal de conexión. Si ese es tu caso, sigue las
instrucciones en la siguiente sección
Código:
Después de realizar el cableado, por favor abre el programa en la carpeta de código - Lección 28 Display
LCD y haz clic en UPLOAD para cargar el programa. Si hay algún error, consulta los detalles en la
lección 2 para cargar el programa.
Antes de poder correrlo, asegúrate de tener la librería < Liquid Crystal > instalada, o reinstálala de ser
necesario. De otra forma, tu código no funcionará.
Para detalles del tutorial acerca de cómo cargar los archivos de librerías, consulta la lección 1.
Cuando cargues el código en tu tarjeta Arduino deberías ver el mensaje 'hello, world' seguido de un
número que lleva una cuenta a partir de cero.
Lo primero en lo que debes fijarte en el sketch es la línea: #include<LiquidCrystal.h>
Esta le dice al Arduino que queremos usar la librería Liquid Crystal
Después encontraremos la línea que tenemos que modificar. En ella se define que pines del Arduino se
deben conectar a que partes del display.
LiquidCrystal LCD(7, 8, 9, 10, 11,12);
Después de cargar este código, asegúrate que la iluminación posterior esté encendida y ajusta el
potenciómetro hasta que puedas ver claramente en mensaje de texto en el display.
En la función 'setup' tenemos dos comandos: lcd.begin(16, 2);
lcd.print("Hello,World!");
El primero le dice a la librería Liquid Crystal cuantas columnas y filas tiene el display. La segunda línea
muestra el mensaje que vemos en la primera línea de la pantalla.
En la función 'loop' tenemos también dos comandos: lcd.setCursor(0, 1);
lcd.print(millis()/1000);
267/332
http://www.elegoo.com
El primero configura la posición del cursor (donde aparecerá el próximo texto) a columna
http://www.elegoo.com
// Inicializa la librería con los números de pin de la interfaz LiquidCrystal LCD(7, 8, 9, 10, 11, 12);
void setup() {
// Configura el número de columnas y filas del LCD: lcd.begin(16, 2);
// Imprime un mensaje al LCD. lcd.print("hello, world!");
}
void loop() {
// Coloca el cursor en la columna 0, línea 1
// (nota: línea 1 es la segunda fila, debido a que el conteo empieza con 0): lcd.setCursor(0, 1);
// Imprime el número de segundos desde el reinicio: lcd.print(millis() / 1000);
}
272/332
http://www.elegoo.com
Los sensores ultrasónicos son excelentes para todas clases de proyectos que necesiten tomar
mediciones de distancia, como por ejemplos los de evasión de obstáculos.
El sensor HC-SR04 es económico y fácil de usar, ya que estaremos utilizando una librería
específicamente diseñada para el este sensor.
Componentes Requeridos:
1 x Elegoo Uno R3
Introducción de Componente
Sensor Ultrasónico
El módulo de sensor ultrasónico HC-SR04 provee una función de medición sin contacto en un rango entre
2cm-400cm , con una exactitud de 3mm. Incluye transmisores ultrasónicos, receptor y circuito de control.
El principio de funcionamiento básico:
Usando un disparador IO para una señal mínima de alto nivel de 10us,
El módulo envía automáticamente ocho pulsos de 40 kHz y detecta si hay algún pulso de rebote. Si se
recibe una señal de vuelta, el tiempo de duración de la señal de nivel alto puede servir como indicativo de
la distancia
Distancia de prueba = (Tiempo de nivel alto × velocidad del sonido (340m/s) /2
El diagrama de tiempo se muestra abajo. Solo se necesita un pequeño pulso de 10us para que la señal
del disparador comience a medir. Luego el módulo enviará un ciclo de ocho pulsos de 40 kHz y escuchará
el eco. El eco le indica la distancia respecto al obstáculo. Puedes calcular un rango a través de la señal
Formula: us
el intervalo de tiempo que transcurre entre el envío de la señal y la recepción del eco.
/ 58 = centímetros / 148 =inch; o: el rango = tiempo de nivel alto * velocidad (340M/S) / 2; sugerimos
utilizar ciclos de medición mayores a 60ms, para prevenir que la señal del disparador se confunda con el
eco.
273/332
http://www.elegoo.com
Esquema de conexión
274/332
http://www.elegoo.com
Diagrama de cableado
275/332
http://www.elegoo.com
Código
Si utilizamos una librería diseñada para estos sensores haremos que nuestro código sea corto y simple.
Incluimos la librería al principio de nuestro código y luego usamos comandos sencillos para controlar los
sensores.
Después de realizar el cableado, por favor abre el programa en la carpeta de código (Lección 29 Módulo
de Sensor Ultrasónico) y haz clic en UPLOAD para cargar el programa. Si hay algún error, consulta los
detalles en la lección 2 para cargar el programa.
Antes de poder correrlo, asegúrate de tener la librería < NewPing> instalada, o reinstálala de ser
necesario. De otra forma, tu código no funcionará.
Para detalles del tutorial acerca de cómo cargar los archivos de librerías, consulta la lección 1.
Imagen ejemplo
274/332
http://www.elegoo.com
274/332
http://www.elegoo.com
276/332
http://www.elegoo.com
277/332
http://www.elegoo.com
#include <NewPing.h>
// El pin del Arduino a conectar con el pin del disparador del sensor ultrasónico. #define TRIGGER_PIN 12
// El pin del Arduino a conectar con el pin del eco del sensor ultrasónico. #define ECHO_PIN 11
/*Distancia máxima (en centímetros) a la que queremos probar. La distancia máxima nominal del sensor
es de 400-500cm.*/ #define MAX_DISTANCE 200
// NewPing configuración de pines y distancia máxima.
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
// Abre el monitor serial a 115200 baudios para ver los resultados de las pruebas. Serial.begin(9600);
}
void loop() {
// Espera 500ms entre pruebas (aproximadamente 2 pings/sec). el retraso más corto entre pruebas
debería ser de 29ms delay(500);
// envía un ping, obtener el tiempo de prueba en microsegundos (uS). unsigned int uS = sonar.ping();
Serial.print("Ping: ");
// Convierte el tiempo de prueba en distancia e imprime el resultado (0 = fuera del rango de prueba, no se
recibe eco) Serial.print(uS / US_ROUNDTRIP_CM);
Serial.println("cm");
}
278/332
http://www.elegoo.com
279/332
http://www.elegoo.com
En esta lección, aprenderemos a usar el Módulo GY-521 (MPU-6050), uno de los mejores IMU (Inertia
Measurement Unit, Unidad de Medición de Inercia) compatibles con Arduino.
Sensores IMU como el GY-521(MPU-6050) se utilizan en robot auto equilibrado, UAVs, teléfonos
inteligentes, etc.
Componentes requeridos:
1 x Elegoo Uno R3
1 x Módulo GY-521 4 x Cables F-M
Introducción de Componente
Sensor GY-521
El sensor InvenSense GY-521 contiene un tanto un acelerómetro como un giroscopio MEMS en el mismo
chip. Es muy preciso, ya que contiene hardware de conversión analógica - digital de 16-bits para cada
canal. Por tanto, captura los canales x, y, z al mismo tiempo El sensor utiliza la interfaz I2C-bus para
comunicarse con el Arduino.
Este módulo GY-521 no es caro, especialmente si tomas en cuenta el hecho de que combina un
acelerómetro y un giroscopio.
280/332
http://www.elegoo.com
Los sensores IMU constituyen se utilizan en la actualidad en prácticamente toda clase de dispositivos
electrónicos. Vienen en los teléfonos inteligentes, equipos vestibles, controladores de juegos, etc. Nos
ayudan a entender cómo se siente un objeto unido al sensor en el espacio tridimensional. Tiene valores
usualmente en ángulos, que nos ayudan a determinar la posición de los objetos. Se usan en los teléfonos
inteligentes por ejemplo, para determinar su orientación. Dispositivos tales como el Nike fuel band o el fit
bit, utilizan sensores IMU para registrar movimiento.
Cómo trabajan?
Un sensor IMU está formado de una o más partes. En orden de prioridad, son: acelerómetro, giroscopio,
magnetómetro y altímetro. El sensor GY-521 consta de 6 DOF (Degrees of Freedom / grados de libertad)
es decir, un sensor IMU de seis ejes, lo que significa que entrega seis valores de salida. Tres valores
corresponden al acelerómetro y tres al giroscopio. El GY-521 es un sensor basado en la tecnología
MEMS (Micro Electro Mechanical Systems / Sistemas Micro Electromecánicos) Tanto el acelerómetro
como el giroscopio están incluidos en el mismo chip. Utiliza el protocolo I2C (Inter Integrated Circuit) para
comunicarse.
Cómo trabaja un acelerómetro?
279/332
http://www.elegoo.com
Un acelerómetro trabaja de acuerdo con el principio del efecto piezo eléctrico. Imagina una caja en forma
de cubo, con una pequeña pelota dentro de ella, como se ve en la imagen de arriba. Las paredes de esta
caja están hechas de cristales piezo eléctricos. Debido a la gravedad, cuando la caja se mueve, la pelota
se ve forzada a moverse de acuerdo a la inclinación de la misma. Las paredes con las que choca la bola
crean pequeñas corrientes piezo eléctricas. Hay en total tres pares opuestos de paredes en un cubo.
Cada par corresponde a un eje en el espacio 3D: X, Y, Z. Dependiendo de la corriente producida por las
paredes piezo eléctricas, podemos determinar la dirección de inclinación y la magnitud de la misma. Para
más información, lee aquí.
280/332
http://www.elegoo.com
Los giroscopios trabajan de acuerdo con el principio de la aceleración Coriolis. Imagina que hay una
estructura en forma de horquilla, que se mueve constantemente hacia adelante y hacia atrás. Se
mantiene en su lugar utilizando cristales piezo eléctricos. Cuando tratas de inclinar la estructura, los
cristales reciben una fuerza en la misma dirección de la inclinación. Esto sucede debido a la inercia de la
horquilla en movimiento. Los cristales producirán una corriente en consenso con el efecto piezo eléctrico,
la cual será amplificada. Los valores obtenidos son luego refinados en el microcontrolador.
281/332
http://www.elegoo.com
282/332
http://www.elegoo.com
http://www.elegoo.com
283/332
http://www.elegoo.com
Diagrama de cableado
http://www.elegoo.com
Ahora, necesitamos configurar las líneas I2C. Para tal fin, conecta el pin etiquetado SDA en el GY-521 al
pin analógico 4 del Arduino (SDA). y el pin etiquetado SCL en el GY-521 al pin analógico 5 del Arduino
(SCL). De esta forma habrás terminado de cablear el Arduino GY-521(GY-521).
Imagen ejemplo
286/332
http://www.elegoo.com
287/332
http://www.elegoo.com
288/332
http://www.elegoo.com
AcZ=Wire.read()<<8|Wire.read();
// 0x41 (TEMP_OUT_H) & 0x42 (TEMP_OUT_L)
Tmp=Wire.read()<<8|Wire.read();
// 0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
GyX=Wire.read()<<8|Wire.read();
// 0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L)
GyY=Wire.read()<<8|Wire.read();
// 0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L)
GyZ=Wire.read()<<8|Wire.read(); Serial.print("AcX = "); Serial.print(AcX); Serial.print(" | AcY = ");
Serial.print(AcY); Serial.print(" | AcZ = "); Serial.print(AcZ);
//equation for temperature in degrees C from datasheet Serial.print(" | Tmp = ");
Serial.print(Tmp/340.00+36.53); Serial.print(" | GyX = "); Serial.print(GyX);
289/332
http://www.elegoo.com
290/332
http://www.elegoo.com
Componentes Requeridos:
1 x Elegoo Uno R3
1 x Sensor de movimiento PIR HC-SR501
3 x cables F-M (Cables DuPont Hembra a Macho)
Introducción de Componente
Sensor PIR:
Los sensores PIR son más complicados de explicar que los demás sensores de este tutorial (tales como
fotoceldas, FSRs e interruptores de inclinación) porque hay muchas variables que afectan las salidas y
entradas de los sensores.
Los sensores PIR tienen dos ranuras. Cada una de ellas está fabricada de un material especial que es
sensible a la IR. Los sensores pueden ver hasta cierta distancia (lo que constituye la sensibilidad del
sensor). Cuando el sensor está inactivo, ambas ranuras detectan la misma cantidad de IR, que sería la
propia del ambiente donde está (emitida por las paredes o captada en espacios abiertos) Cuando un
cuerpo caliente como el de una persona o un animal pasa cerca del sensor, será captado por la primera
mitad del sensor PIR, lo que causa un diferencial positivo entre las dos mitades. Cuando el cuerpo
caliente se aleja del área, pasa lo contrario y se genera un diferencial negativo. Estos cambios de pulso
son detectados por el módulo.
289/332
http://www.elegoo.com
http://www.elegoo.com
Ajuste del tiempo Configura por cuanto tiempo permanece alta la salida después de detect
de retardo movimiento.... Ese tiempo puede estar entre 5 segundos a 5 minutos.
Pin de salida Low cuando no se detecta movimiento. High cuando se detecta. High es 3.3V
292/332
http://www.elegoo.com
El SR501 detectará cambios infrarrojos y si los interpreta como movimiento, entregará una salida baja. Lo
que se interprete o no como movimiento depende en buena medida a los ajustes y configuraciones que
realice el usuario.
El dispositivo requiere casi un minuto para inicializar. Durante este periodo puede generar falsas medidas
Se debe tomar esto en cuenta para el circuito y la lógica del controlador.
293/332
http://www.elegoo.com
El ajuste de tiempo de rechazo determina por cuanto tiempo la salida del sensor PIR permanecerá alta
después de haber detectado movimiento. Ese tiempo puede estar entre 5 segundos a 5 minutos.
294/332
http://www.elegoo.com
Por ejemplo:
Imagina que estás operando en modo de disparador sencillo y tu tiempo de retraso es de 5 segundos.
Cuando el PIR detecte movimiento, mantendrá la salida activada por 5 segundos.
Después de ese tiempo, el PIR mantendrá la salida apagada por 3 segundos.
295/332
http://www.elegoo.com
En ese periodo de tres segundos, el PIR no detectará movimiento. Después de ese tiempo el PIR volverá
a censar y si detecta movimiento se activará una vez más por 5 segundos.
Este jumper te permite seleccionar entre un disparador sencillo y uno con repetición. Dependiendo de
este jumper, variará el tiempo de retraso configurado.
Disparador repetible – Cada movimiento detectado reinicia el tiempo de retraso. Eso significa que el
tiempo de retraso comienza con el último movimiento detectado.
295/332
http://www.elegoo.com
Ejemplo Uno
En este primer ejemplo, el tiempo de retraso se configura en tres segundos y el modo de disparador en
sencillo. Como puedes verlo en la ilustración de abajo, no siempre se detecta movimiento. De hecho,
existe un periodo de cerca de seis segundos en los que no se puede detectar ningún movimiento.
Puedes hacer clic en la imagen para agrandarla sin problemas
Ejemplo dos
Como lo mencione anteriormente, podrías anular ese periodo de bloqueo de 3 segundos con un código
creativo. Pero ten en cuenta que algunos equipos electrónicos no trabajan bien si se les enciende y apaga
rápidamente. Los tres segundos sirven para darles descanso a esta clase se equipos.
295/332
http://www.elegoo.com
295/332
http://www.elegoo.com
http://www.elegoo.com
Diagrama de cableado
http://www.elegoo.com
http://www.elegoo.com
Conectar sensores PIR a microcontroladores es bastante sencillo. El PIR actúa como una salida digital
asíque solo necesitarás escuchar al pin alto (significa detectado) y al bajo (significa no detectado). Si
quieres que el disparador se repita asegúrate de colocar el jumper en la posición H! Energiza el PIR con
5V y tierra Luego conecta la salida a un pin digital, en este caso, pin 2
Código
Después de realizar el cableado, por favor abre el programa en la carpeta de código Lección 31 Sensor
PIR HC-SR501 y haz clic en UPLOAD para cargar el programa. Si hay algún error, consulta los detalles
en la lección 2 para cargar el programa.
Este sketch solo enciende el LED de tu Arduino conectado al pin 13 cuando se detecta movimiento.
Recuerda tomar precauciones en cuanto al minuto de inicialización que la aplicación que desarrolles.
Imagen ejemplo
302/332
http://www.elegoo.com
303/332
http://www.elegoo.com
void setup() {
// Define al LED como una salida pinMode(ledPin, OUTPUT);
// Declara al sensor como una entrada pinMode(inputPin, INPUT); Serial.begin(9600);
}
void loop(){
// read input value
val = digitalRead(inputPin); if (val == HIGH) {
// Verifica si la entrada está HIGH
// Enciende el LED digitalWrite(ledPin, HIGH); if (pirState == LOW) {
// Lo hemos encendido Serial.println("Motion detected!");
// Solo imprimir el cambio de estado, no el estado como tal pirState = HIGH;
}
}
else
{
}
}
}
304/332
http://www.elegoo.com
Resumen
En este experimento, aprenderemos a utilizar el Módulo de Sensor de Nivel de Agua Este módulo puede
percibir la profundidad del agua y como componente central tiene un circuito amplificador hecho en base a
transistores. Cuando entra en contacto con el agua, el circuito presenta
un cambio en su resistencia, directamente proporcional a la profundidad del agua. En base a esto, se
convierte la lectura de profundidad
a una señal eléctrica que sirve para indicarle al UNO R3 el nivel a través de la función ADC
Componentes requeridos:
1x Elegoo Uno R3
1x Módulo Sensor de Nivel de Agua
3 x cables F-M (Cables DuPont Hembra a Macho)
Introducción de Componente
Sensor de Agua
Un bloque sensor de agua diseñado para detectar agua de lluvia, nivel de un recipiente o tanque, fugas
de agua, etc. Está compuesto principalmente de tres partes: Un conector electrónico, un resistor de 1MΩ
y varias líneas alambres conductores desnudos.
Este sensor funciona por medio de una serie de trazos expuestos conectados a tierra Entrelazados con
los trazos aterrados, se encuentran otros trazos que sirven para hacer la medición
se encuentran otros trazos que sirven para hacer la medición.
Los trazos de medición tienen un resistor pull-up de 1 MΩ. Ese resistor mantiene el valor del trazo en High
hasta que una gota de agua pone en corto el trazo de medición con uno de tierra Aunque no lo creas, este
circuito utiliza los pines digitales I/O de tu UNO R3
305/332
http://www.elegoo.com
si lo quieres como interruptor o entre los analógicos si quieres conocer el nivel propiamente dicho.
El equipo deduce el nivel a través de una serie de cables paralelos expuestos en diferentes puntos para
dar una idea de la altura en la cual censan el agua, siendo capaces de estimar el nivel de la misma en un
recipiente.
1. Voltaje de trabajo: 5V
2. Corriente de trabajo: <20ma
3. Interfaz: analógica
4. Ancho de detección: 40mm×16mm
5. Temperatura de trabajo: 10℃~30℃ 6、Señal de salida de voltaje: 0~4.2V
Esquema de Conexión
306/332
http://www.elegoo.com
307/332
http://www.elegoo.com
Diagrama de cableado
308/332
Tips de cableado: La fuente de poder (+) va conectada con el 5V del UNO R3 y el electrodo de tierra
(-) va conectado a GND. La señal de salida (S) se conecta a los puertos (A0-A5) de entrada analógicas al
UNO R3. Se debe definir el uso de los mismos en el código.
Código
Después de cablear, por favor abre el programa en la carpeta de código Lección 32 Módulo Sensor
de Nivel de Agua y haz clic en UPLOAD para cargar el programa. Si hay algún error, consulta los detalles
en la lección 2 para cargar el programa.
Imagen ejemplo
309/332
http://www.elegoo.com
310/332
http://www.elegoo.com
Haz clic en el Monitor Serial para encenderlo Los básico a saber del monitor serial se enseña en la lección
1
312/332
http://www.elegoo.com
int adc_id = 0;
int HistoryValue = 0; char printBuffer[128];
void setup()
{
Serial.begin(9600);
}
void loop()
{
int value = analogRead(adc_id); // get adc value
313/332
http://www.elegoo.com
Resumen
En esta lección, aprenderás a utilizar en módulo RTC, el DS1307 es un chip de reloj de tiempo real de
bajo consumo. La dirección y datos se transfieren de manera serial a través de I2C o a través de una
conexión directa con tres cables de datos El DS1307 provee información del tiempo en segundos, minutos,
horas, días, fecha, mes y año. La operación de llevar el tiempo continúa mientras se cuente con un voltaje
de alimentación de respaldo.
Componentes requeridos:
1x Elegoo Uno R3
1x Módulo RTC DS1307
4x Cables F-M (Cables DuPont Hembra a Macho)
Introducción de componente
Esquema de Conexión
316/332
http://www.elegoo.com
317/332
http://www.elegoo.com
Diagrama de cableado
317/332
http://www.elegoo.com
Código
Después de realizar el cableado, por favor abre el programa en la carpeta de código Lección 33 Módulo
de Reloj en Tiempo Real y haz clic en UPLOAD para cargar el programa. Si hay algún error, consulta los
detalles en la lección 2 para cargar el programa. Antes de poder correrlo, asegúrate de tener la librería <
DS1307> instalada, o reinstálala de ser necesario. De otra forma, tu código no funcionará. Para detalles
del tutorial acerca de cómo cargar los archivos de librerías, consulta la lección 1.
Imagen ejemplo
319/332
http://www.elegoo.com
320/332
http://www.elegoo.com
321/332
http://www.elegoo.com
void setup()
{
Serial.begin(9600);
Serial.println("Initialize DS3231");
// Inicialización del DS3231 clock.begin();
void loop()
{
dt = clock.getDateTime();
// For leading zero look to DS3231_dateformat example Serial.print("Raw data: ");
Serial.print(dt.year); Serial.print("-"); Serial.print(dt.month); Serial.print("-"); Serial.print(dt.day);
Serial.print(" "); Serial.print(dt.hour); Serial.print(":"); Serial.print(dt.minute); Serial.print(":");
Serial.print(dt.second); Serial.println("");
delay(1000);
}
323/332
http://www.elegoo.com
Resumen
En este proyecto, veremos como integrar un teclado con en UNO R3 para que pueda leer las teclas
presionadas por un usuario.
Los teclados están en todo tipo de dispositivos tales como teléfonos celulares, máquinas de fax, hornos
microondas, cerraduras de puertas, etc. Prácticamente están en todas partes. Muchísimos equipos
electrónicos los utilizan para recibir las entradas de parte de los usuarios.
Asíque saber conectar un teclado a un microcontrolador como UNO R3 es muy valioso a fin de construir
muchos diferentes tipos de productos comerciales.
Cuando ya tengas listo el proyecto y todo esté conectado y programado, podrás presionar una tecla y ver
el resultado en el monitor serial de tu computadora. Cada vez que presiones una tecla, podrá verse en el
Monitor Serial. Por razones de simplicidad, comenzamos solo mostrando la tecla presionada en la
computadora.
Para este proyecto, utilizamos un teclado estilo matriz. Este es un teclado que sigue un esquema de
codificación que permite tener muchos menos pines de salida que teclas. Por ejemplo, el teclado matriz
que usamos tiene 16 teclas (0-9, A-D,*, #), y solo 8 pines de salida. Con un teclado lineal, se necesitarían
17 pines de salida (uno por tecla más la tierra) para que funcionara. Esto es bueno porque al tener menos
pines debemos hacer menos conexiones. Por tanto, el teclado de matriz es más eficiente que el lineal ya
que tiene menos cableado.
Componentes requeridos:
1 x Elegoo Uno R3
323/332
http://www.elegoo.com
Esquema de Conexión
323/332
http://www.elegoo.com
325/332
http://www.elegoo.com
Diagrama de cableado
325/332
http://www.elegoo.com
Código
Después de realizar el cableado, por favor abre el programa en la carpeta de código Lección 34 Módulo
de Teclado y haz clic en UPLOAD para cargar el programa. Si hay algún error, consulta los detalles en la
Lección 2 para cargar el programa. Antes de poder correrlo, asegúrate de tener la librería < Keypad>
instalada, o reinstálala de ser necesario. De otra forma, tu código no funcionará.
Para detalles del tutorial acerca de cómo cargar los archivos de librerías, consulta la lección 1.
326/332
http://www.elegoo.com
Imagen ejemplo
http://www.elegoo.com
Con este código, una vez que presiones una tecla en el teclado, se mostrar{a en el monitor serial de
Arduino, después que el código sea compilado y cargado en la tarjeta UNO R3.
Haz clic en el botón del Monitor Serial para encenderlo. En la lección 2 se explica en detalle cómo
utilizarlo.
http://www.elegoo.com
#include <Keypad.h>
//four rows
const byte ROWS = 4;
//four columns const byte COLS = 4;
//Define los símbolos de los botones del teclado char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
//Conecta de acuerdo con el pinout del teclado byte rowPins[ROWS] = {9, 8, 7, 6};
//Conecta de acuerdo con el pinout del teclado byte colPins[COLS] = {5, 4, 3, 2};
//Inicialización de una instancia de clase NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); void
setup(){
Serial.begin(9600);
}
void loop(){
char customKey = customKeypad.getKey();
if (customKey){ Serial.println(customKey);
http://www.elegoo.com
Conclusión
Como creadores y editores de este tutorial, hemos intentado de la mejor forma posible enseñarte a
resolver problemas para que poco a poco puedas manejar diferentes temas por tu propia cuenta. Si
quieres modificar el kit o cualquiera de los proyectos, no tengas dudas y libera tu imaginación e
innovación.
Si tienes dudas o consultas al momento de construir tus proyectos, puedes contactarnos pero por favor
danos un poco de tiempo para responder tus correos ;) Mientras esperas por nuestra respuesta, puedes
investigar en la web; existen muchas comunidades donde podrías encontrar soluciones. Será una
experiencia enriquecedora para ti si logras resolver problemas por ti mismo y constituye del mismo modo
una forma genial para aprender. Si igualmente deseas hablar con servicio al cliente, envíanos un mensaje
a [email protected] o [email protected] si eres de Europa o Japón. ;) Gracias por tu apoyo y
esperamos que te diviertas mucho con el kit. ;)