Stap 5: Kenmerken van de Arduino schets
Schets is omgebouwd tot object-georiënteerde stijl
Waarom is dit gebeurd?
Mijn reden: omdat het is leuk om te leren van de dingen, en Arduino is alles over leren.
De technische reden: omdat nadat u hebt uw schets geconverteerd in aparte, onderdelen objectgeoriënteerde, het is makkelijker te onderhouden - en deze 'code componenten' beschikbaar zijn voor andere toepassingen - worden gebracht bijvoorbeeld, kunt u hen in de andere schetsen.
(Opmerking: de gebruikelijke term voor dit object georiënteerde componentbenadering is 'inkapseling'.)
Lijst van schets functies:
KeyboardOO heeft een aantal functies. (Studie van de schets om te zien hoe deze functies werden geïmplementeerd.)
-Het maakt gebruik van een TFT kalibratieroutine voor het touchscreen. Deze routine is ontleend aan de Adafruit voorbeeld schets 'Op--Off Switch'.
-Het heeft touch-screen toetsen en knoppen waarmee u kunt spelen noten en muzikale octaven wijzigen. Een volledige 7 octaven zijn beschikbaar.
-Het heeft een routine die bewaakt de status verandert - of een belangrijke touch is gewijzigd sinds de vorige lezing. Dit is noodzakelijk om ervoor te zorgen dat een enkele aanraking, ongeacht de duur, verandert alleen het octaaf eenmaal (dat wil zeggen het vermijdt springen octaven).
-Het zet een array van muzieknoten en hun frequenties van de eerste octaaf. Muzikale frequenties verhogen met een factor 2 tot de macht n, waarbij n het nummer van de geselecteerde octave is. (Zie http://en.wikipedia.org/wiki/Octave ). Te maken van deze frequentie aanpassing hebben we gebruik gemaakt van de exploitant van de bitshift ">>" ( http://arduino.cc/en/Reference/Bitshift ). U kunt ook de functie van de macht "pow()" ( http://arduino.cc/en/Reference/Pow ) te bereiken hetzelfde resultaat.
-De octaaf knoppen en toetsen op het toetsenbord zijn omgezet naar object-georiënteerde programmaonderdelen die teken de toetsen en knoppen op het scherm, en die controleren of een toets of knop heeft geraakt.