Bygga ett reläkort med temperaturingång, USB hjälp

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av sodjan »

"Onewire" är inte samma sak som "OneWire"...

EDIT: Slagen av Icecap med en noslängd... :-)
Hemmek
Inlägg: 83
Blev medlem: 22 januari 2012, 03:52:14
Ort: Älmhultstrakten

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av Hemmek »

Ok, nu är jag på gång igen (problemet med många hobbies man får alltid massor av dötid på dom olika)
Jag tror inte jag fick något svar på frågan om hur mycket kylning en SSR på 10-25 amp kan tänkas behöva och vad en normal driftstemp kan tänkas vara?
Skulle det räcka att bulta fast dom i baksidan på ett apparatskåp om man tar bort färgen och laddar på med kylpasta eller krävs det kylfläns?
Känner att detta är hyfsat viktigt att ha ett hum om redan i planeringsstadiet (så man vet hur stort apparatskåp man behöver osv)

Nu förstår väl även jag att det kan vara svårt att svara på då kylflänsar kan vara av olika storlek utförande material osv.
Men jag nöjer mig med ett svar som i allfall ligger i rätt område så att säga.

Föresten finns det någon bra exempelkod någon känner till på t.ex tempraturstyrning?
eller ja en bra grund jag kan bygga vidare på så att säga.
Jag listar än en gång tanken, i ett hittepå språk eller vad man kan säga, för att lättare kunna beskriva hur systemet är tänkt att fungera.

SET (huvudmapp, sänds från dator till aurdino för att ställa in programvaran i arduino)
I SET finns följande komando.

SET RAST (inkluderar både antal raster tid på varje rast samt temp)
Uppvärmingstegen därimellan löses genom att sätta en separat rast till dessa.
T.ex
Rast 1, startar med 20C och slutar direkt när t.ex 50C är uppnått.
Rast 2, håller 50C under en viss tidsperiod.


SET RAST
No = 5 (antal raster)
NoT = 2 (antal tempraturstyrda)
NoTi =3 (antal timerstyrda)
MASHOUT = Yes (sista rasten har oändlig tid, ställs in automatisk)

Rast No1 = Höj tempratur till 50C gå sedan vidare.
Rast No2 = Håll 50C i X-tid
Rast No3 = Höj till 65C gå sedan vidare
Rast No 4 = håll 65C i X-tid
Rast No 5 = MASHOUT höj tempraturen till 75C när tempratur är uppnådd tänd LED och håll tempraturen till shutdown.

Dessa klassar jag som SET komandon, dvs dom värden som skickas till aurdino för att ge den den infon den behöver för att kunna arbeta självständigt.

Sen följer COMMAND (dvs dom få komandon från pc som kan påverka aurdino under drift)
1, HALT (slår av alla relän men håller kvar motaget SET)
2, Undo HALT (fotsätter processen efter halt)
3, Restart (håller kvar SET men startar om hela processen från start)
4, START (Vilkor SET måste ha motagits, startar då från början på SET)
5, Shutdown (slår av alla reläer raderar ut SET)
6, CHECK (Tvingar aurdino att sända en kopia av Inmatat SET, samt status på alla reläer samt tempratursensorer dock påverkar detta inte övrig drift, detta komando är enbart för om man misstänker att något har gått galet)

Sen har vi LOGG (detta är enbart vad aurdino skickar till datorn under normala förhållanden under drift)
1. nuvarande tempratur
2.Måltempratur.
3.Heating (dvs är värmen på?)
4.Rast nr (vilken rast den är på, i nr)
5. Cirkulation ON/OFF? (om cirkulationspumpen är på eller ej)
6. Förfluten tid (låter aurdino hålla koll på tiden så man inte tappar detta vid datorhaveri)
7.Felkoder grade 1 (ej stoppande felkoder)
8.Felkoder grade 2 (Stop felkod)

