Innholdsfortegnelse:

Kontroller lysrør med en laserpeker og en Arduino: 4 trinn
Kontroller lysrør med en laserpeker og en Arduino: 4 trinn

Video: Kontroller lysrør med en laserpeker og en Arduino: 4 trinn

Video: Kontroller lysrør med en laserpeker og en Arduino: 4 trinn
Video: MKS Gen L - внешний драйвер 2024, November
Anonim
Kontroller lysrør med en laserpeker og en Arduino
Kontroller lysrør med en laserpeker og en Arduino
Kontroller lysrør med en laserpeker og en Arduino
Kontroller lysrør med en laserpeker og en Arduino

Noen få medlemmer av Alpha One Labs Hackerspace liker ikke det harde lyset som fluorescerende armaturer gir. De ønsket en måte å enkelt kunne kontrollere de enkelte armaturene, kanskje med en laserpeker? Jeg fikk rett på det. Jeg gravde frem en haug med solid state -reléer og tok dem med til laboratoriet. Jeg kjøpte en Arduino Duemilenova og demonstrerte bruken av LED Blink -eksempelskissen for å faktisk blinke en halogenlampe. Jeg fant litt informasjon om bruk av lysdioder som lyssensorer [1] og en Arduino -skisse som demonstrerte teknikken [2]. Jeg fant ut at lysdiodene ikke var nær følsomme nok - laseren måtte peke rett inn i den lysemitterende delen, eller lysdioden ville ikke registrere. Så jeg byttet til fototransistorer. De er mye mer følsomme, og over et bredere frekvensområde. Med det riktige filteret over transistoren kunne jeg gjøre det mer følsomt for rødt lys, og fra et mye større vinkelområde til sensoren. FORSKRIVELSE OG ADVARSEL: Denne instruksen omhandler nettspenning ved 120 eller 240 volt. Bruk sunn fornuft hvis du bygger denne kretsen - hvis du er i tvil om noe, spør noen som vet. Du er ansvarlig for din (og andres) sikkerhet og samsvar med lokale elektriske koder.

Trinn 1: Skissen og litt teori

Jeg antar at du vet hvordan du driver din Arduino, og får en skisse som er samlet og lastet inn. For hver lampe bruker jeg telefonkabel, siden den er billig, har fire ledere, og jeg hadde en haug liggende uansett. Jeg brukte rød for vanlig +, svart for bakken, grønn for fototransistorsamleren og gul for reléstyringen +. En fototransistor passerer en mengde strøm som varierer med mengden lys som faller på den. Den analoge til digitale omformeren (ADC) i arduinoen måler spenningen ved tappen i forhold til bakken. Jeg så på fototransistordatabladet og bekreftet med et multimeter at transistorene passerer 10mA ved fullt lys. Ved å bruke Ohms lov, er det omtrent 500 ohm ved 5V, For å kontrollere lampene brukte jeg en solid state relemodul. Disse er relativt billige med den nåværende vurderingen vi trengte, omtrent $ 4 for opptil 4A. Sørg for å kjøpe relemoduler med en nullovergangsdetektor, spesielt hvis du styrer noe induktivt, for eksempel et fluorescerende lys, en motor eller en veggvortertransformator. Hvis du slår dem på eller av hvor som helst, men nullpunktet, kan det føre til spenningsspenninger som i beste fall reduserer apparatets levetid og i verste fall starter en brann.

Trinn 2: Koble til lysene

Kabling av lysene
Kabling av lysene
Kabling av lysene
Kabling av lysene
Kabling av lysene
Kabling av lysene

