spiderpoison:
Bubulindo - Eu consegui sim entender como funciona o PWM e como ele é utilizado para geração de som.
Sei que o Arduino fica ligando e desligando a porta 440 vezes por segundo para gerar uma nota Lá.
Não; o Arduino não fica ligando e desligando a porta PWM 440 vezes por segundo; a frequência do PWM está próxima aos 500 Hz:
http://www.arduino.cc/en/Tutorial/PWM
In other words, with Arduino's PWM frequency at about 500Hz, the green lines would measure 2 milliseconds each. A call to analogWrite() is on a scale of 0 - 255, such that analogWrite(255) requests a 100% duty cycle (always on), and analogWrite(127) is a 50% duty cycle (on half the time) for example.
O PWM não serve para gerar os pulsos na frequência que você quer; ele gera, isso sim, um sinal na amplitude que você deseja. A frequência do PWM é fixa, e o que muda é a largura do pulso. Por isso que é chamada de PWM: Pulse Width Modulation, modulação por largura de pulso.
Se você quer que o pulso tenha uma certa frequência, você tem que usar, da forma que bubulindo explicou, um timer e uma interrupção do microcontrolador, caso queira que o seu programa funcione em modo assíncrono, ou usar a forma que eu indiquei no post #9, que é síncrona, isto é, não usa interrupções para fabricar os pulsos.