Munny Touch Mood Light och högtalare (5 / 8 steg)
Steg 5: Programmering
Touch logik
En "cool-att-ha" funktioner jag ville genomföra var växeln kapacitiv touch. Jag hade aldrig arbetat med denna typ av input innan, men återigen arduino biblioteken gjorde det verkligen helt enkelt. Du kan hämta biblioteket jag använde här: http://playground.arduino.cc//Main/CapacitiveSensor?from=Main.CapSense . Bara extrahera den och kopiera den till mappen Bibliotek i din Arduino installationskatalog.
Jag la helt enkelt låsning funktionalitet så att staten av systemet skulle Invertera en varje touch & släppa.
Utgångspunkten för den beröring meningen är enkel nog. IC driver Tx pin hög och sedan gånger hur lång tid det tar för Rx stift att gå högt också. Som du tar ditt finger närmare till metall touch plattan, Lägg kapacitans till linjen och den tid det tar för Rx att gå höga ökningar. Genom att spela med tröskelvärdena kan du finjustera koden för att arbeta med din sensor.
LEDDE randomisera
Jag hittade några smarta och några inte så smart sätt att randomisera blekning av lysdioderna. Men även bästa en jag hittade hade två huvudsakliga brister i mitt sinne:
1. LED tillbringade för mycket tid i övergången och på vit
2. ibland skulle de tre kanalerna passera genom värdet 0 som skulle orsaka en kort, men mycket irriterande flimmer av mörker.
För att undvika dessa och andra mindre klagomål valde jag för att gå med min egen design. Vad jag gjorde var i stället för randomisera 3 kanaler, skapade jag en matris som innehöll 13 olika färger som jag gillade och sedan övergått smidigt mellan random poster i arrayen. Detta sätt jag var kunna undvika alla lampor stänga av på samma gång, ange hur snabbt de lämnat över och hur länge de "vilade" på varje färg, och jag kunde förflytta vissa färger som jag gillade mer.
När jag var nöjd med koden på Arduino, jag helt enkelt bytt stift definitionerna för att motsvara ATTINY, programmerad IC genom att använda Arduinoen (se länk: http://hlt.media.mit.edu/?p=1695), och sedan sätta ATTINY tillbaka på min skärbräda.
Den bifogade uppförandekoden har en hel del felsökning print uttalanden och några äldre funktionerna som jag tog bort men jag försökte kommentera grundligt. Låt mig veta om du har några frågor eller kommentarer!
Se bifogade-kod (jag var tvungen att byta namn på arduino .ino till en .txt eftersom det inte var att låta mig ladda upp annars)