Projetos Eletrônica: Como programa de música em um BASIC Stamp

Com seu processador BASIC Stamp, comandos PBASIC e um alto-falante piezo, você pode fazer seus projetos eletrônicos cantar. Aqui está um exemplo de programa que desempenha duas músicas em um orador piezo: "Mary Had a Little Lamb" e a canção feliz aniversário. Os formeris reproduzido quando você pressionar SW1- o latterwhen você pressionar SW2.

Para simplificar o código que gera as notas musicais, o programa define várias constantes que representam a frequência de cada uma das notas exigidas pelos cantos. Por exemplo, a constante NoteC6 é 1046, a frequência em Hz de C na sexta oitava de um teclado de piano.

As constantes abrangem duas oitavas completas, que é a abundância de gama para as músicas a serem reproduzidas. Ambas as músicas são tocadas na chave de C, então não há apartamentos ou farelos são obrigatórios.

O programa também configura constantes para a duração de uma semínima, meia nota e nota inteira. As constantes de tornar mais fácil para especificar um campo particular, para uma duração particular numa FREQOUT comando.

Assim, tocando uma melodia é simplesmente uma questão de escrever uma seqüência de FREQOUT comandos para tocar as notas certas para as durações corretas na ordem correta. Isso é precisamente o que os sub-rotinas rotulada Maria e Aniversário Faz.

'Programa Song' Doug Lowe '15 de julho de 2011' 'Este programa desempenha uma das duas canções no alto-falante piezo' no pino 0. ' Se SW1 no pino 14 é pressionado, o programa reproduz "Mary Had a Little Lamb". "Se SW2 no pino 10 é pressionado, o programa reproduz" Bom dia a todos. "" {$ SELO 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 Speaker, Quarter, NoteE7 'Mar-FREQOUT Speaker, Quarter, NoteD7' yFREQOUT Speaker, Quarter, NoteC7 'HadFREQOUT Speaker, Quarter, NoteD7' aFREQOUT Speaker, Quarter, NoteE7 'Lit-FREQOUT Speaker, Quarter, NoteE7' tleFREQOUT Speaker , Quarter, NoteE7 'LambPAUSE QuarterFREQOUT Speaker, Quarter, NoteD7' Lit-FREQOUT Speaker, Quarter, NoteD7 'tleFREQOUT Speaker, Quarter, NoteD7' LambPAUSE QuarterFREQOUT Speaker, Quarter, NoteE7 'Lit-FREQOUT Speaker, Quarter, NoteG7' tleFREQOUT Speaker, Quarter , NoteG7 'LambPAUSE QuarterFREQOUT Speaker, Quarter, NoteE7' Mar-FREQOUT Speaker, Quarter, NoteD7 'yFREQOUT Speaker, Quarter, NoteC7' HadFREQOUT Speaker, Quarter, NoteD7 'aFREQOUT Speaker, Quarter, NoteE7' Lit-FREQOUT Speaker, Quarter, NoteE7 ' tleFREQOUT Speaker, Quarter, NoteE7 'LambFREQOUT Speaker, Quarter, NoteE7' ItsFREQOUT Speaker, Quarter, NoteD7 'FleeceFREQOUT Speaker, Quarter, NoteD7' WasFREQOUT Speaker, Quarter, NoteE7 'WhiteFREQOUT Speaker, Quarter, NoteD7' AsFREQOUT Speaker, Quarter, SnowPAUSE NoteC7 ' HalfRETURNMorning: FREQOUT Speaker, Half, NoteC7 'GoodFREQOUT Speaker, Half, NoteD7' Amanhecer-FREQOUT Speaker, Half, NoteC7 'ingFREQOUT Speaker, Half, NoteF7' ToFREQOUT Speaker, inteiro, NoteE7 'YouFREQOUT Speaker, Half, NoteC7' GoodFREQOUT Speaker, Meia , NoteD7 'Amanhecer-FREQOUT Speaker, Half, NoteC7' ingFREQOUT Speaker, Half, NoteG7 'ToFREQOUT Speaker, inteiro, NoteF7' YouFREQOUT Speaker, Half, NoteC7 'GoodFREQOUT Speaker, Half, NoteC8' Amanhecer-FREQOUT Speaker, Half, NoteA7 'ingFREQOUT Speaker, Half, NoteF7 'DearFREQOUT Speaker, Half, NoteE7' Child-FREQOUT Speaker, inteiro, NoteD7 'renFREQOUT Speaker, Half, NoteB7' GoodFREQOUT Speaker, Half, NoteA7 'Amanhecer-FREQOUT Speaker, Half, NoteF7' ingFREQOUT Speaker, Half, NoteG7 'ToFREQOUT Speaker, inteiro, NoteF7' AllRETURN

menu