Generar Sonido con PIC16F628A

#1
Hola Gente estube viendo en el foro que no hay un tema concreto que lleve a una solucion satisfactoria con el tema de generar sonido con pic en CCs.
bueno aca les dejo un codigo sencillo explicado y el esquema dde conexion.
La salida es RB0.

Código:
///////////////////////////////////////////
//    Generador de tonos     pic 16F628A //     
//////////////////////////////////////////
//Fusa 62 mS
//Semicorchea 125 mS
//Corchea 250 mS
//Negra 500 mS
//Blanca 1 Segundo
//Redonda 2 Segundos
///////////////////////////////////////////
// musiquita para dormir (no esta entera)
//salida por la patita 6 , RB0
///////////////////////////////////////////
//
#include <16F628a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#include <tones.c>// libreria tones de c
//contiene las frecuencias de las notas musicales
void main(void)  {

   int fusa=62;
   int semicorchea=125;
   int corchea=250;
   long negra=500;
   long blanca=1000;
   long redonda=2000;

   while(TRUE)
   {
         //la funcion generate_tone
         //toma como entrada la nota con su octava entre[]
         //y la duracion de la misma en ms
         generate_tone(C_NOTE[3],fusa);//do
         generate_tone(C_NOTE[3],fusa);
         generate_tone(Eb_NOTE[3],corchea);//re#,mibemol
         generate_tone(C_NOTE[3],fusa);
         generate_tone(C_NOTE[3],fusa);
         generate_tone(Eb_NOTE[3],corchea);
         generate_tone(C_NOTE[3],fusa);
         generate_tone(Eb_NOTE[3],fusa);
         generate_tone(Ab_NOTE[3],semicorchea);//sol#,labemol
         generate_tone(G_NOTE[3],semicorchea);//sol
         generate_tone(F_NOTE[3],semicorchea);//fa
         generate_tone(F_NOTE[3],semicorchea);
         generate_tone(Eb_NOTE[3],semicorchea);
         delay_ms(100);
        
}
}



Saludos :D
 
#2
Para que la dicha sea completa, podrias adjuntar el archivo con la libreria de tonos ?
Saludos☺
 
#3
Te comento que picbasic tiene dos comandos para generar sonidos, uno que le pones la frecuencia y la duracion, y otro que genera tonos y ruido rosa.... podrias ver por ese lado si conseguis algo, saludos.
 
#4
adjunto las notas

// NOTE FREQUENCY
// Octave0 Octave1 Octave2 Octave3
const long C_NOTE[4] ={ 262, 523, 1047, 2093};
const long Db_NOTE[4] ={ 277, 554, 1109, 2217};
const long D_NOTE[4] ={ 294, 587, 1175, 2349};
const long Eb_NOTE[4] ={ 311, 622, 1245, 2489};
const long E_NOTE[4] ={ 330, 659, 1329, 2637};
const long F_NOTE[4] ={ 349, 698, 1397, 2794};
const long Gb_NOTE[4] ={ 370, 740, 1480, 2960};
const long G_NOTE[4] ={ 392, 784, 1568, 3136};
const long Ab_NOTE[4] ={ 415, 831, 1661, 3322};
const long A_NOTE[4] ={ 440, 880, 1760, 3520};
const long Bb_NOTE[4] ={ 466, 923, 1865, 3729};
const long B_NOTE[4] ={ 494, 988, 1976, 3951};
saludos
 
Arriba