Inhoudsopgave:

Bedien fluorescentielampen met een laserpointer en een Arduino - Ajarnpa
Bedien fluorescentielampen met een laserpointer en een Arduino - Ajarnpa

Video: Bedien fluorescentielampen met een laserpointer en een Arduino - Ajarnpa

Video: Bedien fluorescentielampen met een laserpointer en een Arduino - Ajarnpa
Video: Why Are LED's Better? (Comparing different types of light bulbs) | Basic Electronics 2024, December
Anonim
Bedien fluorescentielampen met een laserpointer en een Arduino
Bedien fluorescentielampen met een laserpointer en een Arduino
Bedien fluorescentielampen met een laserpointer en een Arduino
Bedien fluorescentielampen met een laserpointer en een Arduino

Een paar leden van de Alpha One Labs Hackerspace houden niet van het harde licht van fluorescerende armaturen. Ze wilden een manier om de afzonderlijke armaturen gemakkelijk te kunnen bedienen, misschien met een laserpointer? Ik had gelijk. Ik heb een stapel solid-state relais uitgegraven en naar het lab gebracht. Ik kocht een Arduino Duemilenova en demonstreerde het gebruik van de LED Blink-voorbeeldschets om daadwerkelijk een halogeenlamp te laten knipperen. Ik vond wat informatie over het gebruik van LED's als lichtsensoren [1] en een Arduino-schets die de techniek demonstreerde [2]. Ik ontdekte dat de LED's lang niet gevoelig genoeg waren - de laser moest recht in het lichtgevende deel wijzen, of de LED zou niet inschrijven. Dus ben ik overgestapt op fototransistoren. Ze zijn veel gevoeliger en over een groter frequentiebereik. Met het juiste filter over de transistor zou ik het gevoeliger kunnen maken voor rood licht, en vanuit een veel groter bereik van hoeken naar de sensor. DISCLAIMER EN WAARSCHUWING: Dit instructable behandelt lijn (net) spanning op 120 of 240 volt. Gebruik je gezond verstand als je dit circuit bouwt - als je ergens over twijfelt, vraag het dan aan iemand die het weet. U bent verantwoordelijk voor uw veiligheid (en die van anderen) en voor de naleving van de plaatselijke elektriciteitsvoorschriften.

Stap 1: De schets en wat theorie

Ik neem aan dat je weet hoe je je Arduino van stroom moet voorzien, en een schets gecompileerd en geladen krijgt. Voor elke lamp gebruik ik een telefoonkabel, omdat het goedkoop is, vier geleiders heeft, en ik had er toch een heleboel liggen. Ik gebruikte rood voor gewone +, zwart voor aarde, groen voor de fototransistorcollector en geel voor de relaisbesturing +. Een fototransistor laat een hoeveelheid stroom door die varieert met de hoeveelheid licht die erop valt. De analoog naar digitaal converter (ADC) in de arduino meet de spanning op de pin ten opzichte van aarde. Ik keek naar het gegevensblad van de fototransistor en controleerde met een multimeter dat de transistors 10mA passeren bij vol licht. Volgens de wet van Ohm is dat ongeveer 500 ohm bij 5V. Om de lampen aan te sturen heb ik een solid-state relaismodule gebruikt. Deze zijn relatief goedkoop voor de huidige rating die we nodig hadden, ongeveer $ 4 voor maximaal 4A. Zorg ervoor dat u relaismodules koopt met een nuldoorgangsdetector, vooral als u iets inductiefs bestuurt, zoals een fluorescerend licht, een motor of een muurwrattransformator. Als u ze overal aan of uit zet, behalve het nulpunt, kan dit spanningspieken veroorzaken die in het beste geval de levensduur van uw apparaat verkorten en in het slechtste geval brand veroorzaken.

Stap 2: Bedrading van de lichten

Bedrading van de lichten
Bedrading van de lichten
Bedrading van de lichten
Bedrading van de lichten
Bedrading van de lichten
Bedrading van de lichten

