L'attino ha un pallino, quello è il pin numero 1, gli altri pin fino al numero 8 si contano in senso antiorario. Lo schema è così composto:
pin 4 gnd
pin 8 vcc
pin 6 spk
come speaker ho adoperato un comune piezo elettrico
l'alimentazione è a 3 Volt con una 2032
lo scketch che ho caricato sull'attiny è questo qui sotto,
(come sempre prima sparare il bootloade, se restituisce errore riprovare all'inifinito, l'attino è impostato a 8mega)
___________________________________________________________
const int Note_C = 239;
const int Note_CS = 225;
const int Note_D = 213;
const int Note_DS = 201;
const int Note_E = 190;
const int Note_F = 179;
const int Note_FS = 169;
const int Note_G = 159;
const int Note_GS = 150;
const int Note_A = 142;
const int Note_AS = 134;
const int Note_B = 127;
int Speaker = 1;
void setup()
{
pinMode(Speaker, OUTPUT);
}
void loop()
{
playTune();
delay(10000);
}
void TinyTone(unsigned char divisor, unsigned char octave, unsigned long duration)
{
// TCCR1 = 0x90 | (8-octave); // for 1MHz clock
TCCR1 = 0x90 | (11-octave); // for 8MHz clock
OCR1C = divisor-1; // set the OCR
delay(duration);
TCCR1 = 0x90; // stop the counter
}
// Play a scale
void playTune(void)
{
TinyTone(Note_G, 4, 500);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_G, 4, 500);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_G, 4, 500);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_DS, 4, 375);//RED
TinyTone(Note_DS, 1, 50);
TinyTone(Note_AS, 4, 125);//LAD
TinyTone(Note_AS, 1, 50);
//*********
TinyTone(Note_G, 4, 500);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_DS, 4, 375);//RED
TinyTone(Note_DS, 1, 50);
TinyTone(Note_AS, 4, 125);//LAD
TinyTone(Note_AS, 1, 50);
TinyTone(Note_G, 4, 1000);//SOL
TinyTone(Note_G, 1, 50);
//****************************
TinyTone(Note_D, 5, 500);//RE
TinyTone(Note_D, 1, 50);
TinyTone(Note_D, 5, 500);//RE
TinyTone(Note_D, 1, 50);
TinyTone(Note_D, 5, 500);//RE
TinyTone(Note_D, 1, 50);
TinyTone(Note_DS, 5, 375);//RED
TinyTone(Note_DS, 1, 50);
TinyTone(Note_AS, 4, 125);//LAD
TinyTone(Note_AS, 1, 50);
//******
TinyTone(Note_G, 4, 500);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_DS, 4, 375);//RED
TinyTone(Note_DS, 1, 50);
TinyTone(Note_AS, 4, 125);//LAD
TinyTone(Note_AS, 1, 50);
TinyTone(Note_G, 4, 1000);//SOL
TinyTone(Note_G, 1, 50);
//*****
TinyTone(Note_G, 5, 500);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_G, 4, 375);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_G, 4, 125);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_G, 5, 500);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_FS, 5, 375);//FAD
TinyTone(Note_FS, 1, 50);
TinyTone(Note_F, 5, 125);//FA
TinyTone(Note_F, 1, 50);
//*****
TinyTone(Note_E, 5, 125);//MI
TinyTone(Note_E, 1, 50);
TinyTone(Note_DS, 5, 125);//RE
TinyTone(Note_DS, 1, 50);
TinyTone(Note_E, 5, 250);//MI
TinyTone(Note_E, 1, 250);
TinyTone(Note_GS, 4, 250);//SOLDIESI UN OTTAVO
TinyTone(Note_GS, 1, 50);
TinyTone(Note_CS, 5, 500);//DODIESIS
TinyTone(Note_CS, 1, 50);
TinyTone(Note_C, 5, 375);//DO
TinyTone(Note_C, 1, 50);
TinyTone(Note_B, 4, 125);//SI
TinyTone(Note_B, 1, 50);
//******
TinyTone(Note_AS, 4, 125);//LAD
TinyTone(Note_AS, 1, 50);
TinyTone(Note_A, 4, 125);//LA
TinyTone(Note_A, 1, 50);
TinyTone(Note_AS, 4, 125);//LAD
TinyTone(Note_AS, 1, 375);
TinyTone(Note_DS, 4, 250);//MID
TinyTone(Note_DS, 1, 50);
TinyTone(Note_FS, 4, 500);//FAD
TinyTone(Note_FS, 1, 50);
TinyTone(Note_DS, 4, 375);//MID
TinyTone(Note_DS, 1, 50);
TinyTone(Note_FS, 4, 125);//FAD
TinyTone(Note_FS, 1, 50);
//*******
TinyTone(Note_AS, 4, 500);//LAD
TinyTone(Note_AS, 1, 50);
TinyTone(Note_G, 4, 375);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_AS, 4, 125);//LAD
TinyTone(Note_AS, 1, 50);
TinyTone(Note_D, 5, 1000);//LAD
TinyTone(Note_D, 1, 50);
//RIPRESA
//*****
TinyTone(Note_G, 5, 500);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_G, 4, 375);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_G, 4, 125);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_G, 5, 500);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_FS, 5, 375);//FAD
TinyTone(Note_FS, 1, 50);
TinyTone(Note_F, 5, 125);//FA
TinyTone(Note_F, 1, 50);
//*****
TinyTone(Note_E, 5, 125);//MI
TinyTone(Note_E, 1, 50);
TinyTone(Note_DS, 5, 125);//RE
TinyTone(Note_DS, 1, 50);
TinyTone(Note_E, 5, 250);//MI
TinyTone(Note_E, 1, 250);
TinyTone(Note_GS, 4, 250);//SOLDIESI UN OTTAVO
TinyTone(Note_GS, 1, 50);
TinyTone(Note_CS, 5, 500);//DODIESIS
TinyTone(Note_CS, 1, 50);
TinyTone(Note_C, 5, 375);//DO
TinyTone(Note_C, 1, 50);
TinyTone(Note_B, 4, 125);//SI
TinyTone(Note_B, 1, 50);
//******
TinyTone(Note_AS, 4, 125);//LAD
TinyTone(Note_AS, 1, 50);
TinyTone(Note_A, 4, 125);//LA
TinyTone(Note_A, 1, 50);
TinyTone(Note_AS, 4, 125);//LAD
TinyTone(Note_AS, 1, 375);
TinyTone(Note_DS, 4, 250);//MID
TinyTone(Note_DS, 1, 50);
TinyTone(Note_FS, 4, 500);//FAD
TinyTone(Note_FS, 1, 50);
TinyTone(Note_DS, 4, 375);//MID
TinyTone(Note_DS, 1, 50);
TinyTone(Note_FS, 4, 125);//FAD
TinyTone(Note_FS, 1, 50);
//****
TinyTone(Note_G, 4, 500);//SOL
TinyTone(Note_G, 1, 50);
TinyTone(Note_FS, 4, 375);//FAD
TinyTone(Note_FS, 1, 50);
TinyTone(Note_AS, 4, 125);//LAD
TinyTone(Note_AS, 1, 50);
TinyTone(Note_G, 4, 1000);//SOL
//TinyTone(Note_G, 1, 50);
}
Nessun commento:
Posta un commento