Arduino Powered Home (10 / 10 steg)
Steg 10: Uppdatering Aug-Sept 2014: saker att jag gjorde fel första gången!
Här vill jag nämna några saker där jag gjorde ett fel val om hur du gör saker i detta projekt. Jag har inte bränt mitt hem ner, inte heller har jag förstört något av min elektronik, men fortsatt forskning och lärande om Arduino har avslöjat några misstag jag för dig att undvika. En del av detta nämndes i tidigare uppdateringar.
Inte makten alltför många saker direkt från Arduino. Det sätter för mycket press på spänningsregulator och/eller logik transistorerna bifogas varje stift. Min Sainsmart 8-ch relay board drevs ursprungligen från min Arduino 5 V stift, men jag har bestämt att eftersom det var inte en bra idé och jag fast i en andra nätadapter att åtgärda detta.
Efter att lägga i separat DC nätadapter 8-ch relay board, och lägga till pull-down och ladda motstånd till IO pinnar i mitt projekt, mätte jag nuvarande på alla stift.
- Stift 4, 5 och 6 har en strömförbrukning på 1 mA varje i en låg stat att utlösa ett relä på 8-ch styrelsen och 0 mA i en hög.
- Stift 7 och 9 bara dra en max 5 mA varje när hög och utlöser deras reed reläer och 0 mA när de låg.
- Stift 8, 11, 23 och 24 registrera inte någon uppmätt ström alls. Dessa stift läser alla staten genom en hög impedans eftersom de inte utlösa något. De är bara att besluta om en krets är aktiv.
- GND mätt mellan -3 mA och + 1,5 mA beroende på stift 7. Stift 7 förblir högt hela tiden MV är på, och dess reed relä spole drar 4,5 mA skillnaden GND PIN-koden ändras.
- Arduino DC power jack mäter en strömförbrukning på 270 mA på första driva upp, sedan sjunker till 235 mA.
- Sainsmart 8-ch relay DC nätadapter mäter en strömförbrukning 50 mA till 140 mA.
Med hjälp av reläer, motorer eller servon (något med induktiva spolarna) kräver antingen en diod att skingra flyback nuvarande (stor spänning spike huvuden av induktiva spolen i riktning mot strömkällan när spolen är elektromagnetiska fält kollapsar) när du byter reläer av, eller en förare ombord som isolerar flyback från IO pinnar av mikrokontroller. Om din spänningskälla är en Arduino stift och du inte har planerat ordentligt, kan du skada din styrelse. Sainsmart relä styrelsen har detta skydd i sin design och är avsedd att anslutas direkt till en mikrokontroller säkert, men min reed reläer inte. Min Arduino körs på lånad tid tills jag lösa detta! Min reed reläer dragningen (och källa) en sådan liten mängd ström att jag skulle kunna ersätta dem med transistorer. Men jag förmodligen lämnar reläer på plats nu när jag har kommit så här långt. Kanske ska nästa gång jag tänker på med ett mycket litet relä, jag också jämföra för- och nackdelar med att använda en lämplig transistor.
Min reed-relä åtgärd en coil motstånd på 1 k ohm, och med 5 volt levereras skulle dra 5 mA. Jag mätte 4,5 mA strömförbrukning på Arduino utgångsstiftet. Jag har lagt i en 1N914 diod (motsvarar 1N4148) över relä spole terminalerna, se första två bilderna ovan, att absorbera/skingra det nuvarande flyback skapas när reed reläer stänga av. Obs: En flyback diod är placerad i polaritet så att normalt ingen ström flyter genom. När fältet electromagmetic i reläets spole kollapsar som inspänningen är avstängd, skapar flyback dioden en väg av minsta motståndets för det kollapsande fältets hög spänning att resa dess slutliga flera millisekunder bakåt genom spolen in dioden, ut dioden tillbaka in i spolen tills det försvinner. En effekt av detta är spolen tar flera ms längre att de ge energi, men detta är inte ett problem i de flesta kretsar.
Jag vet inte hur man mäter flyback spänning, men vissa indikationer innebär mätning av mängden kol skorpa på din dyra men busted elektroniska komponenter som du inte skyddar. När jag lärde mig att flyback kan vara hundratals gånger den ursprungliga spänningsfrekvens som tillförs induktiva spolen som fältet EM försöker gå någonstans det kan i en plötsligt öppen krets, bestämde jag mig för detta måste fastställas. Nu är det!
jag fortfarande inte har beslutat om en ruta för att dölja och skydda Arduino och dess anslutningar. Jag har inte avslutat min Plexiglas låda, och nu när jag lagt till styrelsen med växlar, jag behöver antingen en större, eller mer än en box. Jag kan designa en större Plexiglas ruta som har plats för Arduino, en styrelse som så småningom kommer att ersätta den Lödfritt set av brödunderläggen och styrelsen med växlarna och har power ingångarna för båda korten som driver projektet.
Placering av känsliga delar är nära en oväntad källa för static. Jag fick reda på anti-statisk stol mattan bredvid bröstet Arduino sitter på innehar en statisk laddning. Så mycket för de extra spänn skalade på "anti-statisk" hävdar, men detta är mycket dåligt för Arduino. Ibland när jag vill beröra en tråd eller vila min hand nära Arduino, jag vill höra en eller två reläer i rutan garderob monterade brytare på. Jag såg och kände ingen urladdning, men det var uppenbarligen en statisk urladdning.
När de utsätts för ESD (electro statisk urladdning), mikrokontroller inte bara gör saker det inte ska göra, men det kan uppleva permanent misslyckande. Statisk elektricitet kan ha potentialen för tiotusentals volt och kan vara mycket skadligt för känslig elektronik. Inte alla elektroniska komponenter är känsliga för ESD men varför riskera det när du vet att det finns åtminstone några känsliga komponenter i projektet. Jag kan vara ett par fötter från styrelser, men lyfta stol mattan utanför mattan några inches och Arduino kommer att orsaka ett relä att stänga av. Det är bara för nära, så jag behöver se vad som krävs för att eliminera det statiskt. Jag skulle ta bort det om mattan inte var så tjock att stolen inte rulla utan en matta. Nu ser jag på andra brusfritt lösningar.
jag har inte gjort min ursprungliga design att inkludera nedrullningsbara motstånd på input stift. Allt jag nyligen lagts inkluderar en 10 k ohm pull-down motstånd, och jag har gått tillbaka och lagt till pull-downs för Arduino stift 4-7 och 9. Se tredje bilden ovan. Se http://arduino.cc/en/Tutorial/DigitalPins mer information om pull-up och pull-down motstånd för digital IO pinnar på din Arduino.
Korrekt opto-isolering och jordning av Arduino och relay board, samt användning av UTP kablage tråd par. Jag borde ha vetat bättre än att bara slumpmässigt välja vilka kablar ansluter till vad mellan Arduino och Sainsmart 8-ch relay board. Jag tror mitt intermittent relay beteende (att inte tala om intermittent Arduino pin hög/låg output) kan ha orsakats av statisk, som nämnts tidigare, kanske i kombination med dåliga ledningar metoder när du ansluter Arduino och relay board tillsammans. Jag har gått igenom min UTP (oskärmad partvinnad) kablage och såg till att endast en tråd av någon partvinnad används för signal eller + 5 v makt, och den andra kabeln för att partvinnad är ansluten till Arduinoen GND pin, men vänster inte ansluten till något relä styrelse. Denna praxis bör minska överhörning mellan kanalerna (en hög för relä 1 plockas upp av kabeln ansluten till relä 2, etc).
Jag läste på http://arduino-info.wikispaces.com/RelayIsolation att till verkligen opto-isolat reläer från Arduino, den Arduino marken pin inte bör kopplas till relä styrelsens marken stift. En tråd som leder till relä styrelsen ska anslutas till marken på Arduino, men vänster inte ansluten relay Board. Detta eliminerar tydligen ett möjligt ground loop tillstånd som kan ytterligare komplicera saker.
Först, jag flyttade min separat DC strömförsörjning nära relay board, men jag kommer behöva göra detta permanent snart. Jag har bort VCC JD-VCC hoppare i relä styrelsen och ansluten + 5 v bly från adaptern till JD-VCC pin och 0 v eller negativa leder till GND stift på relay board. Jag har återanslutit en + 5 v kabel från den Arduino + 5 v pin till VCC på relay styrelsens huvudsaklig titelrad. Se fjärde bilden ovan klarhet.
Då gick jag igenom ledningar som jag använde för att ansluta varje Arduino pin till en relay board pin och gjort lämpliga ändringar. Nu av två 4-par kablar mellan Arduino och relä styrelsen (det är 16 tråd ledare totalt) har jag bara 8 av dessa ledningar anslutna till Arduino; en + 5 v och en GND (en partvinnad), och tre utgångsstift och tre GNDs (tre tvinnade par). Och relay Board, endast fyra av dessa kablar är anslutna; en + 5 v och tre utgångsstift att utlösa tre reläer jag använder. Separat DC nätadapter som nu sitter i garderoben med relay board och dess 0 v bly är den enda GND anslutningen till reläet styrelsen. Totalt sex kablar anslutna till relä styrelsens två rubriker.
Hittills har fungerar detta bra. Även om, i allmänhet, det fungerade ganska bra innan, de röda lysdioderna på relay styrelsen som anger "aktiv låg" status för något relä som är 'På' verkar vara ljusare. Under min omkonfigurering av alla dessa anslutningar, skulle ett relä resa bort medan dess LED skulle fortfarande vara tända. Jag hade liknande erfarenheter med alla reläer i början av projektet när jag driver både Arduino och relay board (helt) från en otillräcklig DC-adapter. Det var fått tillräckligt hög i ström och spänning. I den verkliga världen det inte lägga ut tillräckligt aktuell att hålla reläer stängd, kunde ändå det lätt lysdioderna. Jag hoppas att denna förändring kommer att eliminera den sällsynta men enstaka intermittent beteende jag skylla på static. Det kunde fortfarande ha varit statisk (som ordförande matta gjorde massor av gnistor när jag lyfte den mattan) som lockades in i ledningarna av DC nätadaptrar utgångar samt alla signal ledningar till relay board.
En sista rekommendation för grundstötningen var att ansluta Arduino GND till byggnaden GND med endast en jordledning av en stickkontakt ansluts till ett vägguttag och den andra änden av som ansluten till Arduino GND. Jag har inte gjort detta men kommer snart. Jag ska iväg till Home Depot att köpa en $2 bygga din egen typ av plugg och tråd ett 12 - eller 14-ga jordledaren mellan i kontakten GND och Arduino GND.