Stap 5: Software/programmering
Raken van de logica
Een van de kenmerken van de "cool-naar-have" Ik wilde voeren was de capacitieve touch-switch. Ik nooit gewerkt met dit soort invoer vóór, maar nogmaals de arduino libraries maakte het echt eenvoudig. U kunt de bibliotheek ik hier gebruikte downloaden: http://playground.arduino.cc//Main/CapacitiveSensor?from=Main.CapSense . Uitsluitend uittreksel zij en exemplaar het aan uw omslag van de bibliotheken in uw Arduino directory installeren.
Ik heb gewoon latching functionaliteit toegevoegd zodat de toestand van het systeem zou het omkeren van een elk touch & release.
Het uitgangspunt van het gevoel van aanraking is eenvoudig genoeg. De IC drijft de hoge Tx-pin en keer vervolgens hoe lang het duurt voor de Rx-pin om hoog gaan als goed. Als u uw vinger dichter te aan de aanraking van de metalen plaat brengen, voegt u capaciteit aan de lijn en de tijd die nodig is voor Rx te gaan hoge stijgingen. Door te spelen met de drempelwaarden kunt u de code om te werken met uw sensor afstemmen.
GELEID Randomizing
Ik vond enkele manieren van het slimme en sommige niet zo slim van randomizing het vervagen van de LED's. Echter, zelfs de beste iemands vond ik had twee belangrijke gebreken in mijn gedachten:
1. de LED's tijd teveel in overgang en op wit
2. af en toe zou de drie kanalen passeren de waarde 0, wat leiden een korte, maar erg vervelend flikkering van duisternis tot zou.
Om te voorkomen dat deze en andere kleine klachten die heb ik ervoor gekozen om te gaan met mijn eigen ontwerp. Wat ik deed was in plaats van de 3 kanalen randomizing, ik heb een matrix die 13 verschillende kleuren die ik vond en vervolgens overgestapt soepel tussen willekeurige posten in die matrix gemaakt. Deze manier ik was kunnen voorkomen dat de LED's op hetzelfde moment uitschakelen, opgeven hoe snel ze overgestapt en hoe lang ze "rusten" op elke kleur, en ik kon de bijstelling van bepaalde kleuren die ik graag meer.
Zodra ik was blij met de code op de Arduino, ik gewoon de definities van de pin om te corresponderen met de ATTINY veranderd, de IC met behulp van de Arduino geprogrammeerd (zie link: http://hlt.media.mit.edu/?p=1695), en zet dan de ATTINY terug op mijn breadboard.
De bijgevoegde code heeft een heleboel debugging print verklaringen en sommige oudere functionaliteit die ik heb verwijderd, maar ik wilde commentaar grondig. Laat me weten of u vragen of opmerkingen hebt!
Zie programmacode verbonden (ik moest de arduino Ino Hernoem naar een .txt, want het was niet laat me anders uploaden)