Stap 4: Programmeren van de Arduino
Voor de programmering deel van ons project schreven we een programma van de Arduino voor:
- automatisch instellen van temperatuur en helderheid van de LED op basis van de tijd van de dag
- Laat de gebruiker de huidige uur en de minuut met behulp van het touchscreen instellen en bijwerken van de real-time klok
- de huidige tijd tonen op het belangrijkste menu
- Laat de gebruiker opgeven wanneer ze wakker worden met behulp van het touchscreen
- Laat de gebruiker aanpassen het minimale en maximale kleurtemperatuur en de helderheid van de LED met behulp van het touchscreen
- opslaan van de instellingen van de gebruiker op van de Arduino EEPROM zodat ze kunnen worden opgehaald nadat de macht wordt verbroken
Onze code is afhankelijk van de volgende bibliotheken:
- de Adafruit GFX bibliotheek (meer info hier)
- de bibliotheek van Adafruit ILI9341 (dit is specifiek voor het scherm we gebruikten - iets meer info hier)
- de ILI9341_due bibliotheek (dit toegevoegd aan de bibliotheek van Adafruit beschikt en is aanzienlijk sneller - meer info hier)
- de bibliotheek van Adafruit FT6206 (dit is specifiek voor de capacitieve touchscreen we gebruikten - meer info hier)
- de SdFat bibliotheek (meer info hier)
- de Adafruit RTClib (meer info hier)
- en een hele hoop van Arduino standaard bibliotheken (meer info hier)
Merk op dat de ILI9341_due-bibliotheek is ontworpen voor de inachtneming van de Arduino. Terwijl het vrij snel op Arduinos minder krachtig dan de vervaldatum wordt uitgevoerd, kan het nog steeds een heleboel ruimte afhankelijk van welke functies u duren. Helaas, dit veroorzaakt onze code vereist ongeveer 44KB van flash. Dit betekent dat het zal alleen past op de Arduino Due, Mega en nul. Echter als u onze code voor het gebruik van een verschillende grafische bibliotheek wijzigt kunt, moet dan het passen op bijna elke Arduino (dit niet zou triviaal, though).
Als u gebruiken van de code die we voor ons project willen zou schreven, kunt u het bestand als bijlage hieronder downloaden. Opmerking dat we de CS, D/C en CCS pinnen op het aanraakscherm naar verschillende pinnen op de Arduino aangesloten dan reeksen die zijn opgegeven in de Adafruit begeleiden (terwijl de plaatsing goed op de Uno werkt, het is minder handig op de Mega). U kunt bijwerken welke pinnen worden gebruikt door de code door het veranderen van de variabelen van het CS_PIN, DC_PIN en CCS_PIN vinden op rond lijn 40. U moet ook de speciale bitmap downloaden op voorwaarde dat (die moeten worden omgedoopt tot "colors.bmp"), kopieert u het naar een MicroSD-kaart, en de MicroSD-kaart in de touchscreen voor alles om te werken. Merk op dat de voorvertoning van de afbeelding kan kijken raar vanwege de speciale indeling die we gebruikt (Zie de sectie "Het laden van afbeeldingen van een SD-kaart" hier).
We zouden graag bedanken Tanner Helland voor het ontwikkelen van code kleurentemperaturen omzetten in RGB-waarden, die ons behoed moetend generaliseer zelf. U vindt zijn post over het onderwerp hier.