Följt av SAFE (Alla säkerhetsfunktioner och vad som skall hända ligger inbakat i logikdelen)
1. Cirkultion ON/OFF? (om svaret blir OFF så får ej värmen gå på under några omständigheter)
2. Target temp overshoot? (Detta skall inte kunna hända men om det gör det, dubbelkolla så att Heater=off, stiger tempraturen fortfarande även fast heater = Off slå av matar reläet som förseer alla värmarelement med matarström. Låt allt vad alarm heter ljuda sänd felkod (temprature fail)
3. Communication ok? (kollar av så att aurddino fortfarande har kontakt med datorn) Om ej, kör på som vanligt men ändra MASHOUT från oändlig till att den stänger av efter 30min dvs vänta ej på shutdown, detta komando körs med jämna mellanrum och om aurdino får kontakt med datorn igen så återgår den till det normala, och sänder felkod (communication fail during time X)
4. Temp (sitter dubbla tempratursensorer på varje ställe, skiljer värdet för mycket så skall allt stängas ner och felkod Temprature sensor group X fail)

( i framtiden skulle det inte sitta fel med att kunna kontrolera så att pumpen verkligen går via flödesmätare då ändras 1 til flow)

Sen har vi då logikdelen.
Här kan en liten revision vara på sin plats (undersöker fortfarande möjligheten till detta btw)
Gamla systemet sköter värmen på lakvattnet och på vörten för sig, dvs lakvattnet behöver bara hålla en tempraur i orginal revisionen.
vörten är det som behöver köras på raster, vid orginalrevisionen så cirkulerar detta genom en liten värmartank.
denna kräver 2 grupper med tempratursensorer, en på utloppet från värmaren och en på inloppet (dvs kontrollerar så att man ej värmer på för hårt med den på utloppet) och inloppet som bestämmer när man skall sluta värma helt.
T.ex så stryper man värmen om tempraturen skulle gå över målet på utloppet men när tempraturen når målet så utgår den från givargruppen på inloppet.

Revision 2.
Istället för 2 värmare och 2 styrsteg för att hålla tempen.
låta vörten cirkulera genom en slinga i lakvattnet, dvs anpassa tempraturen i lakvattnet så att tempraturen blir rätt för var rast.
sen mäta tempraturen på inloppet och utloppet enligt samma princip som ovan, fast då lakvattnet alldrig skall över önskad tempratur på vörten.
Jag slipper då krabba med att begränsa yteffekt, styra tempraturen på 2 ställen. och lakvattnet få alltid rätt tempratur.
samt så sparar jag på elräkningen då jag inte behöver lika mycket effekt ;)

Sen som sagt är detta inte färdigstuderat ännu (måste veta om jag kan värma det snabbt nog på detta vis osv osv)

Men som sagt nu har jag i allfall kommit så här långt ;)
Men som sagt vad som efterlyses är lite bra exempelkod och sen då den eviga frågan ang hur mycket kylning en SSR kan behöva samt normal driftstempratur på dessa.

Tackar hjärtligt för alla svar än så länge (hoppas ni inte fick extrem huvudvärk av mitt lilla hitte på programspråk är ju mest en lista på vad jag skall ha så att säga, tror det är bra att rita upp det på detta vis för en själv i allafall)
Mvh Emil
Användarvisningsbild
Icecap
Inlägg: 26652
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av Icecap »

Man brukar kalla det för "pseudospråk" eller "pseudokod".

För att reglera värme använder man oftast en PI-reglering, det finns många exempel på nätet.

Över en TRIAC/SCR-baserat SSR brukar det vara ung. 1V-1,5V under påslag. Vid 10A blir det alltså 10-15W och vid 20A blir det lite mer än det dubbla då framfallsspänningen brukar öka.

Det avgörande är strömmen genom dom samt deras data (kolla datablad) men fastbultning i apparatskåpet som kylning tror jag inte på, möjligen vid 10W men där tror jag att gränsen går.
Hemmek
Inlägg: 83
Blev medlem: 22 januari 2012, 03:52:14
Ort: Älmhultstrakten

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av Hemmek »

