Estoy haciendo un proyecto basado en Arduino usando el PWM conectado a un altavoz de 0.5W 8Ω para hacer varios sonidos, quiero implementar un control de volumen digital y pensé en usar otra salida PWM y un Opto-Isolator .... ¿sería esto posible?
Y ... si es posible, ¿podría alguien recomendar un candidato adecuado?
Aplausos Chiphackers - Déjame saber si esto es demasiado vago :)
Actualización: tengo el altavoz conectado directamente a la salida PWM sin amplificación - Estoy usando un par de interruptores táctiles para subir y bajar el volumen
Aquí está el circuito (en teoría) -
También hay un código, tengo el PWM configurado a alta velocidad y lo estoy usando para subir y bajar el volumen de los tonos -
/////////////////////////////////////////////////////////////////////////////////////
// Configure PWM on pins 3 and 11 to run at maximum speed, rather than the default //
/////////////////////////////////////////////////////////////////////////////////////
pinMode(3,OUTPUT); // speaker on pin 3
cli(); // disable interrupts while registers are configured
bitSet(TCCR2A, WGM20);
bitSet(TCCR2A, WGM21); // set Timer2 to fast PWM mode (doubles PWM frequency)
bitSet(TCCR2B, CS20);
bitClear(TCCR2B, CS21);
bitClear(TCCR2B, CS22);
sei(); // enable interrupts now that registers have been set
////////// Function for playing tones -
void playTone(long tone, int duration)
{
prevMicros = micros();
while (micros() - prevMicros < duration)
{
analogWrite(3, VOLUME);
delayMicroseconds(tone);
analogWrite(3, 0);
delayMicroseconds(tone);
}
}