Haz una pregunta
  Foros de Electrónica » Temas de Interés » Dudas en general
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

17/03/2015 #1


Control digital de volumen con pwm y ldr + led
Mas que ayuda, quiero desarrollar esta idea con aportes colectivos de todos aquellos que les interese este tema.

la idea es básicamente usar un microcontrolador (solo se usar lenguaje c pic c complier) programarlo para leer un encoder mecánico si!, de esos que traen los equipos de sonido, y atravez de bucle infinito, o de interrupciones externas leer al enconder el sentido de giro, luego incrementar o decrementar una variable, publicarlo en una LCD y a su vez aumentar o disminuir el ancho de pulso de un PWM para atacar a un led arreglado con un LDR.....¿que por que lo hago? por que necesito controlar 6 canales de audio y quiero hacerlo de forma independiente (control de ganancia para cada uno :P ) una locura, quizás, pero esto nos ayudara a aprender mucho mas sobre control!!...PD: hace poco aprendí a programar micros, asi que estoy en pañales :(, pero si tengo muchos años en la electrónica análoga y digital convencional ...
17/03/2015 #2

Avatar de chclau

Para mi manera de ver ya son muchos pasos intermedios, una vez que e micro ya codifico el volumen deseado yo enviaria esa informacion a un potenciometro digital
17/03/2015 #3

Avatar de Dr. Zoidberg

Hay un chip de yamaha que es muy parecido a la serie PGA23xx solo que controla SIETE canales en el mismo chip.

Edito: el chip es el YAC523... habría que buscar algun proveedor, pero ahí va el datasheet
Archivos Adjuntos
Tipo de Archivo: pdf YAC523.PDF (407,5 KB (Kilobytes), 18 visitas)
17/03/2015 #4

Avatar de pandacba

Porque no utilzas el TDA7430 que es un procesador de audio de 6 canales y lo manejas por bus I2C? no es el unico dispositvo, lo menciono como referencia
17/03/2015 #5


gracias a todos por responder tan rápido, el problema con esos chips es que acá donde vivo es muy difícil conseguirlos, y aparte aun no se como programar en c usando el protocolo I2C pero suena muy interesante lo que proponen!
17/03/2015 #6

Avatar de pandacba

Hay otros chips que trabajan controlando mediante DC, de todas manera si persistes con tu idea tal vez utilzano un optoacoplador puedas realizar algo más compacto
18/03/2015 #7


a eso quería llegar pandacba, tengo en mis manos en TA7630P y lo consigo donde yo vivo, pero no se si lo puedo usar con pwm o si es necesario usar tensión para controlarlo, en ninguna parte de la hoja de datos dice que se pueda controlar con pwm http://pdf.datasheetcatalog.com/data...shiba/3469.pdf
18/03/2015 #8

Avatar de Dr. Zoidberg

Ese chip es del mismo tipo del TDA1524 y del LM1036: usan tensión contínua para excitar las etapas de control de tono y volumen. El datasheet es peor que malo, pero con buena voluntad se pueden descifrar algunas cosas...
18/03/2015 #9


Dr. Zoidberg tu crees que se pueda controlar el volumen de ese chip usando pmw en ves de una tension variable?
18/03/2015 #10

Avatar de pandacba

Mira esto a modo de referencia
http://320volt.com/en/lm1036-attiny2...iz-balans-ses/
y te vas a dar cuenta si se puede o no

En algún lado tengo uno similar echo por un amigo pero con un pic, funciona espectacular
Si necesitas controlar 6 canales al mismo tiempo Pricento Tegnoly tiene un CI que los controla con DC
La integración de una señal Pwm para obtener una tesión propocional de control es un técnica vieja y se ha utilzado comercialmente con excelente resultado hoy reemplazada por el control por I2C
18/03/2015 #11

Avatar de Dr. Zoidberg

Hollman dijo: Ver Mensaje
Dr. Zoidberg tu crees que se pueda controlar el volumen de ese chip usando pmw en ves de una tension variable?
Y por que usarias un PWM si podes entrar con DC????
Metele un filtro pasabajos a la señal PWM y la convertis en DC que podes mandar al chip. No me parece que sea lo mas inteligente para hacer.... pero de poder... se puede.
PD: y vas a necesitar tres o cuatro PWMs para poder controlar todo...
18/03/2015 #12


eso lo tengo claro, ya tengo una rutina para eso usando el pic16877A ahorita mas tarde subo el codigo que tengo que parece que ha funcionado muy bien, la señal le coloco un pasabajos y la rectifico con un diodo un 1N4148 y la uso para atacar al integrado de contro??? es eso?
18/03/2015 #13

Avatar de Dr. Zoidberg

Para que vas a poner el diodo????
18/03/2015 #14


rectificar el pwm y luego un condensador, pero a la salida del filtro pasabanda, me dijiste que para convertirlo a dc. el pwm es una frecuencia y si la rectifico la convierto en dc.

Código:
#include <16F877A.h>

#FUSES NOWDT, XT, PUT, NOPROTECT, NOBROWNOUT, NOLVP, NOCPD

#use delay(clock=4000000)


#byte porta = 5
#byte portb = 6
#byte portd = 7

  int x;
  int enc;
  int aux;
  int PWMH=0,PWML=0;

// ---------- Programa Principial ----------

void main()
{

   port_b_pullups(FALSE);                   // Sin resistencias pullups a las salidas del puerto B.
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); // Al no usar el TIMER configuramos lo más básico.
   setup_comparator(NC_NC_NC_NC);           // Sin comparadores.
   setup_vref(FALSE);                       // Al no usar comparadores no necesitamos Vref.
   




   set_tris_a(0);     // Puerto A como entradas. Sólo usamos RA0 y RA1.
   set_tris_b(0b11111111);
   set_tris_d(0);
   

 
   enc=0;     // Inicialmente ponemos a cero la variable que tomará los valores de RA0 y RA1.


 

   While (true)           //lea por siempre el puerto B
   {
          aux=enc;               // Igualamos 'AUX' y 'ENC' para luego comparar cuando cambie 'ENC'.
          enc=portb & 3;         // Aislamos RA0 y RA1 como un número de 2 bits y se carga en la variable 'ENC'.
          
          If ((aux==2)&&(enc==3))// Si en la comparación hay flanco de subida,
          {
             if (x>=0){ x++;}               
          }

          If ((aux==3)&&(enc==2))
          {
          if (x<=32){ x--;}                
          }
//------------------generar PWM-----------
PWMH=X*3;
PWML=255-PWMH;
for(PWMH;PWMH>0;PWMH--){
OUTPUT_HIGH(PIN_A0);
}
for(PWML;PWML>0;PWML--){
OUTPUT_LOW(PIN_A0);
}
   <<<@!1!@>>>[/QUOTE]
}
}

este es el codigo que tengo desarrollado con el que uso el encoder e incremento o decremento el pwm, funciona bien hasta el momento, no he logrado impedir que la variable x no se incremente mas alla del valor de 32 ni decremente menos que 0, el if no me funciona :(
19/03/2015 #15

Avatar de chclau

El pwm no necesita ser rectificado, solo filtrado

La rectificacion se usa en AC, NO porque sea una señal "en frecuencia" sino porque tiene parte negativa. Un PWM que no tiene parte negativa no necesita recitificacion
19/03/2015 #16

Avatar de pandacba

yo supe hacer lo siguiente determinaba la cantidad de pasos para los incrementos y lo hacia funcionar con botones cuando aumentaba el step que aumentaba a la parte positiva se lo quitaba a la parte inversa hasta llegar al máximo y para bajar al reves, cuando llegaba al máximo o al minmo un bep me avisaba de esa condición, siempre pense que eso era complejo pero luego me di con que era un juego de niños
21/03/2015 #17


bueno alguien tiene un esquematico de pasabanda para el pwm y convertirlo en dc?, no entiendo si solo lo paso por el pasabandas a la salida queda en dc??...pregunto por que eso si no lo he hecho nunca!
21/03/2015 #18

Avatar de pandacba

No es un pasabanda es un integrador.
Cuando rectificas con diodos tienes una tensión unidireccional pulsante, cuando agregas los capacitores aparece una tensión continua, aqui ocurre lo mismo en lugar de una senoide es una onda cuadrada....
Eun una fuente swiching luego de rectificar tienes pulsos unidreccionales, cuando colocas el capacitor aparece la tensión continua.

Cuando tienes tu señal con un duty cycle del 50% de una señal pico a pico de 12V cuando pones unos capacitores y mides tendras unos 6V, si varias el ancho del pulso para que el ciclo sea ahora de un 25% tendras una tensión de 3V
21/03/2015 #19

Avatar de chclau

Una red RC alcanza, para decirte que valores usar hay que saber la frecuencia del PWM
29/03/2015 #20


bueno no se que frecuencia maneje, puesto que estoy generando el pwm con el codigo que escribi alla arriba, si alguien sabe como calcularlo???....PD no estoy usando timers
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Dudas en general

Aquí se tratan todos los temas relacionados con la electrónica en general.

Cerrar
Foros de Electrónica » Temas de Interés » Dudas en general

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.