Con la aparición de las primera placas de Arduino, allá por el año 2005, los proyectos de electrónica a nivel de usuario se empezaron a popularizar cada vez más en Internet. Y es que,gracias a ser una plataforma de código abierto, se empezó a formar una comunidad cada vez más numerosa, que realizaba constantes contribuciones, tanto de código como de ideas.
Arduino ayuda a acercar la electrónica a mucha gente, independientemente del nivel de conocimientos sobre la materia. Y esa es una de las grandes ventajas que aporta, la facilidad para realizar proyectos muy interesantes, sin necesidad de ser un experto electrónico.
Como ya hicimos en nuestra entrada sobre proyectos con la Raspberry Pi (https://bugeados.com/raspberry/7-proyectos-con-raspberry-pi/), en esta entrada os queremos mostrar 5 proyectos arduino básicos que se pueden hacer con casi cualquier kit de iniciación a la electrónica.
1 – Luz nocturna automática
El objetivo de este proyecto es crear una luz que se encienda automáticamente cuando se empiece a hacer de noche o la iluminación sea baja.
Os dejamos un vídeo de nuestro canal de Youtube, donde os enseñamos a hacer este proyecto, paso a paso con una tira led. Os animamos a que os subscribáis, ya que iremos subiendo nuevo contenido cada mes, y multitud de proyectos con Arduino.
Para conseguir esto, se puede utilizar una fotorresistencia o LDR. Se trata de un tipo de resistencia que varía su valor (medido en Ohmios Ω) en función de la cantidad de luz que incide sobre ella.
De este modo, podremos medir la cantidad de luz, y mandar a nuestro Arduino los valores de luz registrados en la habitación a través de una de sus entradas analógicas. Cuando el valor sea inferior a X (siendo X el valor que hayamos programado en nuestro código), Arduino se encargará de encender una bombilla LED que conectaremos en una de sus salidas digitales.
Componentes:
- Arduino
- Protoboard
- LDR
- 1 resistencia de 10K Ohmios o similar
- 1 resistencia de 220 Ohmios o similar
- LED del color deseado o una tira LED
- Cables
Circuito:
Enlace a simulador:
https://www.tinkercad.com/things/1uAmk0jvkuD-luz-nocturna
Código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | int led = 3; int sensorPin = A3; int ldr = 0; void setup() { Serial.begin(9600); pinMode(led, OUTPUT); } void loop() { ldr = analogRead(sensorPin); Serial.println(ldr); if (ldr < 200) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } } |
2 – Usando pantalla LCD
Uno de los elementos que más nos gusta a la hora de montar nuestros proyectos, son las pantallas LCD. Estas nos permiten mostrar cualquier información y son un gran complemento para casi cualquier proyecto que podamos imaginar.
En este ejemplo, usaremos la pantalla LCD para mostrar un texto y un contador de segundos.
Componentes:
- Arduino
- Placa de pruebas o protoboard
- Potenciómetro para regular el contraste de la pantalla LCD
- Pantalla LCD
- 1 resistencia de 220 Ohmios o similar
- Cables
Circuito:
Enlace a simulador:
https://www.tinkercad.com/things/9XMxfZ4d0fO
Código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); lcd.print("Hola mundo!!"); } void loop() { lcd.setCursor(0, 1); lcd.print(millis() / 1000); } |
3 – Luces por detección de movimiento
La domótica es una de esas cosas que se ha puesto muy de moda en los últimos años, y no es de extrañar ya que nos facilita y ayuda en nuestro hogar, haciendo aquellas tareas repetitivas que tanto nos pueden llegar a incomodar.
Una de las primeras cosas que se nos vienen a la cabeza cuando hablamos de domótica, son las luces. Y de eso mismo trata el siguiente proyecto, de la automatización de luces (al igual que el primer proyecto de la lista, pero de un modo diferente).
La idea de este proyecto es encender las luces, cuando un sensor de infrarrojos detecte que hay alguien cerca. Y dejarla encendida durante X segundos, en nuestro ejemplo usamos 10 segundos, pero podéis ajustar el valor a vuestro gusto.
Para este ejemplo, usaremos un sensor de infrarrojos y un LED.
Componentes:
- Arduino
- Placa de pruebas o protoboard
- Sensor de ultrasónico HC-SR04
- LED del color deseado
- 1 resistencia de 220 Ohmios o similar
- Cables
Circuito:
Enlace a simulador:
https://www.tinkercad.com/things/haQifIrNFHg
Código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | int inches = 0; int cm = 0; int led = 4; long readUltrasonicDistance(int triggerPin, int echoPin) { pinMode(triggerPin, OUTPUT); digitalWrite(triggerPin, LOW); delayMicroseconds(2); digitalWrite(triggerPin, HIGH); delayMicroseconds(10); digitalWrite(triggerPin, LOW); pinMode(echoPin, INPUT); return pulseIn(echoPin, HIGH); } void setup() { Serial.begin(9600); pinMode(led, OUTPUT); } void loop() { cm = 0.01723 * readUltrasonicDistance(7, 7); if(cm < 300){ digitalWrite(led, HIGH); delay(10000); // Luz encendida durante 10 segundos. Ajustar el valor segun el tiempo deseado } else { digitalWrite(led, LOW); } delay(100); } |
4 – Mini piano
Uno de los proyectos básicos más divertidos y satisfactorios de hacer, es el del mini piano.
Usando un pequeño altavoz piezoeléctrico, unos pulsadores y nuestro Arduino, podemos montar ya un pequeño piano.
Componentes:
- Arduino
- Placa de pruebas o protoboard
- 1 altavoz piezoeléctrico
- 3 pulsadores o botones
- 3 resistencias de 100k Ohmios o similar
- 1 resistencia de 100 Ohmios o similar
- Cables
Circuito:
Enlace a simulador:
https://www.tinkercad.com/things/f9eJcZ4AU8r
Código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | int pos = 0; void setup() { pinMode(A0, INPUT); pinMode(8, OUTPUT); pinMode(A1, INPUT); pinMode(A2, INPUT); } void loop() { if (digitalRead(A0) == HIGH) { tone(8, 440, 100); // play tone 57 (A4 = 440 Hz) } if (digitalRead(A1) == HIGH) { tone(8, 494, 100); // play tone 59 (B4 = 494 Hz) } if (digitalRead(A2) == HIGH) { tone(8, 523, 100); // play tone 60 (C5 = 523 Hz) } delay(10); } |
En este ejemplo, solo usaremos 3 notas (una nota a 440Hz, otra a 494Hz y una última a 523Hz).
Sin embargo, lo interesante de este proyecto es que lo podemos mejorar tanto como queramos. Usando un mejor altavoz y añadiendo tantas notas musicales como queramos, podemos conseguir un piano bastante completo y divertido.
5 – Sensor temperatura con pantalla
Una forma muy interesante y práctica de usar una pantalla LCD consiste en usarla para mostrar la temperatura del lugar en el que nos encontramos.
Usando casi el mismo circuito del proyecto 2, tendremos un medidor de temperatura con pantalla. Solo necesitaremos incluirle un sensor de temperatura.
Uno de los sensores de temperatura más fáciles de usar es el TMP36, el cual se compone de solo 3 pines (Vcc, GND y el pin que nos devuelve el valor que está registrando el sensor en cada momento).
Componentes:
- Arduino
- Placa de pruebas o protoboard
- Resistencia de 220 Ohmios o similar
- Potenciómetro para ajustar el contraste de la pantalla LCD
- Pantalla LCD
- Sensor temperatura TMP36 o similar
- Cables
Circuito:
Enlace a simulador:
https://www.tinkercad.com/things/emEt9N9Hjdf
Código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int sensorPin = A1; void setup() { lcd.begin(16, 2); lcd.print("Temperatura:"); } void loop() { lcd.setCursor(0, 1); int leerSensor = analogRead(sensorPin); float vol = leerSensor * 5.0; vol /= 1024.0; int temperatura = (vol - 0.5) * 100; lcd.print(temperatura); lcd.print(" C"); } |
Ahí lo tenéis, 5 proyectos arduino básicos, que cualquier persona puede realizar. Esperemos que os hayan gustado los proyectos aquí propuestos. Si os han gustado o tenéis cualquier duda, podéis dejarnos un comentario al respecto.
Hola, estoy aprendiendo arduino por mi cuenta, y tome un ejemplo de aquí, el #3: Luces por detección de movimiento.
Pero me marca un error. He estado investigando y al parecer entendí que no está declarada una variable, ya intenté declararla y aun así no funciona, al contrario me marca más errores.
Este es el error que me dice. Espero puedan ayudarme
In function ‘void loop()’:
34:10: error: ‘lt’ was not declared in this scope
exit status 1
Hola Sol Ruiz,
Se trata de un error de conversión del carácter <
En lugar de escribir el carácter, se ha puesto el código < ;
Prueba a cambiar la siguiente línea:
Por esta otra:
Disculpa la confusión, y muchas gracias por comentar. Esperemos eso resuelva tu problema.
¡Un saludo!
NOTA: Hemos corregido los enlaces a los proyectos de Tinkercad ya que habían expirado. Ahora podéis volver a entrar a ellos y probar la simulación.
Disculpad las molestias.
hola, he estado intentando uno de los experimentos, (el 1) y al escribir el código (copiarlo) me ha dado error. Este es:
«it» was not declared in this scope
if (ldr < 200)
^~~
sketch_jan21a:13:12: error: ‘lt’ was not declared in this scope
if (ldr < 200)
^~
exit status 1
‘lt’ was not declared in this scope
podrían ayudarme? gracias
Hola Minato,
Modifica < ; por <.
Se trata de un error al copiar el código en el blog, que convierte el símbolo < en <.
Disculpa la confusión.
Gracias por pasarte y dejarnos un comentario.
Un saludo.