Innehållsförteckning:

Kontrollera lysrör med en laserpekare och en Arduino: 4 steg
Kontrollera lysrör med en laserpekare och en Arduino: 4 steg

Video: Kontrollera lysrör med en laserpekare och en Arduino: 4 steg

Video: Kontrollera lysrör med en laserpekare och en Arduino: 4 steg
Video: Оборудование электронщика, от начинающего до профи. Моя подборка 2024, November
Anonim
Kontrollera lysrör med en laserpekare och en Arduino
Kontrollera lysrör med en laserpekare och en Arduino
Kontrollera lysrör med en laserpekare och en Arduino
Kontrollera lysrör med en laserpekare och en Arduino

Några medlemmar i Alpha One Labs Hackerspace gillar inte det hårda ljuset från fluorescerande armaturer. De ville ha ett sätt att enkelt kunna styra de enskilda armaturerna, kanske med en laserpekare? Jag fick rätt på det. Jag grävde fram en hög med solid state -reläer och tog med dem till labbet. Jag köpte en Arduino Duemilenova och demonstrerade användningen av LED Blink -exempelskissen för att faktiskt blinka en halogenlampa. Jag hittade lite information om hur man använder lysdioder som ljussensorer [1] och en Arduino -skiss som visar tekniken [2]. Jag fann att lysdioderna inte var tillräckligt känsliga nog - lasern fick peka rakt in i den ljusemitterande delen eller lysdioden skulle inte registrera. Så jag bytte till fototransistorer. De är mycket känsligare och över ett större frekvensområde. Med rätt filter över transistorn kan jag göra den mer känslig för rött ljus, och från ett mycket större antal vinklar till sensorn. FRISKRIVNING OCH VARNING: Denna instruktör handlar om nätspänning vid 120 eller 240 volt. Använd sunt förnuft om du bygger den här kretsen - om du tvivlar på något, fråga någon som vet. Du är ansvarig för din (och andras) säkerhet och efterlevnad av lokala elektriska koder.

Steg 1: Skissen och lite teori

Jag antar att du vet hur du driver din Arduino och får en skiss sammanställd och laddad. För varje lampa använder jag telefonkabel, eftersom den är billig, har fyra ledare, och jag hade ett gäng som låg i alla fall. Jag använde rött för vanligt +, svart för mark, grönt för fototransistorsamlaren och gult för relästyrningen +. En fototransistor passerar en mängd ström som varierar med mängden ljus som faller på den. Den analoga till digitala omvandlaren (ADC) i arduino mäter spänningen vid stiftet i förhållande till marken. Jag tittade på fototransistordatabladet och verifierade med en multimeter att transistorerna passerar 10mA vid fullt ljus. Med hjälp av Ohms lag är det cirka 500 ohm vid 5V, För att styra lamporna använde jag en solid state -relämodul. Dessa är relativt billiga vid det nuvarande betyget vi behövde, cirka $ 4 för upp till 4A. Var noga med att köpa relämoduler med en nollkorsningsdetektor, särskilt om du styr något induktivt, till exempel ett lysrör, en motor eller en väggvartstransformator. Att slå på eller stänga av dem var som helst men nollpunkten kan orsaka spänningspikar som i bästa fall kommer att minska livslängden på din apparat och i värsta fall starta en brand.

Steg 2: Anslutning av lamporna

Anslutning av lamporna
Anslutning av lamporna
Anslutning av lamporna
Anslutning av lamporna
Anslutning av lamporna
Anslutning av lamporna

