Stap 4: Arduino Code
Op dit punt, ik hoop dat je de Arduino-compiler ik u over eerder vertelde. Anyway, hier zal ik mijn gefinaliseerde code voor de hele muziek box mechanisme. Weet dat er geen wijzigingen worden aangebracht in de code voor het moeten overstappen op de instrumentale aanpassing.
Ik zal ook mijn bestand dat hielp me leren hoe te schrijven van eenvoudige muzikale jingles met de tone-functie. In degene die ik heb gemaakt, ontwikkeld ik het lied Fur Elise. U kunt het veranderen van tempo, hoeveel merkt u wilt, hoe lang u wilt, precies welke frequentie elke noot is, enz. Je hebt een heleboel controle, maar dat betekent ook dat er is vrij een beetje om te verknoeien. Dus ik zal worden op voortbordurend, wat vreselijk mis kan gaan zodat u niet het gevoel van mijn verdriet.
Alleen in geval u de Arduino codebestanden niet openen, ik gehecht bepaalde documenten die je gewoon kopiëren en plak de code uit in plaats daarvan. Het moet werken op dezelfde manier. (De FinalFinalFinal_attempt2 = gefinaliseerde Arduino Code... Ze zijn het zelfde ding dus niet verward.)
Dus ga ik u laten weten hoe om te veranderen wat u moet veranderen om andere liederen en andere leuke dingen mee doen.
Ik ga beginnen met de Arduino-Code voltooid deel, want dat is onze belangrijkste schets hier immers (ik zal vragen u de code opent terwijl je dit leest, zodat u wat ik zien kunt over spreek). Aan de bovenkant van de schets ziet u pinnen voor uw stepper, een vertragingstijd voor de stepper, sensor-waardes voor de foto-weerstanden en de pin voor uw piezo. Die allemaal hoeft niet noodzakelijkerwijs worden aangeraakt. Maar net onder die pin voor de piezo "const int buzzerPin = 5;", ziet u alle belangrijke getallen voor het muzikale gedeelte.
int duur kunt wijzigen van de duur van de biljetten en hoe lang ze zijn stak. dat wil zeggen hoe lang elke lus duurt om proces.
int drempel kan je de hoeveelheid licht inname die nodig is voor de foto weerstanden te activeren en het spelen van een notitie wijzigen. Hoe hoger het gaat, hoe meer licht ze nodig hebben om te activeren. Als u wijzigen van deze waarde wilt, omdat haar niet reageren op het licht u nodig, kunt u controleren de seriële print lezingen en controleren welke hoeveelheid van de weerstand die ze lezen op een basisniveau zonder licht, waarna met licht. Vervolgens kunt u de drempel op een bepaald niveau tussen die plaatsen.
int photoResistPins [6] = {A0, A1, A2, A3, A4, A5}; Theres een paar dingen die u zult willen hier op te merken. Eerst en vooral, weet ik niet zeker of u een meer dan zes foto weerstanden voor dit project kunt als u van een Arduino UNO gebruikmaakt. Om de doodeenvoudige reden dat de weerstand van een foto van een analoge pin reeksen en er niet genoeg analoge pinnen op de UNO. Misschien met een micro-controller met meer van hen kon maken we nog meer mogelijkheden van de opmerking, maar vanaf dit project met een UNO, zullen we gebruik maken van slechts zes weerstanden. Maar toch, dat laat ons met iets ongeveer 30 tot 40 notities of meer. Zijn nog steeds vrij goed. Dus is deze functie gonna be degene waar u de foto weerstanden hun eigen PIN toewijzen. De A-middelen zijn een analoge pin op de Arduino.
int onValue [6] = {1, 2, 4, 8, 16, 32}; Deze regel wordt de bool-waarden voor elke combinatie van notities alleen toegewezen zodat de latere code kan bepalen welke foto weerstanden worden geactiveerd. Niet moeilijk dit tenzij u toe te voegen of af te trekken foto weerstanden voor sommige reden.
Dus in de void setup nodig wij echt niet om iets te veranderen omdat er niets er die kan worden gewijzigd is om de nieuwe notities of iets. Dus we gewoon niet de moeite mee. Echter in de leegte lus we over de zaak van de schakeloptie raken kan functie die gaat door en bepaalt welke opmerking om te spelen op basis van de input die het ontvangt. Moet u een lange lijst van dingen genaamd "geval 1... case2... zaak3... enz" die detail elke mogelijke Opmerking frequentie gebaseerd op welke foto weerstanden worden blootgesteld aan het licht. Hier kunt u frequenties van notities evenals hoe vele notities er beschikbaar om te worden gespeeld zijn, evenals welke combinaties van foto weerstanden vereist voor elke noot zijn.
BELANGRIJK: Vergeet niet dat coderegel omhoog bij de bovenkant waar we bool-waarden aan elke foto weerstand toegewezen? Dit is waar het wordt belangrijk. Voor elke combinatie van de opmerking moeten we samen de bool waarden toevoegen voor elke foto weerstand die we moet worden geactiveerd om te kunnen spelen de frequentie in dit specifieke geval. Zo bijvoorbeeld het verschil tussen "case 1" en "geval 7" is dat "zaak 1" is slechts de eerste foto weerstand (A0 die bool 1 waarde) blootgesteld aan licht terwijl "geval 7" is een combinatie van drie foto weerstanden (A0, A1 en A2 = bool waarden van 1, 2 en 4). Als je dat optelt had een waarde van 7. Thats waarom haar "zaak 7" en wordt alleen geactiveerd wanneer deze drie foto weerstanden worden blootgesteld aan het licht.
Weten allemaal dat u kunt gaan en meer Opmerking combinaties maken door verschillende combo's van de bool-waarden voor de weerstand van elke foto toe te voegen. U kunt ook de waarde van de frequentie net onder het wijzigen.
Dat is alles wat die u echt nood voor kopzorg zowat in deze schets dus veel plezier met het te experimenteren!
En gewoon voor de lol ik zal ook mijn bont Elise-schets die u gebruiken kunt om gewoon een piezo-Speel een lied voor u. Daarin kunt u opgeven hoeveel notities u wilt, van wat u wilt dat de notities, hoe lang u wilt dat het nummer te zijn in termen van frequentie beats, de gewenste tempo, en het laat u het nummer in één lange regel code te schrijven. zoals gezien op de top. Uiteindelijk begon ik schakelen tussen kapitaal en kleine letters, omdat ze als verschillende variabelen rekenen kunnen. Hebben sommige plezier spelen met dat ook. Ik denk aan de slag op dat ik nam basiscode uit de bibliotheek van de Arduino voor voorbeelden. U kunt dit vinden door te gaan naar bestand, voorbeelden, dan 02.Digital, en je ziet Toon functies aan de onderkant.