Arduino, SSR, PID - teknikk og utstyr

neslekkim

Norbrygg-medlem
Tenkte vi burde ha en egen tråd der man kan diskutere Arduino (og tilsvarende enheter)

Har satt meg fore å skaffe en Arduino, og ser at det er endel forskjellige varianter av denne, man har Duemilanove, Uno, Nano, Mega2560, Fio, Pro, Mini ogsåvidere.
Hvilke versioner er det folk her benytter, og har erfaring med?, og ville dere valgt anderledes?
Observerer også enheter som Netduino, som er en variant med støtte for .net micro framewrok, og andre kompatible enheter, er disse helt kompatible?

Ser også at Amazon har litt bøker på Arduino, noen med erfaringer her?, hvordan er det med utviklingsverktøy?, flytte kode til enheten ogsåvidere?

Når det gjelder SSR så fant jeg en her som har et enormt utvalg av SSR'er, hva ser man etter?, har fått med meg at det er lurt med en 40A version, men her er det stor variasjon på kontrollsiden og utgangs siden i strøm.
Samme er det forskjeller på om SSR'et er AC - AC, DC - DC ogsåvidere..

http://stores.ebay.com/Asia-Enginee...2418018&_sid=149380788&_trksid=p4634.c0.m322
Har lyst til å mekke en kontrollboks etterhvert, og er jo litt geek, så noe koding på en slik hadde vært morsomt
 
Har planer om å starte litt med dette selv. Kom over Fermonitor her på forumet (http://fermonitor.com/), som visstnok snart er klar i ny utgave :D
 
For SSR vil du ha et som takler 220-240 V (eller gjerne 48-480, 100-300 eller hva de nå selger, men det må ihvertfall takle norsk nettspenning) på effektsida. På styresida er det en fordel med et som takler både 5 og 12 V, men de fleste takler dette helt fint.
 
HMMM satte nesten kaffien i halsen. sitter selv å lager styring med SSR og Arduino til mitt eget minibryggeri.
har kjøpt Arduino AT-Mega, display, SSR, Tastatur, masse shields for både det en og det andre.
hadde aldrig hørt om arduino for 2 mdr. siden men sprang like godt i med bind for øyna,
kjempe god hjelp å finne på www.arduino.cc Kostnader til dette er jo helt latterlig billig, om man sammenlikner med ferdige systemer.
samt den (skrytefaktor "det der har jeg laget selv")
Har laget masse små programmer til alle enkelte rutiner så som" lese og regulere temperatur, pumpehastighet ( både ac 240v og 12v dc)
nivå kontroll, tidsstyring, mengde måling, flow kontroll, det hele skal selvsakt programeres sammen.
prosjektet er for tiden pakket godt ned grunnet oppusing i stua...
men er helt klart med på en sån tråd.
 
PID'ane vi typisk brukar skal finnast med RS-232/485 interface, då kan den styrast med eksterne komandoar. Kansje noko å tenke på i staden for ei hememekka kvasi-PID-rutine? Med mindre ein finn ferdig kode for Arduino med autotuning og heile pakka kan det vere vegen å gå for å få eit tilfredstillande resultat.

PID'ane frå Kina virkar tross alt meget bra.

Av SSR må du tenke på om du vil slå ting av og på eller bruke fasevinkelstyring.
 
Jeg har en Arduino Duemilanove som jeg har testet litt med. Tror jeg betalte ca 12 dollar på ebay, og den funker fint. Har koblet på en thermistor som jeg kjøpte på elfa, og programmert den for å lese ut temperatur. Det fungerte bra. (Så har dette har blitt liggende fordi jeg kjøpte meg en RepRap 3D-printer.)

Men målet var å bygge en PID-kontroller. Det finnes et ferdig http://www.arduino.cc/playground/Code/PIDLibrary]PID-bibliotek for Arduino[/url] som kan brukes. Så må man evt styre sterkstrøm for å skru ting av og på, da fant jeg en annen artikkel på nett som så ut til å ha bra informasjon om det.

Ellers skal det være greit å programmere og kommunisere med en Arduino fra Windows, Mac og Linux. Man bare henter ned Arduino-programvaren og begynner å utvikle. Koden lastes opp med en USB-kabel, det er en enkel prosess. Har for øvrig også kjøpt meg et Arduino "nettverks-shield". Har satt opp en enkel webserver på den i første rekke, men etter hvert var planen å lese og styre ting over nett. :)
 
protto skrev:
PID'ane vi typisk brukar skal finnast med RS-232/485 interface, då kan den styrast med eksterne komandoar. kanskje noko å tenke på i staden for ei hememekka kvasi-PID-rutine? Med mindre ein finn ferdig kode for Arduino med autotuning og heile pakka kan det vere vegen å gå for å få eit tilfredstillande resultat.

PID'ane frå Kina virkar tross alt meget bra.

Av SSR må du tenke på om du vil slå ting av og på eller bruke fasevinkelstyring.

Geekfaktoren med å lage egen pid med en arduino er jo særdeles fin da :)

Men det å styre en PID fra arduino via rs232 (eller tilsvarende) er jo også en aktuell greie, om man kan avlese fra pid'n hva den gjør, med tanke på logging ogsåvidere.

Men har du eksempler på PID'er og SSR'er man bør se etter?, de SSR'ene jeg har funnet, de er ok, eller for billige?, og hva mener du med Fasevinkelstyring?
Mener du nevnte noe tidligere om at man må vite om SSR'en støtter å kunne switche raskt, ikke bare av og på, eller er jeg på bærtur her?

Håper man kan få anbefalinger på eksakte duppeditter som folk vet fungerer, og kan brukes, istedet for å få høre etterpå at det var et dumt valg :)
 
ketilfroyn skrev:
Jeg har en Arduino Duemilanove som jeg har testet litt med. Tror jeg betalte ca 12 dollar på ebay, og den funker fint. Har koblet på en thermistor som jeg kjøpte på elfa, og programmert den for å lese ut temperatur. Det fungerte bra. (Så har dette har blitt liggende fordi jeg kjøpte meg en RepRap 3D-printer.)
Så billige Duemilanove har jeg ikke funnet enda, de har ligget på typisk 50-60 dollar eller er det kit'ene kanskje?

ketilfroyn skrev:
Men målet var å bygge en PID-kontroller. Det finnes et ferdig http://www.arduino.cc/playground/Code/PIDLibrary]PID-bibliotek for Arduino[/url] som kan brukes. Så må man evt styre sterkstrøm for å skru ting av og på, da fant jeg en annen artikkel på nett som så ut til å ha bra informasjon om det.

Hvis du lager en PID av en Arduino, så kan du sikker benytte den til bare det, så etterhvert blir det et nettverk av Arduino'er så man kan da vurdere å benytte f.eks mini og slike til spesifikke oppgaver, om de er gode nok til det.

ketilfroyn skrev:
Ellers skal det være greit å programmere og kommunisere med en Arduino fra Windows, Mac og Linux. Man bare henter ned Arduino-programvaren og begynner å utvikle. Koden lastes opp med en USB-kabel, det er en enkel prosess. Har for øvrig også kjøpt meg et Arduino "nettverks-shield". Har satt opp en enkel webserver på den i første rekke, men etter hvert var planen å lese og styre ting over nett. :)

Kan man laste inn nye programmer mens enheten kjører, eller må man sette den offline for oppdateringer?, kan man kjøre bare et program av gangen, eller flere?, altså, om dette er en enkeltoppgave enhet, eller ikke..
 
Definetivt kul geekfaktor ja. Grunnen til at eg nevner det er at eg jobbar nesten daglig med "PID" innlagt i eit dedikert software for kontroll av fleire funksjonar samtidig. Det er vanskeleg å sette opp, når i tillegg ein mistenker programeraren for å ikkje vare 100% oppegåande på reguleringsteknikk, tenker eg at det kan vere den beste løysinga å gå for noko som allereie virkar og implementere det i styringen. Berre ein tanke altså.

Det er og forskjel på PID, alt etter kva ein skal styre med det. Dei kina kontrollerane er dedikert til temperaturstyring og funkar veldig bra på det.

Ang. SSR er dei du linka til OK alle saman, så vidt eg kan sjå. Det er med zero-cross-detection og dei slår seg kun på ved nullgjennomgangen på sinuskurva, og sameleis av ved nullgjennomgang. Dette er for å redusere "sjokkstraum" ved påslag, og dertilhøyrande RF-støy. Dei ledar altså kun heile halvperiodar av sinusen.

For effektregulering av feks. lys (dimming) brukast fasevinkelstyring. Fåregår ved at ein kan slå på SSR'en nårsomhelst i halvperioden, og av ved kvar nullgjennomgang. Ved å regulere når i halvperioden den slår seg på kan ein regulere effektivverdien lasta får, og dermed lysstyrken.

Ved høgare effektar, og spesielt med trege system (les varmeelement) kan ein bruke zero-cross-detect SSR og slå det av og på med variabel PWM i periodar på typisk 0,5-2s. Feks.regulerbar effekt på varmeelementet i ein kokekjele.