Ta en titt i taket och bestäm var du ska montera Arduino -styrenheten. Kom ihåg att den kommer att behöva en 7-12v strömförsörjning. Klipp längder på telefonkabel (eller cat5 eller vad som helst) cirka två fot längre än avståndet från Arduino till varje ljus du vill styra. Ta en titt på anslutningen från kraftledningarna från strömställaren till ballasten. Du kanske kan beställa kontakter (Newark Electronics säljer Wago 930 -serien, vilket vi hade). Då behöver du inte klippa av befintliga ledningar och kan ta bort systemet om något går fel. Löd marken (svart) till reläingången -och kontrollen (gul) för reläingången + (färgkoden på bilden är annorlunda än vad jag satte på förstasidan, eftersom jag ändrade mig om vad som skulle vara vettigt). Lödda eller skruva på (beroende på ditt relä) den svarta (heta) tråden genom reläet. Se till att använda värmekrympning och eltejp! Skjut in de svarta ledningarna i dina kontakter och de vita (neutrala) och marken (gröna) är bara raka igenom från kontakt till kontakt. gå till Analog 0 (port C0) och allt svart till marken. Varje green (anod eller emitter) går till stift 8-13 (port B 0-5) och de gula trådarna går till stiften 2-7 (port D 2-7). Se till att de gröna och gula trådarna matchar, eftersom sensorn måste styra rätt relä! Om du lägger den gula i stift 2 går den gröna från samma armatur till stift 8.

Steg 3: Testa skiss- och designanteckningarna

I det här steget ska jag prata om några av de prövningar och svårigheter som jag stötte på under vägen, och hur jag arbetade igenom dem, i hopp om att det kommer att vara användbart. Blev fri att hoppa till nästa steg om Science Content inte är din grej:-) Det första steget var att bestämma om du vill använda kapacitiv avkänning eller resistiv avkänning. Resistiv avkänning är att ansluta sensorn genom ett motstånd till en av de analoga stiften och göra analogRead och jämföra mot en tröskel. Detta är enklast att implementera, men kräver mycket kalibrering. Teorin om kapacitiv avkänning är att vid omvänd förspänning (- till + ledningen och vice versa) kommer en LED inte att tillåta ström att flöda, men elektroner samlas på ena sidan och lämna den andra sidan och ladda effektivt en kondensator. Ljus som faller på lysdioden med den frekvens som den normalt avger kommer faktiskt att få en liten ström att flöda, vilket urladdar denna kondensator. Så om vi laddar LED -kondensatorn och räknar hur lång tid det tar att ladda ur genom ett motstånd får vi en grov uppfattning om hur mycket ljus som faller på lysdioden. Detta fungerade faktiskt för att vara mer tillförlitligt för olika enheter och fungerar till och med för fototransistorer! Eftersom vi inte gör en exakt lumenmätning och laserpekaren ska se mycket ljusare ut än omgivande, letar vi bara efter en tröskelvärde för urladdning. Den andra viktiga delen av detta äventyr är felsökning. För dem som är bekanta med programmering av icke-inbäddade system är en populär metod att lägga till utskriftsuttalanden vid kritiska punkter i koden. Detta gäller också för inbäddade system, men när varje mikrosekund räknas, kommer tiden till Serial.write ("x är"); Serial.writeln (x); är faktiskt ganska betydande, och du kan missa många händelser under processen. Så kom ihåg att alltid lägga dina utskriftsuttalanden utanför kritiska slingor, eller när som helst du förväntar dig en händelse. Ibland räcker det med att blinka med en lysdiod för att du ska veta att du kommit till en viss punkt i koden.

Steg 4: Lägga till webbkontroll

Lägger till webbkontroll
Lägger till webbkontroll

Om du tittade igenom skissen märkte du att jag också läste serieporten och agerade på några kommandon för enstaka tecken. 'N' -tecknet tänder alla lampor och' f 'släcker dem. Siffrorna '0'-'5' växlar tillståndet för ljuset som är anslutet till den digitala utgången. Så du kan enkelt kasta ihop ett CGI-skript (eller servlet eller vilken webbteknik som helst som flyter din båt) för att fjärrstyra dina lampor. Serial.writes matas också ut när ett ljus ändras från användarinmatning, så sidan kan ha Ajax -uppdateringar för att visa det aktuella tillståndet. En annan sak jag ska experimentera med är att upptäcka rörelse i ett rum. Människor reflekterar ljus, och när de rör sig kommer det ljuset att förändras. Det är "delta" -delen av de skrivuttalanden jag har.

Rekommenderad: