Muy buenas tardes compañeros del foro.
He estado intentando controlar varios LEDs con una única señal PWM pero no lo logro, para empezar explico mi circuito:
Primeramente Q1 lo uso como un switch general, que envía la señal PWM al LED D2, D3, D4 o D5, dependiendo de que mofet active.
Como dato mi señal PWM es de 10kHz. Ahora mi codigo para distribuir la señal, es el siguiente:
Lo que he hecho es montarlo en un protoboar, pero no funciona, a la salida del CCP2 coloco un LED y el LED ni siquiera titila.
Por el contrario, si pongo una única señal PWM, si funciona, por ejemplo:
Funciona al 100%.
Como dije antes, mi problema es cuando conmuto los mosfets Q2, Q3, Q4, o Q5 para controlar individualmente el brillo de los LEDs.
Espero alguién me pueda decir que es lo que estoy haciendo mal.
Muchas gracias de antemano. ...
He estado intentando controlar varios LEDs con una única señal PWM pero no lo logro, para empezar explico mi circuito:

Primeramente Q1 lo uso como un switch general, que envía la señal PWM al LED D2, D3, D4 o D5, dependiendo de que mofet active.
Como dato mi señal PWM es de 10kHz. Ahora mi codigo para distribuir la señal, es el siguiente:
Código:
L1=0;
L2=10000;
while(1){
output_high(pin_d0); // Se activa D0 para controlar el LED D2
set_pwm2_duty(L1); // Se actualiza el ciclo de servicio
delay_us(500); // Se da un retardo para entregar 5 pulsos de la PWM
// al LED D2
output_low(pin_d0); // Se apaga D0 para poder controlar el siguiente LED
output_high(pin_d1); // Se activa D1 para controlar el LED D3
set_pwm2_duty(L2); // Se actualiza el ciclo de servicio
delay_us(500); // Se da un retardo para entregar 5 pulsos de la PWM
// al LED D2
output_low(pin_d1); // Se apaga D0 para poder controlar el siguiente LED
L1=L1+10; // Se aumenta la señal PWM para LED D2
L2=L2-10; // Se decrementa la señal PWM para LED D3
}
Lo que he hecho es montarlo en un protoboar, pero no funciona, a la salida del CCP2 coloco un LED y el LED ni siquiera titila.
Por el contrario, si pongo una única señal PWM, si funciona, por ejemplo:
Código:
while(1){
set_pwm2_duty(L1); // Se actualiza el ciclo de servicio
delay_ms(10);
L1=L1+10; // Se aumenta la señal PWM para LED D2
if(L1>=10000)L1=0;
}
Funciona al 100%.
Como dije antes, mi problema es cuando conmuto los mosfets Q2, Q3, Q4, o Q5 para controlar individualmente el brillo de los LEDs.
Espero alguién me pueda decir que es lo que estoy haciendo mal.
Muchas gracias de antemano. ...
Última edición: