|
| |||
|
Has entrado como invitado. ( Entra | regístrate ) |
Control de un Belén mediante Arduino Páginas: < ... 6 7 8 9 10 11 12 > | ||
Buenos días.
Ante los problemas que se han planteado en el uso del código Dfplayerinfarr.ino he intentado encontrar las causas que lo motivaban, llegando a la conclusión de que los reproductores DFPlayer Mini tienen diferentes comportamientos dependiendo del fabricante o la fecha de fabricación.
El código subido en su día se basaba en el feedback del reproductor a Arduino ante la solicitud de información, como, si ya estaba iniciado, el valor del volumen o el tipo de ecualización. Algún reproductor que tengo en otros proyectos con arduinos Micro y Nano si envía esa respuesta, pero los últimos que he adquirido no responden.
He llegado a preguntar al fabricante y no ha podido aclararme este asunto.
Así pues he preparado un código alternativo al original que no precisa de ese feedback y mantiene el resto de las características de impresión por monitor (grado de volumen y tipo de ecualización) basándose en la orden que se envía.
El resto del código se mantiene (indicación de recepción de señales no codificadas y tiempo entre pulsaciones).
Espero que os funcione y lamento los problemas que la versión anterior haya podido causar.
Un saludo.
Buenas tardes
He estado realizando pruebas con el nuevo código
dfplayerInfrarr sin feedback.ino
y, después de seguir dándome problemas, con el mensaje de
"botón no valido"
, al final descubrí que, el problema no viene ni del receptor de infrarrojos, ni del reproductor DFplayer. Todo el problema se debe a la tarjeta de pruebas
"Breadboard"
la cual, no se el motivo, debe de tener las conexiones de inserción tocadas y realiza microcortes de conexión que son los que provocan los errores del programa. He probado con otra tarjeta de pruebas que tengo mas pequeña instalada en el control del belén y funciona sin problema alguno, tanto con este ultimo programa como con en el anterior que habías mandado hace dias.
Por mi parte creo que todo funciona perfectamente y, ahora, me toca lo peor. Intentar insertar este nuevo código en el programa que uso para el control de luces y sonidos de mi belén.
Querido Laucsada, espero no darte mucho mas la paliza, pero apelo a tu amabilidad para que me saques del embrollo en el que, seguro, voy a meterme. Ya iré comentando por aqui como va el tema.
Un saludo
Buenas tardes.
No sabes cuanto me alegra que se hayan resuelto los problemas. Has de saber que gracias a estas cosas aprendo, por lo que los errores nunca me han parecido una desgracia, sino una oportunidad.
Respecto a integrar este código en el que usas para el control del resto del belén, no tengas ningún miedo, que es muy sencillo. Simplemente has de poner cada cosa de este código en la misma zona del otro.
Así pues, lo que va delante de setup, lo pondremos delante de setup, lo que está en setup, en setup, lo de loop en loop y el subcódigo translateIR() fuera de setup y loop (es lo mismo que vaya delante o detrás de loop).
Ya sabes que puedes consultar cualquier duda.
Un saludo.
Buenas tardes.
Estimado Laucsada, he incorporado todos los códigos del programa
dfplayerInfrarr sin feedback.ino
, tal como me has indicado en el post de hace 4 días al fichero que uso para controlar el belén, que es uno de los que tan amablemente habías puesto a disposición de todos hace un par de años, con ligeras modificaciones, el cual funciona correctamente hasta que lo arranco con las nuevas incorporaciones del código.
Por mas que lo intento, no hay manera de controlar el receptor ir a traves del mando a distancia. En base a las pruebas y modificaciones que he hecho, te comento lo siguiente
- En el nuevo código, si desconecto el
receptor IR
(quitando el cable 5V del mismo para que no le llegue alimentación), funciona a la perfección.
- Si conecto, el
receptor IR
a los 5V, entonces empieza a darme el error de
"botón no valido"
y, si bien el receptor, recibe
las pulsaciones que le envio por el mando a distancia, hace caso omiso de las ordenes que le mando. Incluso, en los cambios de la musica segun la fase del dia, empieza a reproducirse y al segundo, o antes, deja de sonar
- En el programa
dfplayerInfrarr sin feedback.ino,
observo que, la linea 1120 emite la orden que hace que, el
fichero de musica 0001
, se reproduzca en bucle, mientras que en el programa que uso con el belén, los sonidos que quiero reproducir son seis, correspondientes a las fases de
dia, atardecer, anochecer, noche, alba y amanecer
. Tal vez ahí esté el problema de todo, pero no soy capaz de dar con ello
- Solo he modificado en el fichero que uso con el belén,
la linea 1120
, para evitar que reproduzca en bucle el fichero de
musica 0001
Abusando de tu amabilidad, me permito enviarte el fichero que quiero usar este año para controlar mi belén, para que, cuando tengas un poco de tiempo, le puedas echar una mirada para ver que puedo estar haciendo mal, por supuesto que si crees que es demasiado trabajo, entenderé perfectamente que no hagas nada.
Dándote las gracias anticipadas, un saludo
Buenas tardes.
No te prometo nada, porque ando un poco mal de tiempo y al terminar la semana salgo de viaje, pero le voy a echar un vistazo y te digo lo que vea.
Un saludo.
Buenas tardes de nuevo.
Tras un primer vistazo al código, observo que estás mezclando la reproducción del sistema antiguo (reproduce automáticamente una banda sonora en cada fase) con lo que preparamos para ser controlado por IR.
En primer lugar es preciso tener claro qué es lo que queremos conseguir con el sonido y el mando a distancia.
Así se me ocurren unas preguntas:
Con estas respuestas (seguro que me dejo algo en el tintero) se puede empezar a revisar y corregir el código.
Un saludo.
Buenas tardes Laucsada.
Respondo a tus pregunta:
- Solo estoy usando el canal de los sonidos de ambiente
- Con el mando solo quiero controlar los sonidos de ambiente
- Quiero poder controlar los sonidos de ambiente, en todo momento
- Quiero detener/Iniciar la reproducción y controlar el volumen y ecualizador
Como puedes ver, casi nada que digamos. Vuelvo a darte las gracias por todas las molestias que tomas para ayudarme y, entiendo perfectamente, que lo que pido no es nada facil y, no quisiera, robarte parte de tu precioso tiempo para resolver este tema que nos ocupa. Entiendo que, tienes cosas mas importantes que hacer que meterte en este "mi berenjenal"
Un saludo
Trabajando con arduino, todo se puede hacer, solo hay que encontrar la forma.
Ya vamos centrándonos en lo que queremos. Siempre es interesante quitar del código todo lo que no se vaya a usar, pues nos come recursos. Así sería interesante eliminar la parte de la música, que aunque no es mucho, hace trabajar para nada a la placa. También veo que el reproductor lo inicias con el código actualizado, y después lo chequeas con el código viejo, hay variables repetidas con diferente nombre, etc. Hay que depurar todo eso y dejar el código lo más limpio posible.
Lo que planteas cambia totalmente la forma de trabajar.
Ahora viene la segunda tanda de preguntas, que surgen de tus respuestas:
Con el tema del volumen y ecualizador no hay más problema que el que indicas de "botón no válido" que va a impedir el correcto uso del mando. ¿Has cambiado la instalación del hardware o no la has tocado y es la misma que usabas antes? Porque antes el sensor solamente leía las pulsaciones del mando.
Ya me dirás algo.
Un saludo.
Por lo que me estas diciendo, entiendo que, lo que propongo, obliga a realizar unos cambios tan grandes que escapan totalmente de mis conocimientos de Arduino y, por supuesto de su programación. Como te indique en el post anterior, no es mi intención hacerte perder tu valioso tiempo en realizar un trabajo, altruista, por un tema que yo, en mi ignorancia, pensaba que era coser y cantar. Por eso entendería que me mandases a paseo y te olvidases del tema.
No obstante a la segunda tanda de preguntas, te indico lo siguiente:
- Al detener la reproducción del sonido, deseo que solo pare el sonido y que, las fases de iluminación, sigan ejecutándose pero sin el sonido del fondo
- Quiero que se reproduzca el sonido correspondiente a la fase activa en ese momento, aunque se hubiese detenido en otra fase anterior.
Y en cuanto al Hardware, es la misma que usaba antes, cuando hice las pruebas de funcionamiento del mando, el cual, con el segundo programa que mandaste, funcionaba correctamente. Actualmente, el receptor IR lo instalé con el Hardware que uso en el Belén , el cual, sin el receptor IR, funciona sin problema.
Yo ya me imaginaba que, el problema está en la programacion del sketch, pero como te dije en el primer parrafo, ahi estoy perdido
Gracias por tu interés. Un saludo
Perdona, pero se me olvidó comentar que, dada la amplitud de todos los cambios que hay que realizar, me conformaría con que se pudiera, solamente, subir/bajar el volumen con el mando a distancia.
Bueno, lo que quieres no es tan complicado, pero hay que atacarlo desde otro punto de vista.
Lo primero es solucionar el problema de la recepción de las señales. Me dices que el hardware es el mismo, pero entiendo que has cambiado las conexiones. Al principio también te daba esos errores y era por culpa de las conexiones de la placa de pruebas que usabas.
Respecto al código para el sonido. El tema del volumen ya lo tenemos (cuendo se reciban bien las señales debería funcionar sin problema). Y el tema de las paradas y arranques del sonido, yo lo veo de esta forma (todo esto es teoría, que habría que probar):
El sistema arranca normalmente, iniciándose el proceso de fases con sus bandas sonoras respectivas.
Una variable (que sería modificada por pulsaciones en el mando) estaría permitiendo que la reproducción se realizara.
Al pulsar el botón correspondiente del mando, la reproducción se detendría y cambiaría esa variable para impedir la reproducción de ninguno de los archivos de sonido. El ciclo de fases continuaría sin que le afectara ese cambio.
Al pulsar el botón elegido para reiniciar la reproducción, cambiaría esa variable para permitir la reproducción y al llegar en el ciclo de loop correspondiente al funcionamiento del reproductor, iniciaría la reproducción del archivo asignado a la fase en que se encuentre el sistema. Eso si, habría un desfase durante la fase de reinicio, pues fase y sonido no empezarían a la vez, porque la reproducción empezaría desde el principio del archivo y la fase de iluminación podría estar al principio, en el medio o a punto de terminar. Al pasar a la siguiente fase, se sincronizarían.
No sé si me he sabido explicar.
Repito, que esto es solo teoría. Al llevarlo a la práctica es cuando suelen salir los problemas.
De momento hay que solucionar la recepción de las señales y limpiar el código y creo que con eso sería suficiente para que se pueda bajar y subir el volumen.
Un saludo
Buenos días:
De momento, voy a ponerme por lo mas "fácil", limpiar el código, y después ya iremos viendo como se desarrolla lo demás.
Saludos
Buenos días Joaquin
En primer lugar, perdona por no haber contestado antes, pero estaba de viaje y no recibí el aviso.
En efecto conecto las GND de todas las fuentes de alimentación de corriente continua, de 5V, 12V, etc.
Un saludo.
Las tiras leds W2812B las he utilizado únicamente para remarcar algún efecto. Como se controlan led a led puedes hacer barridos a lo largo de su longitud. Por ejemplo, que el horizonte del atardecer vaya cambiando a tonos más rojizos de un lado al otro. Pero como digo, siempre complementando a las otras tiras led.
Como no he dedicado más tiempo a esas tiras, realmente desconozco cual sería su potencial para realizar el ciclo completo de día / noche. Me ha echado atrás la codificación de los cambios de tonalidad, pero seguramente dedicándole un tiempo se pueda lograr unos buenos efectos.
Las tiras led RGBW solamente te dan, en toda su longitud, un cierto color en cada momento del ciclo. Usando dos circuitos (horizonte y superior) puedes jugar con alguna diferencia en las formaciones cromáticas de ambos, remarcando lo que más te pueda interesar.
Yo actualmente utilizo RGBW.
Un saludo.
Voy a adjuntar unas imágenes que serán más fáciles de entender que si te lo describo.
En esta primera está marcada la zona donde se encuentran los puentes a soldar. Van de A0 a A5
Aquí no hay ningún puente soldado, por lo que la dirección para arduino es 0x40
En la siguiente imagen está soldado el puente A0
En este caso la dirección es 0x41
Y así sucesivamente.
Si tienes cualquier otra duda, planteala que intentaré resolverla.
Un saludo.
Buenas tardes, Joaquin.
No logro saber en que forma ver la foto que dices. ¿Por qué no la subes directamente al mensaje?
Un saludo.
Buenas noches joakinmr:
La foto no deja ver bien las conexiones que tienes, pero , sino me equivoco, no tienes conectada la placa de Arduino al alimentador de 12V, yo, al menos, no veo ningún cable conectado al conector del Arduino. Si pudieras poner otra/as fotos, tal vez se verían mejor como lo tienes conectado todo.
Hola.
Me parece que estás alimentando la placa arduino con 5v a través de los pines Vin y GND
Prueba alimentándola con 12v por el conector jack de 5.5 mm (no olvides DESCONECTAR los cables de Vin y GND)
La placa arduino soporta perfectamente los 12v. Hasta este año siempre la he alimentado así y no he tenido ningún problema.
Del resto, parece que está todo bien. No sé qué función tienen los elementos que están en la foto bajo la protoboard, así que no puedo opinar sobre esa parte.
Ya comentarás.
Un saludo.
Páginas: < ... 6 7 8 9 10 11 12 > |
Buscar en este foro Versión Impresa Enviar un mail con el enlace a este tema |