Nu så har jag nog så jag klarar mig ett tag framöver ;)
Men vad tror du om mitt pseudospråk?
Både hur det är skrivet och vad jag vill lyfta fram.
Ser det bra ut? finns det något jag har missat eller bör lägga mer energi på?
Användarvisningsbild
Icecap
Inlägg: 26652
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av Icecap »

Som jag ser det hela är det en sekvens du vill köra. Den består av temperaturer som ska ställas eller hållas, tider som ska passas.

Jag hade styckad ihop en beskrivning av varje steg i sekvensen som en "variabel" för att på det vis kunde skicka kommunikationsblock med sekvensens definition. På så sätt kan man enkelt "tanka ner" en komplett sekvens till styrningen och då få status tillbaka som visar vilket sekvenssteg den befinner sig i osv. Samtidig kan styrningen sköta jobbet autonomt ifall kontakten med PC'n förloras.
Hemmek
Inlägg: 83
Blev medlem: 22 januari 2012, 03:52:14
Ort: Älmhultstrakten

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av Hemmek »

Nu minskäl hittade jag en mycket bra grund att stå på ;)
jag länkar dom här (det är länkar till ett annat forum men då filer och byggbeskrivning finns här hoppas jag att admin har överseende)
http://www.thebrewingnetwork.com/forum/ ... =4&t=28289
Samt https://code.google.com/p/brewtroller/
Har lite att ta tag i här ;)
Den övre länkens kod saknar i stort kommentarer och den andra är massiv. (massor och åter massor av kod)
Föresten har fått liv i min LCD nu.
(tänkt att nyttjas till detta projektet också)
Var så förutseende att jag tog en gammal floppy kabel (smal IDE kabel som förr gick till diskettläsaren) klippte denna itu och lödade dit samtliga kablar på alla stift på dispalyen vart efter jag kapslade in kretskortet i eltejp (hade inget bättre att tillgå är mestadels för att kabeln skall hänga i tejpen och inte i lödningarna)

Har kopplat displayen enligt http://arduino.cc/en/Tutorial/LiquidCrystal
http://www.kjell.com/sortiment/el/elekt ... nformation
Där har man displayen med, samt ett datablad som inte ger en mycket att gå på direkt.

Har kört hello word till den och visst funkar det men jag har ingen bakgrundsbelysning.
Som framgår av övningen så bör det vara pin 15-16 där 16 är led -
Är det så enkelt att jag bara behöver lägga dessa på +- på aurdinokortet eller bör jag skicka in ett motstånd imellan?
Eller är jag ute och cyklar här?

Känns korkat att chansa och bränna upp mitt arduino...

hurvida lcd:en blir permanent kopplad eller ej beror på om jag har tillräckligt med utgångar för både det och allt annat som skall dit ;)
Just nu åkte den dit då jag misstänker att jag kan återanvända mycket av koden jag länkade till för att få till även den biten ;)
Användarvisningsbild
Icecap
Inlägg: 26652
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av Icecap »

Om det finns strömbegränsning på backlighten eller inte framgår av databladet för displayen. Mrn utgå ifrån att det INTE gör det.

Många display kan i övrigt köra 4-bit läge, då sparar man 4 pinnar...
Hemmek
Inlägg: 83
Blev medlem: 22 januari 2012, 03:52:14
Ort: Älmhultstrakten

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av Hemmek »

Nu börjar det bli framsteg minskäl ;)
I min iver att få igång backlight så tryckte jag dit en potentiometer till denna.
Visade sig att vara en riktigt bra lösning då jag nu kan justera ljusstyrkan från alldeles för lite till alldeles för mycket.
Detta kommer nog bli så längre fram med då det är en trevlig funktion :D

