Proyectos electrónicos: cómo programar música en un sello básica

Con su procesador de BASIC Stamp, comandos PBASIC y un altavoz piezoeléctrico, puede hacer que sus proyectos de electrónica de cantar. Aquí es un programa de ejemplo que desempeña dos canciones en un altavoz piezoeléctrico: "Mary Had a Little Lamb" y la canción del feliz cumpleaños. El primero se juega al pulsar SW1- este último al pulsar SW2.

Para simplificar el código que genera las notas musicales, el programa define varias constantes que representan la frecuencia para cada una de las notas requeridas por las canciones. Por ejemplo, la constante NoteC6 es 1046, la frecuencia en Hz de C en la sexta octava de un teclado de piano.

Las constantes abarcan dos octavas completas, que es un montón de variedad de las canciones se reproduzcan. Ambas canciones se reproducen en la clave de C, por lo que no se requieren pisos o de objetos punzantes.

El programa también establece constantes durante la duración de una nota trimestre, media nota y nota entera. Las constantes hacen que sea fácil para especificar un terreno de juego particular para una duración particular en una FREQOUT comandos.

Por lo tanto, jugar una melodía es simplemente una cuestión de escribir una secuencia de FREQOUT comandos a tocar las notas correctas para las duraciones correctas en el orden correcto. Eso es precisamente lo que las subrutinas etiquetados María y Fecha de nacimiento hacer.

'Programa Song' Doug Lowe 15 de julio 2011 '' Este programa interpreta a uno de dos canciones en el altavoz piezoeléctrico 'en el pin 0.' Si SW1 en el pin 14 es presionado, el programa toca "Mary Had a Little Lamb". "Si SW2 en el pin 10 es presionado, el programa toca" Buenos Días a Todos ". '{$ STAMP BS2}' {$ PBASIC 2.5} SW1PIN 14SW2PIN 10Speaker PIN 0NoteC6 CON 1046NoteD6 CON 1175NoteE6 CON 1318NoteF6 CON 1370NoteG6 CON 1568NoteA6 CON 1760NoteB6 CON 1975NoteC7 CON 2093NoteD7 CON 2349NoteE7 CON 2637NoteF7 CON 2794NoteG7 CON 3136NoteA7 CON 3520NoteB7 CON 3951NoteC8 CON 4186Whole CON 1000Half CON 500Quarter CON 250DOIF SW1 = 1 THENGOSUB MaryENDIFIF SW2 = 1 THENGOSUB MorningENDIFLOOPMary: FREQOUT altavoz, cuartos, NoteE7 'Mar-FREQOUT altavoz, cuartos, NoteD7' yFREQOUT altavoz, cuartos, 'HadFREQOUT altavoz, cuartos, NoteD7' NoteC7 aFREQOUT altavoz, cuartos, 'Lit-FREQOUT altavoz, cuartos, NoteE7' NoteE7 tleFREQOUT Altavoz , cuartos, 'LambPAUSE QuarterFREQOUT altavoz, cuartos, NoteD7' NoteE7 Lit-FREQOUT altavoz, cuartos, 'tleFREQOUT altavoz, cuartos, NoteD7' NoteD7 LambPAUSE QuarterFREQOUT altavoz, cuartos, 'Lit-FREQOUT altavoz, cuartos, NoteG7' NoteE7 tleFREQOUT altavoz, Barrio , 'LambPAUSE QuarterFREQOUT altavoz, cuartos, NoteE7' NoteG7 Mar-FREQOUT altavoz, cuartos, 'yFREQOUT altavoz, cuartos, NoteC7' NoteD7 HadFREQOUT altavoz, cuartos, NoteD7 'aFREQOUT altavoz, cuartos, NoteE7' Lit-FREQOUT altavoz, cuartos, NoteE7 ' tleFREQOUT altavoz, cuartos, 'LambFREQOUT altavoz, cuartos, NoteE7' NoteE7 ItsFREQOUT altavoz, cuartos, 'FleeceFREQOUT altavoz, cuartos, NoteD7' NoteD7 WasFREQOUT altavoz, cuartos, NoteE7 'WhiteFREQOUT altavoz, cuartos, NoteD7' AsFREQOUT altavoz, cuartos, SnowPAUSE NoteC7 ' HalfRETURNMorning: FREQOUT altavoz, Media, 'GoodFREQOUT altavoz, Media, NoteD7' NoteC7 Morn-FREQOUT altavoz, Media, 'ingFREQOUT altavoz, Media, NoteF7' NoteC7 ToFREQOUT altavoz, entero, 'YouFREQOUT altavoz, Media, NoteC7' NoteE7 GoodFREQOUT altavoz, Media "Mañana-FREQOUT altavoz, Media, NoteC7 'NoteD7 ingFREQOUT altavoz, Media,' ToFREQOUT altavoz, entero, NoteF7 'NoteG7 YouFREQOUT altavoz, Media,' GoodFREQOUT altavoz, Media, NoteC8 'NoteC7 Morn-FREQOUT altavoz, Media, NoteA7' ingFREQOUT Altavoz, Media, 'DearFREQOUT altavoz, Media, NoteE7' NoteF7 Niño-FREQOUT altavoz, entero, 'renFREQOUT altavoz, Media, NoteB7' NoteD7 GoodFREQOUT altavoz, Media, 'Mañana-FREQOUT altavoz, Media, NoteF7' NoteA7 ingFREQOUT altavoz, Media, 'ToFREQOUT altavoz, entero, NoteF7' NoteG7 AllRETURN



» » » » Proyectos electrónicos: cómo programar música en un sello básica