Har ein billig PID frå ebay, i manualen står det at klemme nr xx og yy er 232 interfacet, men modellnummeret støttar ikkje dette. Sendte mail til selgar om hen hadde slik type men det hadde han ikkje. Kansje Auberins har, dei virker seriøse.

Dimensjoner SSR etter lasta, og bruk kjøleribbe når du passerar halve merkestraumen eller litt mindre. Kjenn og sjekk at det ikkje blir for varmt. Det er einast tipset eg har.....
 
$17.90 betalte jeg visst, ikke 12. Her er en litt dyrere en, men den har også en litt feitere mikrokontroller, min har en ATmega168.

Man kan bruke en Arduino som en ren PID-kontroller og kommunisere mellom flere med SPI- eller I2C-protokollene. Men de er ganske raske, og de har ganske mange IO-pinner, så de kan fint gjøre mer enn en ting av gangen. Man trenger ikke måle temperaturen mange hundre ganger i sekundet for å få en nøyaktig PID-kontroller, så da kan man gjøre noe annet i mellomtiden. :) Men det er ikke noe "multithreading" eller noe sånt. Begrensningene ligger gjerne på antall IO-pinner og hvor mye minne man har. Men RepRap-en styres i hovedsak av en pimpa Arduino og litt ekstra styringselektronikk, og den har 4 motorer, 3 endefølere, varmekilde, thermoføler (med PID-kontroller). Så da bør det vel gå å styre brygging også. :)

Om du føler du trenger mere futt, kan du alltids se på Sanguino, som er kompatibelt men feitere.
 
protto skrev:
Definetivt kul geekfaktor ja. Grunnen til at eg nevner det er at eg jobbar nesten daglig med "PID" innlagt i eit dedikert software for kontroll av fleire funksjonar samtidig. Det er vanskeleg å sette opp, når i tillegg ein mistenker programeraren for å ikkje vare 100% oppegåande på reguleringsteknikk, tenker eg at det kan vere den beste løysinga å gå for noko som allereie virkar og implementere det i styringen. Berre ein tanke altså.

Det er og forskjel på PID, alt etter kva ein skal styre med det. Dei kina kontrollerane er dedikert til temperaturstyring og funkar veldig bra på det.
Det er ikke dette du kaller PID vel?
http://cgi.ebay.com/Temperature-Con...22?pt=LH_DefaultDomain_0&hash=item3a6514f116 Har tre slike, og de er greie nok de, til temperaturstyring for kjøleskap og gjæring etc, men har lyst til å mekke noe som kan styre f.eks speidelen.. :D


protto skrev:
Ang. SSR er dei du linka til OK alle saman, så vidt eg kan sjå. Det er med zero-cross-detection og dei slår seg kun på ved nullgjennomgangen på sinuskurva, og sameleis av ved nullgjennomgang. Dette er for å redusere "sjokkstraum" ved påslag, og dertilhøyrande RF-støy. Dei ledar altså kun heile halvperiodar av sinusen.

Zero-cross detection, snakker vi da om kontrolsiden eller styresiden?, har fått med meg at SSR'ene er en optisk bryter, der du har en kontrolside der man på noen har spenning fra 3-24VDC, så en bryter på den andre siden som tåler f.eks 10, 25, 40 og 60Amp, men som støtter forskjellig spenning noen opptil 480 AC, noen har et område med DC, og virker som noen også hadde AC på kontrolsiden.

når man har 3-24VDC på styresiden så antar jeg at man kan styre denne som en TTL krets, 0-5v uten problemer?, eller må man kjøre på bufferkretser ogsåvidere for å ikke ødelegge Arduino'en?

protto skrev:
For effektregulering av feks. lys (dimming) brukast fasevinkelstyring. Fåregår ved at ein kan slå på SSR'en nårsomhelst i halvperioden, og av ved kvar nullgjennomgang. Ved å regulere når i halvperioden den slår seg på kan ein regulere effektivverdien lasta får, og dermed lysstyrken.

Hm, Detekterer du da nullgjennomgangen på utsiden, slik at du slår på, så slår ssr'en selv av utgangen når den passerer null?, det er jo stilig.

protto skrev:
Ved høgare effektar, og spesielt med trege system (les varmeelement) kan ein bruke zero-cross-detect SSR og slå det av og på med variabel PWM i periodar på typisk 0,5-2s. Feks.regulerbar effekt på varmeelementet i ein kokekjele.

Har ein billig PID frå ebay, i manualen står det at klemme nr xx og yy er 232 interfacet, men modellnummeret støttar ikkje dette. Sendte mail til selgar om hen hadde slik type men det hadde han ikkje. kanskje Auberins har, dei virker seriøse.

