Styra lysrör med en laserpekare och en Arduino (3 / 4 steg)
Steg 3: Testa skiss och Design Notes
I det här steget jag ska tala om några av prövningar och vedermödor kommer att att jag stötte på vägen, och hur jag arbetat igenom dem, i hopp att det vara användbart. Föll fritt att hoppa till nästa steg om vetenskap innehåll är inte din sak :-)Det första steget var att avgöra om du vill använda kapacitiv avkänning eller resistiv avkänning. Resistiv sensing ansluter sensorn via ett motstånd till en av de analoga stift och gör analogRead och jämföra mot en tröskel. Detta är enklast att genomföra, men tar massor av kalibrering.
Teorin av kapacitiv avkänning är att när omvänd partisk (- till den + bly och vice versa), en LED kan inte aktuella att flöda, men elektronerna kommer att samla på ena sidan och lämna den andra sidan, effektivt ladda en kondensator. Ljuset faller på LED på den frekvens som den avger normalt kommer faktiskt orsaka en smal ström till flöde, som urladdar denna kondensator.
Så om vi debitera LED "kondensatorn" och räkna hur lång tid det tar för att fullgöra genom en resistor, få vi en ungefärlig uppfattning om hur mycket ljus faller på LED. Detta fungerade faktiskt för att vara mer tillförlitliga över olika enheter, och även fungerar för phototransistors! Eftersom vi inte gör en exakt lumen mätning och laserpekarens bör visas mycket ljusare än omgivande, leta vi bara efter en thresholded ansvarsfrihet tid.
Den andra viktiga delen av detta äventyr felsökning. För de som känner till programmering icke-inbäddade system, är en populär metod att lägga till print uttalanden vid kritiska punkter i koden. Detta gäller även till inbyggda system, men när varje mikrosekund räknas, hur lång tid till Serial.write ("x är"); Serial.writeln(x); är faktiskt ganska betydande, och du kan missa en hel del evenemang i processen. Så kom ihåg att alltid sätta dina print uttalanden utanför kritiska loopar, eller helst du förväntar dig en händelse. Ibland blinkar en LED är nog att du vet du att en viss punkt i koden.