Buenos días,
Soy nuevo en el Foro y en Arduino, y se que empiezo con un proyecto grande, para no tener ni idea al respecto. Es por eso que os pido ayuda tanto en Hardware como en Software.
Estoy creando una Casita de madera (de 40 x 50cm) con 25 ventanas, para hacerle el calendario de adviento a mi mujer. Quiero que cada ventana se abra automaticamente cada dia a una hora concreta (me da igual la hora). Yo tenia mas pensado que se abriera 1 ventana cada 24h desde el momento que se conecta la corriente (por ejemplo).
Necesito entonces:
26 Servomotor Micro servomotor SG90 9g (una "ventana" es una puerta doble),
25 Leds
Placa base Arduino
Temporizador/Reloj
Cableado (que tipo)
Según Chat GPT me recomienda lo siguiente:
Componente
Cantidad
Descripción
Precio estimado
Arduino Mega 2560 Rev3
1
Arduino Mega 2560 Rev3 (A000067)
PCA9685 16‑Channel PWM Driver
2
PCA9685 16‑Channel PWM Module (I²C)
DS3231 RTC I²C Module
1
DS3231 RTC + AT24C32 I²C Module
~6 €–14 €
Fuente 5 V 30 A Switch‑mode PSU
1
Fuente alimentación conmutada 5 V 30 A
Resistencias (220 Ω)
40
Resistencia 220 Ω ¼ W
~0,10 € c/u
Cables Dupont, jumpers, tornillería
—
Surtido de cables y tornillos
Opcional: 74HC595 o MOSFET drivers
—
Shift registers o transistores
Me podriais aconsejar si es correcto todo este material?
Y como crear el codigo?
Un Mega para luego usar un PCA9685 y/o opciones de 74HC595?
Lo único mal que veo es eso. Un NANO sobra. NOTA: Luego me doy cuenta de los leds y hago una salvedad.
Conectas el NANO usando A4 y A5 para las conexiones I2C al PCA9685 que controlará los servos.
Fuente de alimentación de 30A me parece exagerada.
Ojo con este comentario. Si vas a accionar una ventana y no todas a la vez no hace falta una fuente exagerada. Con Algo que entregue 5A es suficiente. Ahora si tendrás varios servos, entonces aumentar la corriente de la fuente.
Necesitas encender todos los leds, para qué?
En el caso que digas que si entonces el MEGA si es necesario.
Tmb podrias hacerlo con 74HC595 y el NANO antes indicado.
Un NANO tiene 13 mas 4 pines disponibles, con eso no llegas a 25 leds.
El RTC lo entiendo, pero yo no hago nada que no tome la hora de internet y por eso no uso mas NANOs. Requiere algo que se conecte a la WIFI de tu hogar. Un ESP8266 o ESP32 por ejemplo.
Para el código hay un par de cuestiones a tener en cuenta.
No puede ser bloqueante: qué significa esto? Qué si accionas un servo, no puedes esperar a que llegue a su posición. De modo que la elección de librerías debe considerar esto.
Creo que cuando usas el PCA9685 simplemente le dice a cada servo donde debe ubicarse, asi que no tendrías problema.
Pero no puedes usar delay() en tu código, salvo en el setup. Ahí no importa.
Mil gracias por vuestras respuestas y comentarios!
A ver si aclaro y me aclaro:
Las puertas permanecen Cerradas, Hasta el dia que toca abrirse.
Una vez abiertas. PREFIRIA que se quedaran abiertas hasta el 25, pero si es mejor que se cierren, se pueden cerrar sin problema.
Los Leds se encienden cuando se abre la puerta, y se apagan a las 24h seguro.
Lo de tomar la WIFI de casa, para la hora, en vez de temporizador, no se si me termina de gustar la idea. Prefiero que sea independiente (tengo un wifi de m....)
Lo he dicho cien veces, pero será la primera para tu persona.
Internet tiene cientos de cursos desde lo mas simple a lo mas complejo.
Lo que debes hacer es establecer lo que quieres que haga tu programa.
Piensa en tareas.
Tarea 1
Tarea 2
.....
Tarea N
Luego como se hace la tarea 1? De este modo. Lo buscas, miras Youtube, o miras en este foro y encuentras 10 formas. Las que usen delay siempre las eliminas, pero siempre toma nota de la idea. La idea puede usarse? Si o no.
Entonces aprendes a usar millis()!!
En Documentación hay muy buenos tutoriales de cómo usar millis()
Tarea 2 digamos que fuera el manejo de los servos.
Ya @ENGRAL te dió un empujoncito.
Tarea 3... cómo hacer que las cosas se activen a tal hora y desactiven a tal otra? Hay librerías pero también puedes hacerlo de una manera simple que ya en su momento te diremos.
Y así con todo.
Empieza por las tareas mas simples y luego las mas complicadas.
Resuélvelas individualmente y luego te daremos una mano para juntarlas.
Tomate tu tiempo.
Las tareas complejas se subdividen en tareas mas simples que sabrás con el tiempo resolver. Y asi se construye la masa complicada.