Dimensjoner SSR etter lasta, og bruk kjøleribbe når du passerar halve merkestraumen eller litt mindre. Kjenn og sjekk at det ikkje blir for varmt. Det er einast tipset eg har.....

Mye bra ting her, keep it comming :)
 
ketilfroyn skrev:
$17.90 betalte jeg visst, ikke 12. Her er en litt dyrere en, men den har også en litt feitere mikrokontroller, min har en ATmega168.

Man kan bruke en Arduino som en ren PID-kontroller og kommunisere mellom flere med SPI- eller I2C-protokollene. Men de er ganske raske, og de har ganske mange IO-pinner, så de kan fint gjøre mer enn en ting av gangen. Man trenger ikke måle temperaturen mange hundre ganger i sekundet for å få en nøyaktig PID-kontroller, så da kan man gjøre noe annet i mellomtiden. :) Men det er ikke noe "multithreading" eller noe sånt. Begrensningene ligger gjerne på antall IO-pinner og hvor mye minne man har. Men RepRap-en styres i hovedsak av en pimpa Arduino og litt ekstra styringselektronikk, og den har 4 motorer, 3 endefølere, varmekilde, thermoføler (med PID-kontroller). Så da bør det vel gå å styre brygging også. :)

Om du føler du trenger mere futt, kan du alltids se på Sanguino, som er kompatibelt men feitere.

Ser man har forskjellige sånne Shield og tilkoblinger, ethernet og gudene vet hva, er alle disse kompatible med de fleste arduino'ene, eller er de tilpasset enkelte?

Har du sett noe på de forskjellige bøkene?
http://www.amazon.com/Getting-Started-Arduino-Make-Projects/dp/0596155514/ref=pd_bxgy_e_img_b http://www.amazon.com/30-Arduino-Projects-Evil-Genius/dp/007174133X/ref=pd_bxgy_e_img_c
http://www.amazon.com/Practical-Arduino-Projects-Hardware-Technology/dp/1430224770/ref=pd_sim_b_6 http://www.amazon.com/Beginning-Arduino-Michael-McRoberts/dp/1430232404/ref=pd_sim_b_5
 
neslekkim skrev:
Det er ikke dette du kaller PID vel?
http://cgi.ebay.com/Temperature-Con...22?pt=LH_DefaultDomain_0&hash=item3a6514f116 Har tre slike, og de er greie nok de, til temperaturstyring for kjøleskap og gjæring etc, men har lyst til å mekke noe som kan styre f.eks speidelen.. :D

-Nei det der er ingen PID...;-)


neslekkim skrev:
Zero-cross detection, snakker vi da om kontrolsiden eller styresiden?, har fått med meg at SSR'ene er en optisk bryter, der du har en kontrolside der man på noen har spenning fra 3-24VDC, så en bryter på den andre siden som tåler f.eks 10, 25, 40 og 60Amp, men som støtter forskjellig spenning noen opptil 480 AC, noen har et område med DC, og virker som noen også hadde AC på kontrolsiden.

når man har 3-24VDC på styresiden så antar jeg at man kan styre denne som en TTL krets, 0-5v uten problemer?, eller må man kjøre på bufferkretser ogsåvidere for å ikke ødelegge Arduino'en?

Zero-cross kretsen ligg på styresida inne i SSR'en og føler på når sinusen passerar null. Du kan kjøpe ein laus Triac og lage analogteknikken sjølv, ev. bruke microkontrolleren til å detektere nullgjennomgang, ved feks. å lage eit inerrupt kvar gang, men det vil vere lite hensiktsmessig då programmet blir avbrutt kvart 10ms.



neslekkim skrev:
Hm, Detekterer du da nullgjennomgangen på utsiden, slik at du slår på, så slår ssr'en selv av utgangen når den passerer null?, det er jo stilig.

Ja, eigentleg. Det er ikkje veldig avansert analogteknikk som trengs for det, søk på feks. phase angle control så finn du sikkert ein wiki som forklarar det veldig enkelt.
 
protto skrev:
Zero-cross kretsen ligg på styresida inne i SSR'en og føler på når sinusen passerar null.

Så den ligger på styresiden, og føler når sinusen på utgangen passerer null?, altså f.eks 220volten, når den passerer nullpunktet?, interresant.
Så da kan jeg trygt kjøpe et lass av disse SSR'ene med andre ord?

Har bestilt et par arduinoer, et par shields for sensorer og et ethernet shield nå, samt litt stash..
 
