tag:blogger.com,1999:blog-4987982810491287033.post5806377530462967043..comments2022-12-10T04:32:29.026-08:00Comments on Arduino Guay - Proyectos Arduino, Electrónica y Micros: Órgano de luces con Arduino (III) J.Daniel Herrerahttp://www.blogger.com/profile/11842252849068454078noreply@blogger.comBlogger30125tag:blogger.com,1999:blog-4987982810491287033.post-78946451024519919162017-11-15T20:35:36.538-08:002017-11-15T20:35:36.538-08:00Para los que tengan error de copilación, probablem...Para los que tengan error de copilación, probablemente sea la versión del IDE de arduino que estan utlizando, hay dos soluciones una es modificar la libreria o utilizar la versión 1.5.3 del IDE de arduino.<br />Leonardo Gabriel Carrillo Contrerashttps://www.blogger.com/profile/09147614359846678012noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-46209674451984974652017-06-20T11:00:42.699-07:002017-06-20T11:00:42.699-07:00A se me olvidaba ¿si no me equivoco se alimenta a ...A se me olvidaba ¿si no me equivoco se alimenta a 5V, verdad?Ivan 007noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-71254554428815665292017-06-20T10:39:11.028-07:002017-06-20T10:39:11.028-07:00Buenas soy nuevo en esto de arduino, he leído tu p...Buenas soy nuevo en esto de arduino, he leído tu post y creo que me servirá para la idea que tengo, desde hace un año, con algunas modificaciones.<br />Una pregunta, ¿la programación serviría para Arduino nano con el chip atmega 328P?¿y en que salidas lo pondría? para hacerlo con una tiras led.<br /><br />Gracias de antemano.<br />Ivan 007noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-46236941510726958482015-10-26T13:25:13.268-07:002015-10-26T13:25:13.268-07:00@Anónimo
En principio parece que está todo bien.
E...@<a href="#c13518186801313114" rel="nofollow">Anónimo</a><br />En principio parece que está todo bien.<br />El único problema que veo, es la división de bandas que has hecho:<br />Para los graves pones hasta la banda 5 , pero en el bucle que calcula fíjate que se empieza en la 2 y se coge hasta una menos (<), es decir se queda reducido a la banda 3 y 4 , y luego se divide por 2. <br />Esto hará que este canal tenga valores muy bajos.<br />Puedes añadir más bandas, no dividir *2 (incluso multiplicar por algún coeficiente), o bajar el límite de esta banda. <br /><br />graves = 0;<br />for (int i=2; i < GRAVES_MEDIOSBAJOS; i++){<br /> graves += salida[i];<br />}<br />graves = graves/2;Arduino Guayhttps://www.blogger.com/profile/01038100694448531188noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-135181868013131142015-10-07T16:08:52.698-07:002015-10-07T16:08:52.698-07:00Saludos... ando queriendo realizar este proyecto p...Saludos... ando queriendo realizar este proyecto pero en 4 leds (agudos, medios, bajos y graves) pero me esta costando dividir bien las señales... me gustaria saber si podrias indicarme en que me ando equivocando.<br /><br />#include "fix_fft.h"<br /><br />#define MUESTRAS 128<br />#define LOGM 7<br /><br />#define GRAVES_MEDIOSBAJOS 5<br />#define MEDIOSBAJOS_MEDIOSALTOS 20<br />#define MEDIOSALTOS_AGUDOS 35<br /><br /><br />#define APIN 9 // GRAVES<br />#define BPIN 10 // MEDIOS BAJOS<br />#define CPIN 11 // MEDIOS ALTOS<br />#define DPIN 12 // AGUDOS<br />#define MAX_PASADAS 10<br /><br />char data[MUESTRAS];<br />char im[MUESTRAS];<br /><br />unsigned char salida[MUESTRAS/2];<br />unsigned char graves, mediosbajos, mediosaltos, agudos;<br /><br />byte pasada;<br />byte ACUGRAVES,ACUMEDIOSB,ACUMEDIOSA,ACUAGUDOS;<br />byte LIMGRAVES,LIMMEDIOSB,LIMMEDIOSA,LIMAGUDOS;<br /><br />void aplicaVentana (char *vData) {<br /> double muestrasMenosUno = (double(MUESTRAS) - 1.0);<br /> for (uint8_t i = 0; i < MUESTRAS/2 ; i++) {<br /> double indiceMenosUno = double(i);<br /> double ratio = (indiceMenosUno / muestrasMenosUno);<br /> double factorPeso = 0.5 * (1.0 - cos(6.28 * ratio));<br /> vData[i] *= factorPeso;<br /> vData[MUESTRAS - (i + 1)] *= factorPeso;<br /> }<br />}<br /><br />void setup() { <br /> bitWrite(ADCSRA,ADPS2,1);<br /> bitWrite(ADCSRA,ADPS1,0);<br /> bitWrite(ADCSRA,ADPS0,1); <br /><br /> analogReference(INTERNAL); <br /> <br /> pinMode(APIN,OUTPUT);<br /> pinMode(BPIN,OUTPUT);<br /> pinMode(CPIN,OUTPUT);<br /> pinMode(DPIN,OUTPUT);<br /><br /> pasada = 0;<br /> ACUGRAVES,ACUMEDIOSB,ACUMEDIOSA,ACUAGUDOS = 0;<br /> LIMGRAVES,LIMMEDIOSB,LIMMEDIOSA,LIMAGUDOS = 50;<br />}<br /><br />void loop() {<br /> for( int i=0; i < MUESTRAS; i++) {<br /> data[i] = analogRead(0)/4 -128; <br /> im[i] = 0; <br /> }<br /> <br /> aplicaVentana (data);<br /> fix_fft(data,im,LOGM,0);<br /> <br /> for (int i=0; i < MUESTRAS/2; i++){<br /> salida[i] = data[i] * data[i] + im[i] * im[i];<br /> }<br /> <br /> graves = 0;<br /> for (int i=2; i < GRAVES_MEDIOSBAJOS; i++){<br /> graves += salida[i];<br /> }<br /> graves = graves/2;<br /><br /> <br /> mediosbajos= 0;<br /> for (int i=GRAVES_MEDIOSBAJOS; i < MEDIOSBAJOS_MEDIOSALTOS; i++){<br /> mediosbajos += salida[i];<br /> }<br /> mediosbajos = mediosbajos/2;<br /> <br /> mediosaltos= 0;<br /> for (int i=MEDIOSBAJOS_MEDIOSALTOS; i < MEDIOSALTOS_AGUDOS; i++){<br /> mediosaltos += salida[i];<br /> }<br /> mediosaltos = mediosaltos/2;<br /> <br /> agudos = 0;<br /> for (int i=MEDIOSALTOS_AGUDOS; i < MUESTRAS/2; i++){<br /> agudos += salida[i];<br /> }<br /> agudos = agudos/2;<br /><br /> <br /> int siGraves = graves > LIMGRAVES;<br /> int siMediosB = mediosbajos > LIMMEDIOSB;<br /> int siMediosA = mediosaltos > LIMMEDIOSA;<br /> int siAgudos = agudos > LIMAGUDOS;<br /> <br /> digitalWrite(APIN,siGraves ? HIGH : LOW);<br /> digitalWrite(BPIN,siMediosB ? HIGH : LOW);<br /> digitalWrite(CPIN,siMediosA ? HIGH : LOW);<br /> digitalWrite(DPIN,siAgudos ? HIGH : LOW);<br /> <br /> ACUGRAVES += siGraves;<br /> ACUMEDIOSB += siMediosB;<br /> ACUMEDIOSA += siMediosA;<br /> ACUAGUDOS += siAgudos;<br /> <br /> if ( ++pasada > MAX_PASADAS ) {<br /> pasada = 0;<br /> LIMGRAVES = 20 + ACUGRAVES*5;<br /> LIMMEDIOSB = 20 + ACUMEDIOSB*5;<br /> LIMMEDIOSA = 25 + ACUMEDIOSA*5;<br /> LIMAGUDOS = 20 + ACUAGUDOS*5;<br /> <br /> ACUGRAVES = 0;<br /> ACUMEDIOSB = 0;<br /> ACUMEDIOSA = 0;<br /> ACUAGUDOS = 0;<br /> }<br /> }<br /><br />Gracias!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-60471357212514002772015-04-29T00:06:26.476-07:002015-04-29T00:06:26.476-07:00hola (otra vez)!! tienes una foto del abajo del po...hola (otra vez)!! tienes una foto del abajo del power stage?? he tratado de de seguir el esquema, pero no funciona. Keremhttps://www.blogger.com/profile/06492129766532455229noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-87859359878218799132014-04-02T13:24:53.405-07:002014-04-02T13:24:53.405-07:00@jhefren
1) char *vData es un array de char, el no...@<a href="#c223919568698384468" rel="nofollow">jhefren</a><br />1) char *vData es un array de char, el nombre de la variable es vDAta.<br />2) uint8_t es un tipo de de dato unsigned char de 8 bits, es decir un byte<br />3) vData[i]*=factorPeso es lo mismo que vData[i]= vData[i] * factorPeso<br />Para el tipo de aplicación (encender unas bombillas al ritmo de la música), el tipo de ventana es poco importante, cualquiera de ellas serviríaArduino Guayhttps://www.blogger.com/profile/01038100694448531188noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-2239195686983844682014-03-07T17:42:48.251-08:002014-03-07T17:42:48.251-08:00Como estas Arduino Guay
Mira queria que me aclarar...Como estas Arduino Guay<br />Mira queria que me aclararas como trabaja la funcion ventana de Hann paso a paso, hay cosas que no entiendo, por ejemplo cuando colocas (char *vData); que significa <br />En el Bucle For declaras uint8_t; que significa<br />y por ultimo vData[i]*=factorPeso; <br />y Porque no usaste otro tipo de ventana como estos:<br /><br />Rectangular<br />Hamming<br />Blackman<br />Blackman-Nuttall<br />Flat top<br />Gauss<br />Triangular<br />Bartlett<br />Bartlett-Hann<br />Kaiser<br />Disculpa la preguntadera, pero soy novato en programacion en SeudoCodigo Arduino, trabajo mejor con assembler en microcontroladores PIC. Aunque es mas complejo implementar algo asi como esto en PIC gama media y baja. Muchas Graciasjhefrenhttps://www.blogger.com/profile/03835557921644758795noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-16332577897893169252014-02-21T11:42:34.553-08:002014-02-21T11:42:34.553-08:00@jhefrenPersonalmente no :-(, pero si 'googlea...@<a href="#c2031185443413070778" rel="nofollow">jhefren</a>Personalmente no :-(, pero si 'googleas' seguro que encuentras algo ;-)Arduino Guayhttps://www.blogger.com/profile/01038100694448531188noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-20088108213633832632014-02-21T11:35:17.485-08:002014-02-21T11:35:17.485-08:00@jhefren
Efectivamente, con MUESTRAS 24 ya tienes ...@<a href="#c4633274626470607931" rel="nofollow">jhefren</a><br />Efectivamente, con MUESTRAS 24 ya tienes los 12 canales y no es necesario repartir nada ...<br />Los valores límite se recalculan porque se trata de encender un led (o bombilla) y esto permite tener en cuenta las variaciones de nivel de la música, pero si lo que quieres es iluminar una barra tipo vu-meter, no es necesario, directamente el valor que obtengas en cada banda, sera el que debas adecuar a tu barra de luces.Arduino Guayhttps://www.blogger.com/profile/01038100694448531188noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-20311854434130707782014-02-04T12:23:32.521-08:002014-02-04T12:23:32.521-08:00Otras preguntas, tendras alguna idea de como hacer...Otras preguntas, tendras alguna idea de como hacer filtros IIR, PIR y Filtros Kalman?jhefrenhttps://www.blogger.com/profile/03835557921644758795noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-46332746264706079312014-02-04T12:20:06.408-08:002014-02-04T12:20:06.408-08:00Hola como estas? soy yo otra vez
Tú me indicaste q...Hola como estas? soy yo otra vez<br />Tú me indicaste que con cambiar el valor de muestreo a 24<br />#define MUESTRAS 24 y colocarlo en el arreglo salida ya tenia mis valores, pero en tu programa tu repartes en tres bandas, pero la idea mia era hacer 12 bandas, como la que tienes los ecualizadores: 100 Hz, 250 hz, 600 Hz, 850 Hz, 1200 Hz, etc, etc. cada led se iluminara con cada frecuencia. De acuerdo a lo que me dices con 12 valores en el arreglo de salida tendria ya dichas frecuencias estoy en lo correcto o no? Tampoco haria falta repartir en dichas frecuencia, ni recalcular los valores limites, tal como lo haces en tu programa. Muchas Graciasjhefrenhttps://www.blogger.com/profile/03835557921644758795noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-31418875185303106142014-01-28T14:02:48.402-08:002014-01-28T14:02:48.402-08:00@Arduino Guay
Realmente quiero hacer un dimmer pa...@<a href="#c4266130626148754208" rel="nofollow">Arduino Guay</a><br /><br />Realmente quiero hacer un dimmer para una bombilla normal, y como no tengo ni idea de electrónica y estoy empezando con arduino estoy leyendo mucho y entendiendo lo que puedo. Entonces de tu proyecto quería sacar el circuito de la parte del triac, pero no estaba prestando atención al codigo, y creia que si sacaba por un pin un valor fijo eso se traduciría a la bombilla.<br />Leyendo he entendido que hay que programar el arduino, aun ni tengo claro los conceptos pero algo asi como calcular el ángulo de disparo del triac para los 50hz de la corriente alterna. Seguire leyendo en los ratos que puedas hasta que entienda y saque un codigo que haga lo que quiero.Gorgueshttps://www.blogger.com/profile/10182061338638140297noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-42661306261487542082014-01-26T05:02:35.901-08:002014-01-26T05:02:35.901-08:00@Jorge León Bullón
No acabo de entender el problem...@<a href="#c549998499691387102" rel="nofollow">Jorge León Bullón</a><br />No acabo de entender el problema. El valor de la tensión varía continuamente, se supone que sigue el ritmo de la música!Arduino Guayhttps://www.blogger.com/profile/01038100694448531188noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-5499984996913871022014-01-18T09:53:12.743-08:002014-01-18T09:53:12.743-08:00@Jose Daniel Herrera
Monté el esquema, la resiste...@<a href="#c7223965994207652770" rel="nofollow">Jose Daniel Herrera</a><br /><br />Monté el esquema, la resistencia de 360, la he sustituido por una de 330, el problema que tengo es que la tensión de salida no queda constante y como consecuencia me "tiembla" la bombilla a valores medios! <br />Se enciende del todo correctamente, y se apaga también, pero cuando quiero que la tensión sea la mitad, veo que el valor no es constate sino que me oscila entorno a 100v. ¿Alguna idea de como poder solucionarlo? <br /><br />Gracias!<br /><br />Gorgueshttps://www.blogger.com/profile/10182061338638140297noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-62606923628853189542014-01-13T04:11:03.739-08:002014-01-13T04:11:03.739-08:00@Abdel Rojas
Es el montaje recomendado en la hoja ...@<a href="#c6078787651399813813" rel="nofollow">Abdel Rojas</a><br />Es el montaje recomendado en la hoja de datos del optoacoplador <br /><a href="http://exa.unne.edu.ar/ingenieria/sysistemas/public_html/Archi_pdf/HojaDatos/Optoelectronica/moc3041.pdf" rel="nofollow">MOC3041</a>J.Daniel Herrerahttps://www.blogger.com/profile/11842252849068454078noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-72239659942076527702014-01-13T04:08:25.457-08:002014-01-13T04:08:25.457-08:00@Jorge León Bullón
No hay problema, aumentará un p...@<a href="#c1496237073876603572" rel="nofollow">Jorge León Bullón</a><br />No hay problema, aumentará un poco la corriente de la puerta, pero ten en cuenta que las resistencias tienen una tolerancia (normalmente de 5%) y los valores no son críticos.J.Daniel Herrerahttps://www.blogger.com/profile/11842252849068454078noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-14962370738766035722014-01-11T08:17:45.661-08:002014-01-11T08:17:45.661-08:00Podría poner las R4, R5, R6 a 330ohm 0 390ohm (son...Podría poner las R4, R5, R6 a 330ohm 0 390ohm (son las que he encontrado), en vez de 360? son compatibles? que consecuencias tendría?Gorgueshttps://www.blogger.com/profile/10182061338638140297noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-68790838556772358422014-01-11T07:51:01.464-08:002014-01-11T07:51:01.464-08:00Este comentario ha sido eliminado por el autor.Gorgueshttps://www.blogger.com/profile/10182061338638140297noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-60787876513998138132013-12-03T15:37:56.367-08:002013-12-03T15:37:56.367-08:00Hola, cómo es que conectas el cable de la lampara ...Hola, cómo es que conectas el cable de la lampara a la terminal 1 del Triacs?Anonymoushttps://www.blogger.com/profile/03955492362436274684noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-23794396734946373112013-12-03T15:29:40.922-08:002013-12-03T15:29:40.922-08:00Este comentario ha sido eliminado por el autor.Anonymoushttps://www.blogger.com/profile/03955492362436274684noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-74522133887134898702013-10-06T23:18:23.470-07:002013-10-06T23:18:23.470-07:00@jhefren
Hola, lo de los 12 canales no es problema...@<a href="#c7783406037643187599" rel="nofollow">jhefren</a><br />Hola, lo de los 12 canales no es problema. Simplemente poniendo en el código <br />#define MUESTRAS 24<br />ya tendrás después de calcular en el array <b><i>salida</i></b> 12 valores (en vez de 64 como en el ejemplo. Luego no hace falta que repartas en tres bandas como se hace en el código.<br />Lo de poner barras en vez de leds, ya es más complicado, podrías utilizar una matriz de manera que las columnas sean las 12 bandas y las filas sean proporcionales al valor de cada banda. Hay ejemplos de como manejar una matriz con Arduino : <br /><a href="http://playground.arduino.cc/Main/LEDMatrix" rel="nofollow">Arduino con MAX 7219</a> <br /><a href="http://playground.arduino.cc/Main/DirectDriveLEDMatrix" rel="nofollow">Manejo de matriz de leds con Arduino</a>Arduino Guayhttps://www.blogger.com/profile/01038100694448531188noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-77834060376431875992013-09-30T11:33:28.981-07:002013-09-30T11:33:28.981-07:00Saludos excelente proyecto, se puede modificar par...Saludos excelente proyecto, se puede modificar para que en vez de tener solo 3 canales, pudiera tener por ejemplo 12? Y saber si en vez de usar un solo led por canal, se pudiera colocar barras de led digamos 8 por cada canal. En mi caso seria 12x8= 96 ledjhefrenhttps://www.blogger.com/profile/03835557921644758795noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-7058843686689204362013-04-25T06:20:09.283-07:002013-04-25T06:20:09.283-07:00Me ha encantado "Arduino guay" estaba un...Me ha encantado "Arduino guay" estaba un poco confuso con este tema y me ha ayudado mucho. Muchas gracias. SaludosJaime Barroshttps://www.blogger.com/profile/05509198337700980782noreply@blogger.comtag:blogger.com,1999:blog-4987982810491287033.post-68626562275061242742013-04-13T03:26:59.883-07:002013-04-13T03:26:59.883-07:00@Lioncourt
No necesitas ningún cambio, el circuito...@<a href="#c693214555867339671" rel="nofollow">Lioncourt</a><br />No necesitas ningún cambio, el circuito funciona igual, sólo necesitarás una alimentador para el circuito que funcione con 110VArduino Guayhttps://www.blogger.com/profile/01038100694448531188noreply@blogger.com