Är fan sjukt så kul detta är, började med en exempelkod som bara skrev ut hello word.
och hittade först en väg att skriva på flera rader, placera ut vad som skrevs där man ville osv.
Detta gjorde mig barnsligt glad av någon anledning :D
Sen efter det så tog jag exempelkoden på OneWire och exprimenterade med denna med.
Nu har jag en display som visar tempratur efter mitt eget tycke och smak.

Och det bästa är att jag känner att en stor del av kodandet för displayen sitter så jag slipper använda mig av exempelkoder i framtiden ;)

Sen angående antal pinnar. Jag läste igårnatt på något forum om att man skulle teroretiskt kunna koppla alla tempraturgivare på samma slinga, dvs att till ett flertal givare nyttjar bara en signalingång på arduinon.
Detta bör ju spara in ett antal pinnar :D

Nu tar föresten displayen upp 6pinnar, är det = 6bit?
Skall se om jag inte kan hitta ett kopplingschema på 4bit på nätet (annars återkommer jag :wink: )
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av sodjan »

> I min iver att få igång backlight så tryckte jag dit en potentiometer till denna.

Vilket värde?
Notera att en pot i ena ändläget i princip är en kortslutning, så det
behövs normalt ett extra motstånd som ger en min strömbegränsning
för att undvika strömrusning. Dessutom har en pot normalt inte den effekttålighet
som en LED backlight genererar. Det är inngen speciellt bra lösning.

> Nu tar föresten displayen upp 6pinnar, är det = 6bit?

8 eller 4 pinnar för LCD kommunikationen avser D (data) pinnarna.
Till dessa kommer E, RS o.s.v.
Det finns inget som heter "6-bit" när det gäller HD44780 LCD'er.

> Skall se om jag inte kan hitta ett kopplingschema på 4bit på nätet

Det är samma schema som för 8-bit, förrutom att enbart D4-D7 används,
D0-D3 lämnas oanslutna.
Hemmek
Inlägg: 83
Blev medlem: 22 januari 2012, 03:52:14
Ort: Älmhultstrakten

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av Hemmek »

Potten är på 5Kohm, den är i övrigt av den gamla typen (dvs mässingshus och lång stålstång man skruvar på)
Lite frågor.

1. Vad kan vara lagom som motstånd om jag sätter dit detta som en säkerhet på potten? (skadar inte om någon kör ett räkneexempel här)

2. Om jag ej skall mata backlighten via potten hur bör jag då lösa det? (tänk på att jag är en total nybörjare och gärna vill kunna justera ljusstyrkan)

3.Hur gör man om man vill köra sidbyten på LCD displayen? dvs trycka på en knapp för att komma åt sida 2 där jag har ännu mer inforrmation. (och hur gör jag sida 2)

4.scrollande text (dvs att texten roterar sidleds) både vanligt och om man har ett längre medelande som inte rymms på en rad.

5. att sätta flera dallas Onewire i parralell dvs all signalbenen går på samma kabel och stift på arduinon. hur gör man i koden??
Går det ens att göra så ?

EDIT: fixade ett stavfel
Mvh Emil
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av sodjan »

1.
Först ska du kolla om det sitter någon strömbegränsning eller inte på LCD'n.
Kolla från kontakten och följ banorna, du ser ganska enkelt om det sitter
något motstånd "på vägen" eller om det går direkt från kontakten till
backlight modulen.

Om vi antar att det saknas motstånd på själva modulen, så skulle jag sätta
10-20 ohm som säkerhet, det borde hålla strömmen på säkra sidan.
För att *räkna* på det så behövs datablad på LCD'n. Använd den spänning
som står där och den ström som rekomenderas och räkna "som vanligt".

2.
Om det är OK med en fast ljusstyrka så använder du bara ett "lagom" motstånd.
Om du vill/måste kunna justera ljusstyrka så "fungerar" det med en pot, men
eftersom rimliga motståndsvärden ligger inom sisodär 10-100 eller 200 ohm, så
är kanske en 5 kohm pot lite för stor. Får du inte rimliga ljusstyrkor inom bara
en liten del av pottens arbetsområde ?
Ett annat effektivt sätt att driva backlight är med PWM från t.ex en processor.