Vil anbefale å begynne litt lavere enn med SSD og høyspenning for de første forsøkene. Når jeg lekte med PID for noen mnd siden bygde jeg en liten testkrets, den besto enkelt og greit av en temperaturføler, en effektmotstand og en høyeffekts darlington transistor. Lagde en aluminiumskappe for å klemme føleren mot effektmotstanden(varmeelement) og så var det bare å eksperimentere. Benyttet forresten Atmel STK500 som utviklingssystem, atmel er jo dem som produserer ATmega-kretsene som arduino er basert på.

Fra det jeg har sett så har mange SSD`er innebygd zero-crossing detektor, så man slipper å tenke på den biten. Det er absolutt å anbefale en slik ferdig SSD-løsning, spesielt om man er uerfaren med elektronikk. Det er veldig fort gjort å koble feil, og 230V er ikke akkurat å spøke med, kan fort bli fritt for både utviklingskort, pc og puls ;)

Selve programmeringsbiten er faktisk ganske enkel for selve PID`en, men kan selvsagt utvikle seg til å bli mer komplisert. Om PID`en bare skal styre ett system, så kan gjerne refulatorparametrene være konstante, altså forhåndsprogrammerte. Da blir det enkleste å justere parametrene ved hjelp av "zieger nichols metode".

Noen nevnte at PID ofte er laget for ett eget formål, dette er vel en sannhet med modifikasjoner. PID reguleringsalgoritmen er noe av det mest anvendelige jeg har vært borti. PID brukes til det aller meste innen systemrregulering, om så være dronefly, tomgangsjustering, væskestrøm eller temperatur. Eneste som skiller dem er parameterverdiene Kp, Ki og Kd. Det er disse tre parametrene som forandres på en slik automatisk kina-PID.

En typisk kode for PID vil være noe slik som dette:

P = Ønsket_temperature -Målt_temperatur
I = Akkumulert_Feil + P
D = Forrige_temperatur - Nåværende_temperatur

PID_Verdi = Kp*P + Ki*I + Kd*D
PWM_Verdi = Gain*PID_Verdi

Hvor store parametrene er vil være avhengig av hvor ofte man kjører PID-algoritmen samt hvordan systemet oppfører seg.

I praksis kan det ofte være lurt å benytte seg av to sett med parametre, ett sett når temperaturen er i nærheten av ønsket temperature, og ett sett når temperaturen er veldig langt fra ønsket. Dette for å unngå ett fenomen kalt "integral windup", rett å slett at dersom det tar lang tid å gå fra en temperatur til en annen, vil den akkumulerte feilen bli veldig stor. Dette fører til ett solid oversving. Man kan også kjøre en rampe-funksjon der man stegvis øker temperaturen mot ønsket verdi.

Huff, ble en lang og tørr post dette :p

Kim
 
neslekkim skrev:
gustavf skrev:
neslekkim skrev:
Det er ikke dette du kaller PID vel?
http://cgi.ebay.com/Temperature-Con...22?pt=LH_DefaultDomain_0&hash=item3a6514f116 Har tre slike, og de er greie nok de, til temperaturstyring for kjøleskap og gjæring etc, men har lyst til å mekke noe som kan styre f.eks speidelen.. :D

Det er en termostat, ikke en PID-kontroller.

Vet, men jeg fisker etter hva som er de billige kina PID'ene.. får vel bare lete igjen da :)

Feks. http://cgi.ebay.com/NEW-Dual-Digital-F-C-PID-Temperature-Control-Controller-/130459576013?pt=LH_DefaultDomain_0&hash=item1e5fff26cd
 
Ulike varianter av disse:
http://cgi.ebay.com/PID-Digital-Temperature-Controller-SSR-Relay-AC-Input-/250804504200?pt=LH_DefaultDomain_0&hash=item3a651d0688
 
kherseth skrev:
Noen nevnte at PID ofte er laget for ett eget formål, dette er vel en sannhet med modifikasjoner. PID reguleringsalgoritmen er noe av det mest anvendelige jeg har vært borti. PID brukes til det aller meste innen systemrregulering, om så være dronefly, tomgangsjustering, væskestrøm eller temperatur. Eneste som skiller dem er parameterverdiene Kp, Ki og Kd. Det er disse tre parametrene som forandres på en slik automatisk kina-PID.

Du har sjølvsagt delvis rett du og:)

Men det er ganske mange fleire parameter i kina-PID'en min. Bl.a.har den separate verdiar for P, I og D på hotside og cold side, fordi temperaturstyring vil sjendan reagere likt på oppvarming og nedkjøling.

-Til forskjel frå feks. høgderoret på eit i utgangspunktet balansert fly.
 
Tilbake
Topp