Stap 10: Arduino Sketch geplukt, behalve
/*
* Versie 2.5 M
* Voor ATTiny85 16Mhz
*/
#include "pitches.h"
Deze regel bevat het tabblad worp in de code. Het tabblad pitch.h bevat de verschillende toonhoogte - we zullen noemen ze "NOTE" van nu af aan.
int melodie [] {} =
NOTE_F7, NOTE_G4, NOTE_A2};
Deze matrix "melody" bevat de toelichting die zal worden gespeeld en de volgorde waarin die ze worden gespeeld in. Ik experimenteerde met notities van 2 tot en met 5. Ik voelde voor mijn project 3 noten een goede warble of piepende ruis voor de sonics die ik maakte gemaakt. Ik had een vriend van de muzikant analyseren het echte geluid van de TV-show en hij vertelde me dat de overheersende notitie was in de schaal van autoG. Gelieve te knoeien met deze array door toe te voegen en het verwijderen van notities, het wijzigen van de notities en het organiseren van de volgorde totdat u het geluid dat je wilt krijgen.
int noteDurations [] {9,12,7} =;
Opmerking de duur. Muzieknoten zijn meestal goede nota, half note, kwartnoot en 8th opmerking. Deze omgeving wordt voorgesteld in de code als 1,2,4,8 wat betekent 1 seconde gedeeld door 1,2,4 of 8. Echter zijn wij niet het maken van muziek. We maken een warbly, vrolijke lawaai. Dus speelde ik met de duur van de niet-conventionele Opmerking zoals notities duur 1/15th voor een tweede lange of 1/6th - of 1/12th. De matrix "noteDuration" onder staten die NOTE_F7 zal worden gespeeld op 1/9th duur, NOTE_G4 speelt voor 1/12th, en NOTE_A2 bij 1/7th. De duur van een opmerking moet worden opgegeven voor elke noot in de "melody"-matrix. Spelen met noteDuration om het juiste ritme voor uw sonic.
int x = 0;
Dit is gewoon een variabele moet worden gebruikt als een teller
int led1 = 3;
int led2 = 2;
VOID Setup {}
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
}
Deze twee variabelen definiëren de pincodes voor onze LED-uitgang. Als u echt wilde u twee meer LEDs kunt toevoegen, aangezien niet alle van de pinnen op de ATTiny85 wordt gebruikt. Maar ik denk dat twee is genoeg.
void loop {}
Hoofdlus. Met elke punt via de hoofdlus, is slechts één noot gespeeld na de opgegeven tijd gevolgd door een pauze (meer over pauzes hieronder).
Als (x < 5) {}
digitalWrite (led1, hoge);
digitalWrite (led2, laag);
x = x ++;
}
anders als (x < 7) {}
digitalWrite (led1, hoge);
digitalWrite (led2, hoge);
x = x ++;
}
anders als (x < 9) {}
digitalWrite (led1, laag);
digitalWrite (led2, hoge);
x = x ++;
}
else {}
x = 0;
}
In dit gedeelte definieert de LED knipperen patroon. Elke logica die u willen maken van het Knipoogje patroon dat u wilt gebruiken. De mijne gebruikt 'x' als een teller met een bereik van 0-10. Op de lagere bereik LED1 brandt en LED2 is uitgeschakeld. Klik vervolgens in het middelste bereik van "x" zowel LEDs zijn op. Op het bovenste bereik voor "x" is LED1 OFF en LED2 is op.
voor (int thisNote = 0; thisNote < 3; thisNote ++) {}
int noteDuration = 1000/noteDurations [thisNote];
De bovenstaande code gaat door en speelt de noten in de melodie matrix één nota tegelijk. Het deel waar het zegt "thisNote < 3" de waarde moet gelijk zijn aan het aantal notities in de matrix. Dus als "melody" vier noten dan heeft "thisNote < 4". De rest van de cijfers van de code uit de opmerking duur in milliseconden.
Toon (4, melody[thisNote],noteDuration);
Dit is waar de Toon is eigenlijk uitgedraaide aan de spreker. In dit voorbeeld is de uitvoer op pin 4.
int pauseBetweenNotes = noteDuration *. 14;
delay(pauseBetweenNotes);
noTone(4);
Een pauze tussen notities moet worden ingevoegd anders de notities tegelijk uitvoeren en het klinkt als een slechte gierende geluid. De duur van de pauze kan een vaste hoeveelheid tijd (zoals 1/4 seconde tussen elke noot) maar moet gebaseerd zijn op de duur van de opmerking om het goed recht. De onderstaande code stelt de pauze tijd als een percentage van de duur van de opmerking. Spelen met de decimale waarde te krijgen van een goede pauze tijd tussen notities. Ik vond een waarde tussen.09-.21 als een goede hoeveelheid pauze. De laatste regel "noTone(4)" uitgeschakeld in de output naar pin 4.
}
}
EINDE van code