3.
Det får ju den processor (eller vad det nu är) som LCD'n är ansluten till. LCD'n
kan ju inte visa "sidan 1" heller utan att någonting matar ut den...
Eller hur menar du egentligen ?

4.
Allt går att fixa med lite mer eller mindre avancerad programmering. Men det
är inte direkt tänk att göra så på en HD44780 LCD.

5.
Det är ju så som onewire fungerar. Varför skulle det inte gå?
http://pdfserv.maxim-ic.com/en/an/AN1796.pdf
Hemmek
Inlägg: 83
Blev medlem: 22 januari 2012, 03:52:14
Ort: Älmhultstrakten

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av Hemmek »

Jo det stämmer är bara en liten del av arbetsområdet som nyttjas på potten samt att det är finlir som gäller när man skruvar.
Har ungefär samma problem på potten som går till kontrasten (skall vara 10kohm men har bara 5 och 20 hemma)
Men det är inte riktigt lika illa ;)

Med sidbyten menar jag att man är ju ganska begränsad av lcd:ns storlek när det gäller att få fram information.
dvs när man använder färdig produkt så skall man kunna få fram t.ex tempraturererna genom hela systemet på en (Sida)
och tiderna på nästa.
Dvs grundläge = tempraturinformation.
Tryck på knappen = växlar till tider

Tror i för sig jag tänkte lite för länge på den delen :D

Borde ju bara vara en fråga om att sätta upp 2olika sidor i programmet :lol:
Satt och funderade på något mycket mer avancerat jag inte fick till att fungera.

frågan är ju egentligen bara hur man växlar mellan dom 2 sidorna i programmet men det kommer jag nog till (även fast tips uppskattas)

Däremot hade det varit trevligt med rullande text (det jag tidigare refererade till scrollning) självklart då med fler tecken än vad som ryms i skärmen,

vart lite hungrig innan därav kaliteets skillnaden på inlägg ;)
Användarvisningsbild
Icecap
Inlägg: 26652
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av Icecap »

Man kan klara det hela vid att bygga ett menysystem.

Det behövs i grunden 4 knappar: +, - , Meny och OK.

Ett tryck på meny drar fram nästa menypunkt samt kallar fram det sparade värde för aktuell menypunkt.
+/- ändrar värdet
OK sparar det.

Har man problem med antal knappar kan man ha dubbelt på Meny: håll inne den i t.ex. 3 sekunder och den blir en OK-funktion då.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av sodjan »

> Har ungefär samma problem på potten som går till kontrasten...

Men där är det mer normalt och förväntat... :-)
Jag antar att du har kopplat potten melan 5V och jord.
Området där man får någon kontrast att "justera" ligger
normalt mellan 0V och kanske 1V eller så, så oavsett vilket
värde (5, 10 eller 20 kohm spelar ingen som helst roll) så
fungerar det så med just kontasten (som är spänningstyrd).

Backlighten, å andra sidan, handlar om att justera en ström
på upp till ett par 100 mA...

Och som Icecap säger, om du skriver din egen kod så har du ju
full kontroll över vad LCD'n visar, du kan ha 100 olika "sidor"... :-)
Användarvisningsbild
Icecap
Inlägg: 26652
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Bygga ett reläkort med temperaturingång, USB hjälp

Inlägg av Icecap »

I en Janfire NH pelletsbrännare finns det reellt sett 3 knappar till att styra menyfunktionerna, där finns det även en menyfunktion med ung. 98 punkter/värden som kan ställas, allt i 7 språk. Antalet punkter varierar lite med versionen, just min brännare har en del fler än andras men jag har å andra sidan ju också tillgång till källkoden :lol:

Så det är ett fullt möjligt sätt att göra saker på.
Skriv svar