El post que buscas se encuentra eliminado, pero este también te puede interesar

Musica con PIC 18F4550 Libreria Tones (Himno a la alegria)

Anuncios

Hola amigos de Taringa, les traigo este nuevo post con un programa para crear "musica" con el PIC utilizando la libreria tones.c que se encuentra ya con el compilador


Las notas que podemos crear son las siguientes:

Musica con PIC 18F4550 Libreria Tones (Himno a la alegria)

La funcion que hay que escribir para generar una nota musical sera:

generate_tone(frequency, duration);

Donde:
frequency = La nota a generar
duration= la duracion del sonido escrita en milisegundos

E pin por defecto por donde se generara la frecuencia es el B2 (para cualquier PIC y segun la libreria)



Ejemplo para reproducir un "DO" durante 1 segundo.

generate_tone(C_NOTE[0],1000);

Noten que tiene un "0" entre los corchetes "[]" es porque si observan la imagen nos da la opcion de generar frecuencias para "octavas" ustedes pueden poner cualquier numero del 0 al 3 dentro de esos corchetes y escuchar que sonido produce.


Para los que no saben las escales musicales en esa notacion les dejo esta escala musical en "latino" e "ingles"

Ingles-----Español
A La
B Si
C Do
D Re
E Mi
F Fa
G Sol


Sin mas por el momento, les dejo el programa (lo hice yo, ya que toco guitarra decidi tomar las notas de la guitarra y generar... mas o menos jajaja las notes del Himno a la alegria). Espero que les guste:

#INCLUDE <18F4550.h>
#fuses INTRC_IO,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,NOVREGEN
#use delay(clock=4000000)
#include <lcd.c>
#include <tones.c>


void main()
{

lcd_init();

while(true)
{

//si ves una o varias caritas en el programa es cerrar parentesis )
//antes de la "f" en la mayoria de los printf por ejemplo "fMusica...
//va una diagonal invertida... veo que no aparece, no se que hacer
// \\ (esta diagonal invertida)


printf(lcd_putc,"fMusica con PIC";


generate_tone(C_NOTE[0],1000);
generate_tone(D_NOTE[0],1000);
generate_tone(E_NOTE[0],1000);
generate_tone(F_NOTE[0],1000);
generate_tone(G_NOTE[0],1000);
generate_tone(A_NOTE[0],1000);
generate_tone(B_NOTE[0],1000);

generate_tone(B_NOTE[0],800);
generate_tone(C_NOTE[1],600);
generate_tone(D_NOTE[1],500);
generate_tone(D_NOTE[1],500);
generate_tone(C_NOTE[1],500);
generate_tone(B_NOTE[0],500);

generate_tone(A_NOTE[0],500);
generate_tone(G_NOTE[0],500);
generate_tone(G_NOTE[0],500);
generate_tone(A_NOTE[0],600);
generate_tone(B_NOTE[0],500);
generate_tone(B_NOTE[0],700);
generate_tone(A_NOTE[0],400);
generate_tone(A_NOTE[0],600);

printf(lcd_putc,"fHimno a lanalegria";

generate_tone(B_NOTE[0],800);
generate_tone(C_NOTE[1],600);
generate_tone(D_NOTE[1],500);
generate_tone(D_NOTE[1],500);
generate_tone(C_NOTE[1],500);
generate_tone(B_NOTE[0],500);

generate_tone(A_NOTE[0],500);
generate_tone(G_NOTE[0],500);
generate_tone(G_NOTE[0],500);
generate_tone(A_NOTE[0],600);
generate_tone(B_NOTE[0],500);
generate_tone(A_NOTE[0],700);
generate_tone(G_NOTE[0],400);
generate_tone(G_NOTE[0],600);

printf(lcd_putc,"fLibreria tones.c";

//delay_ms(100);

generate_tone(A_NOTE[0],800);
generate_tone(B_NOTE[0],500);
generate_tone(G_NOTE[0],500);
generate_tone(A_NOTE[0],800);
generate_tone(B_NOTE[0],300);
generate_tone(C_NOTE[1],300);
generate_tone(B_NOTE[0],300);
generate_tone(G_NOTE[0],400);

generate_tone(A_NOTE[0],500);
generate_tone(B_NOTE[0],300);
generate_tone(C_NOTE[1],300);
generate_tone(B_NOTE[0],300);
generate_tone(A_NOTE[0],500);
generate_tone(G_NOTE[0],500);
generate_tone(A_NOTE[0],500);
generate_tone(D_NOTE[0],500);

printf(lcd_putc,"fProyectos PIC";

//delay_ms(100);

generate_tone(B_NOTE[0],800);
generate_tone(C_NOTE[1],700);
generate_tone(D_NOTE[1],500);
generate_tone(D_NOTE[1],500);
generate_tone(C_NOTE[1],500);
generate_tone(B_NOTE[0],500);

generate_tone(A_NOTE[0],500);
generate_tone(G_NOTE[0],500);
generate_tone(G_NOTE[0],500);
generate_tone(A_NOTE[0],600);
generate_tone(B_NOTE[0],500);
generate_tone(A_NOTE[0],700);
generate_tone(G_NOTE[0],300);
generate_tone(G_NOTE[0],600);

printf(lcd_putc,"fSaludos";

delay_ms(2000);

}
}


link: https://www.youtube.com/watch?v=3UgIOE0XGC0&feature=youtu.be


Posdata: No es necesario el uso de la libreria de la LCD, solo lo use para mostrar un mensaje en la simulacion. Saludos

Anuncios

4 comentarios - Musica con PIC 18F4550 Libreria Tones (Himno a la alegria)

@salex16 +1
buen video profesor
@romanomex
Gracias, que bueno que te gusto.
@Kamirikiman
Disculpe una pregunta, ¿Donde puedo conseguir la libreria de lcd?
@romanomex
Hola, perdon por responder tan tarde. Viene en el programa PICC o PIC C compiler (PCW) se llama lcd.c la libreria espero haberte ayudado
@ANONIMO14
HOLA; UNA PREGUNTA, LA FRECUENCIA SIEMPRE DEBE ESTAR A 4MHZ O PUEDO USAR 20MHZ?

GRACIAS.
@romanomex
Hola pues, yo uso los 4MHz porque es el del oscilador interno. Pero si, podrías usar uno de 20MHz, si tienes alguna otra duda, puedes preguntarmelo
@ANONIMO14
Muchas gracias.
En unas horas entrego un pyecto musical y eh intentado realizar "AeroDynamics" y se me a complicado algo.
@romanomex
¿AeroDynamics? ¿no es la canción de Daft Punk?
@ANONIMO14
@romanomex exactamente, con la cual gane el "concurso" de dicho proyecto jejeje
@romanomex
@ANONIMO14 Que bien, felicidades espero que te haya sido de ayuda este proyecto y si es que ganaste creo que me motiva a empezar a crear nuevas cosas n.n