Te damos la bienvenida a la comunidad de T!Estás a un paso de acceder al mejor contenido, creado por personas como vos.

O iniciá sesión con
¿No tenés una cuenta?
Hola Gente vamos a generar 'musiquita' con el PIC 16F628A sale aprox 20 pesos.



bueno aca les dejo un codigo sencillo explicado y el esquema de conexion.
La salida es RB0.

Codigo en CCS:




///////////////////////////////////////////
// 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);

}
}






Conexionado:



Eso es todo!!

les dejo un par de fotos, las de mi programador y un circuito armado de una alarma infrarroja...







Fuente: Yo je