Kijk in het plafond en beslis waar je de Arduino-controller gaat monteren. Vergeet niet dat het een voeding van 7-12v nodig heeft. Knip stukken telefoondraad (of cat5 of wat dan ook) af die ongeveer 60 cm langer zijn dan de afstand van de Arduino tot elk licht dat u wilt bedienen. Bekijk de verbinding van de hoogspanningskabels van de schakelaar naar de ballast. Mogelijk kunt u connectoren bestellen (Newark Electronics verkoopt de Wago 930-serie, die we hadden). Dan hoef je bestaande draden niet door te knippen en kun je het systeem verwijderen als er iets misgaat. Soldeer de massa (zwart) aan de relaisingang - en de besturing (geel) aan relaisingang + (de kleurcode op de afbeelding anders dan wat ik op de voorpagina heb gezet, omdat ik van gedachten ben veranderd over wat logisch zou zijn). Soldeer of schroef (afhankelijk van je relais) de zwarte (hete) draad door het relais. Zorg ervoor dat u krimpkous en isolatietape gebruikt! Duw de zwarte draden in uw connectoren en de witte (neutrale) en aarde (groen) lopen gewoon recht door van connector naar connector. Het andere uiteinde van de draden gaat als volgt naar de Arduino: Alle rode draden (gemeenschappelijke kathode of collector) ga naar analoog 0 (poort C0), en al het zwart naar aarde. Elke groene (anode of emitter) gaat naar pinnen 8-13 (poort B 0-5) en de gele draden gaan naar pinnen 2-7 (poort D 2-7). Zorg ervoor dat de groene en gele draden overeenkomen, aangezien de sensor het juiste relais moet aansturen! Als je het geel in pin 2 steekt, gaat het groen van hetzelfde armatuur naar pin 8.

Stap 3: De schets- en ontwerpnotities testen

In deze stap zal ik praten over enkele van de beproevingen en beproevingen die ik onderweg tegenkwam, en hoe ik er doorheen werkte, in de hoop dat het nuttig zal zijn. Voel je vrij om naar de volgende stap te gaan als Science Content niet jouw ding is:-) De eerste stap was om te beslissen of je capacitieve of resistieve detectie zou gebruiken. Resistive sensing is het aansluiten van de sensor via een weerstand op een van de analoge pinnen en het doen van analoog lezen en vergelijken met een drempel. Dit is het eenvoudigst te implementeren, maar vergt veel kalibratie. De theorie van capacitieve detectie is dat wanneer omgekeerd voorgespannen (- naar de + lood en vice versa), een LED geen stroom zal laten vloeien, maar elektronen zullen zich aan één kant verzamelen en verlaat de andere kant en laadt effectief een condensator op. Licht dat op de LED valt met de frequentie die het normaal uitzendt, zal in feite een kleine stroom veroorzaken, waardoor deze condensator wordt ontladen. Dus als we de LED 'condensator' opladen en tellen hoe lang het duurt om via een weerstand te ontladen, krijgen we een globaal idee van hoeveel licht er op de LED valt. Dit bleek betrouwbaarder te zijn op verschillende apparaten en werkt zelfs voor fototransistors! Omdat we geen nauwkeurige lumenmeting doen en de laserpointer veel helderder zou moeten lijken dan omgevingslicht, zoeken we alleen naar een drempelwaarde voor het ontladen. Het andere belangrijke onderdeel van dit avontuur is het opsporen van fouten. Voor degenen die bekend zijn met het programmeren van niet-ingebedde systemen, is het een populaire methode om printstatements toe te voegen op kritieke punten in de code. Dit geldt ook voor embedded systemen, maar wanneer elke microseconde telt, is de hoeveelheid tijd voor Serial.write("x is "); Serieel.writeln(x); is eigenlijk behoorlijk belangrijk, en je kunt veel gebeurtenissen in het proces missen. Denk er dus aan om uw printstatements altijd buiten kritieke lussen te plaatsen, of wanneer u een gebeurtenis verwacht. Soms is het knipperen van een LED voldoende om u te laten weten dat u op een bepaald punt in de code bent aangekomen.

Stap 4: Webcontrole toevoegen

Webcontrole toevoegen
Webcontrole toevoegen

Als je door de schets keek, merkte je dat ik ook de seriële poort lees en op een paar commando's van één teken handel. Het 'n'-teken zet alle lichten aan en 'f' zet ze uit. De cijfers '0'-'5' wisselen de status van het licht dat is aangesloten op die digitale uitgang. U kunt dus gemakkelijk een CGI-script (of servlet, of welke webtechnologie dan ook uw boot drijft) samenstellen om uw lichten op afstand te bedienen. De Serial.writes voert ook uit wanneer een licht wordt gewijzigd van gebruikersinvoer, zodat de pagina Ajax-updates kan hebben om de huidige status te tonen. Een ander ding waarmee ik ga experimenteren is het detecteren van beweging in een kamer. Mensen reflecteren licht, en als ze bewegen, verandert dat licht. Dat is het 'delta'-gedeelte van de schriftelijke verklaringen die ik heb.

Aanbevolen: