Inomhus termometer med både LCD och "Analog" avläsning med NeoPixels (3 / 4 steg)
Steg 3: Skriva koden
Kopplat till detta är en fil med Arduino koden. Det kan delas i tre delar.
Först måste den huvudsakliga metoden som går från rad 1 till linje 61 och innehåller setup, loop, och någon import, variabler och funktionsanrop som du kan behöva. Det är skelettet som sätter all kod tillsammans för att göra det funktion. Du kommer att vilja hämta och importera den NeoPixel (finns här) och det LiquidCrystal biblioteket som bör inkluderas redan med Arduino programvaran.
För det andra har du funktionen "dubbla tempMeasure" start från line 64 och kommer fram till 79. Detta är den kod som tar spänningen att TMP36 är läsning och översätter det, med några snabba matte, till en temperatur avläsning och sedan returnerar den avläsningen till den huvudsakliga metoden. Det är där det är viktigt att notera varför vi har den TMP36 bifogas den 3.3V och AREF stift. Hur TMP36 fungerar är det tar en spänning mellan två punkter som, på grund av en förändring i motstånd från temperatur, kan sedan ta mycket mycket mycket exakt temperaturavläsningar. I kod vi har det till 2 decimaler men om du ville du kunde få fullt 64-bitars Decimal som skulle gå in i tusendelar, tiotusendels, hundra tusendelar, vad har du. Denna avläsning vore intressant men också lite otympligt vid tillämpningen av detta projekt. Att spänningen behandlingen sedan matas genom en omvandling som dividerar med 1024 (10 bitar, mappningen Arduino använder) och sedan omvandlar som med 10 mV per grad med en 500 mV offset. Vad som returneras är en otroligt exakt temperatur läsning i Celsius som sedan omvandlas till Fahrenheit i den huvudsakliga metoden.
För det tredje har du funktionen "Ogiltig pixelCasef" det går från fodra 81 till 158. Detta är den kod som styr den NeoPixel avläsningen med en serie om Else-satser för loopar som fungerar i ~ 10 (för buller tolerans) grad Fahrenheit steg att ändra färg och höjd i pixlar lit. Det är där du kan ändra koden för att bete sig annorlunda med olika antal pinnar. Så här anpassar gå du bara till var och en av dessa för loopar och byta ut siffrorna. Numret i loop-programsats (dvs för (int jag = 0; jag < = 16; i ++)) är det nummer du ändra antalet pixlar lit och numret i kroppen av den for-loop (dvs. strip.setPixelColor (i, strip. Färg (0,0,255));) ändrar färg pixlar lit.
Kom ihåg att ta en riktigt bra titt på koden till fullo förstå vad som händer innan du kompilerar det.