Ta en titt i taket og bestem hvor du vil montere Arduino -kontrolleren. Husk at den trenger en 7-12v strømforsyning. Klipp lengder på telefonledningen (eller cat5 eller hva som helst) omtrent to fot lengre enn avstanden fra Arduino til hvert lys du vil kontrollere. Se på forbindelsen fra kraftledningene fra bryteren til ballasten. Du kan kanskje bestille kontakter (Newark Electronics selger Wago 930 -serien, det er det vi hadde). Da trenger du ikke kutte eksisterende ledninger og kan fjerne systemet hvis noe går galt. Lodde bakken (svart) til reléinngangen -, og kontrollen (gul) for å reléinngang + (fargekoden på bildet er forskjellig fra det jeg la på forsiden, siden jeg ombestemte meg om hva som ville være fornuftig). Lodd eller skru på (avhengig av reléet ditt) den svarte (varme) ledningen gjennom reléet. Sørg for å bruke varmekrymp og elektrisk tape! Skyv de svarte ledningene inn i kontaktene dine, og de hvite (nøytrale) og bakken (grønne) er rett gjennom fra kontakt til kontakt. Den andre enden av ledningene går til Arduino som følger: Alle de røde ledningene (vanlig katode eller oppsamler) gå til Analog 0 (port C0), og alt det svarte til bakken. Hver green (anode eller sender) går til pinne 8-13 (port B 0-5) og de gule ledningene går til pinnene 2-7 (port D 2-7). Sørg for at de grønne og gule ledningene stemmer overens, siden sensoren må kontrollere riktig relé! Hvis du setter den gule i pinne 2, går den grønne fra samme armatur til pinne 8.

Trinn 3: Testing av skisse- og designnotatene

I dette trinnet skal jeg snakke om noen av prøvelsene og prøvelsene jeg møtte underveis, og hvordan jeg jobbet gjennom dem, i håp om at det vil være nyttig. Gå fri til å gå til neste trinn hvis Science Content ikke er din greie:-) Det første trinnet var å bestemme om du skulle bruke kapasitiv sensing eller resistiv sensing. Resistiv sensing er å koble sensoren gjennom en motstand til en av de analoge pinnene og gjøre analogRead og sammenligne mot en terskel. Dette er enklest å implementere, men krever mye kalibrering. Teorien om kapasitiv sansing er at når den er omvendt forspent (- til + ledningen og omvendt), vil en LED ikke tillate strøm å strømme, men elektroner vil samle seg på den ene siden og forlate den andre siden, og lader effektivt en kondensator. Lys som faller på LED -en med den frekvensen den normalt sender ut, vil faktisk føre til at en liten strøm flyter, som tømmer denne kondensatoren. Så hvis vi lader LED -kondensatoren og teller hvor lang tid det tar å lade ut gjennom en motstand, får vi en grov ide om hvor mye lys som faller på LED -en. Dette fungerte faktisk til å være mer pålitelig på tvers av forskjellige enheter, og fungerer til og med for fototransistorer! Siden vi ikke gjør en presis lumenmåling, og laserpekeren skal se mye lysere ut enn omgivende, ser vi bare etter en terskelutladningstid. Den andre viktige delen av dette eventyret er feilsøking. For de som er kjent med programmering av ikke-innebygde systemer, er en populær metode å legge til utskriftssetninger på kritiske punkter i koden. Dette gjelder også for innebygde systemer, men når hvert mikrosekund teller, vil tiden til Serial.write ("x er"); Serial.writeln (x); er faktisk ganske betydelig, og du kan gå glipp av mange hendelser i prosessen. Så husk å alltid legge utskriftsuttalelsene dine utenfor kritiske sløyfer, eller når som helst du forventer en hendelse. Noen ganger er det nok å blinke med en LED for å fortelle deg at du har kommet til et bestemt punkt i koden.

Trinn 4: Legge til webkontroll

Legger til webkontroll
Legger til webkontroll

Hvis du så gjennom skissen, la du merke til at jeg også leste serieporten, og handlet på noen få kommandoer med enkelt tegn. 'N' -tegnet slår på alle lysene, og' f 'slår dem av. Tallene '0'-'5' skifter tilstanden til lyset som er koblet til den digitale utgangen. Så du kan enkelt kaste sammen et CGI-skript (eller servlet, eller hvilken webteknologi som flyter båten din) for å kontrollere lysene dine eksternt. Serial.writes sender også ut når et lys endres fra brukerinngang, slik at siden kan ha Ajax -oppdateringer for å vise gjeldende tilstand. En annen ting jeg skal eksperimentere med er å oppdage bevegelse i et rom. Folk reflekterer lys, og når de beveger seg vil det lyset forandre seg. Det er 'delta' -delen av skriveuttalelsene jeg har.

Anbefalt: