Arduino differential termostat
-
- Inlägg: 7
- Blev medlem: 8 januari 2023, 18:36:25
Arduino differential termostat
Hej
Har letat förgäves efter en kod till mitt projekt , Jag vill med hjälp av min Arduino uno med två tempsensorer DS18B20 och ett relä kunna styra en pump. Tanken är om givare ett når 8 grader högra än givare två så startar pumpen, När temperaturen sen sjunker och differensen ej längre är 8 grader så slår pumpen av.Givare 1 sitter uppe på solfångaren och givare 2 sitter i acktanken.
Är det någon vänlig själ som skulle kunna hjälpa mig den koden.
Har letat förgäves efter en kod till mitt projekt , Jag vill med hjälp av min Arduino uno med två tempsensorer DS18B20 och ett relä kunna styra en pump. Tanken är om givare ett når 8 grader högra än givare två så startar pumpen, När temperaturen sen sjunker och differensen ej längre är 8 grader så slår pumpen av.Givare 1 sitter uppe på solfångaren och givare 2 sitter i acktanken.
Är det någon vänlig själ som skulle kunna hjälpa mig den koden.
Re: Arduino differential termostat
Färdig kod för att läsa av givarna borde du kunna hitta. Sedan är det en smal sak även om man saknar vana. Det finns mängde av videor på youtube om hur man kommer igång.
-
- Inlägg: 7
- Blev medlem: 8 januari 2023, 18:36:25
Re: Arduino differential termostat
Hej tack
Jag har kommit en bit på vägen men som sagt jag har gått igenom hela internettet och inte hittat en kod som passar mina givare, utan LCD skärm mm
Jag har kommit en bit på vägen men som sagt jag har gått igenom hela internettet och inte hittat en kod som passar mina givare, utan LCD skärm mm
Re: Arduino differential termostat
Bara en detalj...
> Tanken är om givare ett når 8 grader högra än givare två så startar pumpen, När temperaturen sen sjunker och differensen ej längre är 8 grader...
Du ska nog inte ha samma temp både för till- och frånslag. Det kallas "hysteres". https://sv.wikipedia.org/wiki/Hysteres
Kanske en diff på 10 grader för tillslaget och 6 grader för frånslaget. Eller vad som nu passar i ditt specifika fall.
Annars kommer du att få väldigt täta till/frånslag som sliter i onödan på pumpen och eventuella reläer.
> Tanken är om givare ett når 8 grader högra än givare två så startar pumpen, När temperaturen sen sjunker och differensen ej längre är 8 grader...
Du ska nog inte ha samma temp både för till- och frånslag. Det kallas "hysteres". https://sv.wikipedia.org/wiki/Hysteres
Kanske en diff på 10 grader för tillslaget och 6 grader för frånslaget. Eller vad som nu passar i ditt specifika fall.
Annars kommer du att få väldigt täta till/frånslag som sliter i onödan på pumpen och eventuella reläer.
- Swech
- EF Sponsor
- Inlägg: 4699
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Arduino differential termostat
Du behöver lägga på en hysteres också
Om differensen är mer än 8 grader så bör pumpen inte stoppa förrän differensen är mindre än t.ex. 4 grader.
Annars om en givare står och väger mellan en grad så kan du få att pumpen slås av och på upprepade gånger
Kanske också lägga in en minsta tid som pumpen skall gå oavsett hur temperaturerna reagerar
Äh... sodjan var före
Swech
Om differensen är mer än 8 grader så bör pumpen inte stoppa förrän differensen är mindre än t.ex. 4 grader.
Annars om en givare står och väger mellan en grad så kan du få att pumpen slås av och på upprepade gånger
Kanske också lägga in en minsta tid som pumpen skall gå oavsett hur temperaturerna reagerar
Äh... sodjan var före
Swech
-
- Inlägg: 7
- Blev medlem: 8 januari 2023, 18:36:25
Re: Arduino differential termostat
Hej tack för svar, Jo jag har tänkt på det också sett något liknande i andra koder. Tänkte att det kan jag lägga till eller använda mid av delay.
-
- Inlägg: 6107
- Blev medlem: 27 februari 2006, 14:59:36
- Ort: Tranås (Jönköping)
Re: Arduino differential termostat
För dina tempgivare använder du det färdiga LIBet som finns:
https://www.arduino.cc/reference/en/libraries/ds18b20/
När du installerar det så får du med exempelkod där du enkelt ser hur du får tempen i en variabel.
Sen är det bara en fråga om logik hur du hanterar till och frånslag.
Som nämnts innan så starta och stoppa inte på samma temp, utan starta på en, stoppa på en annan.
Diff = Givare 1 - Givare 2
Om diff > 8° = starta
Om diff < 8° = stoppa
Denna kod kommer få din pump att gå väldigt korta stunder, mycket start/stopp.
Så istället lägger du olika diff för start/stopp:
Diff = Givare 1 - Givare 2
Om diff > 8° = starta
Om diff < 4° = stoppa
Och denna diff får du kanske testa dig fram till.
https://www.arduino.cc/reference/en/libraries/ds18b20/
När du installerar det så får du med exempelkod där du enkelt ser hur du får tempen i en variabel.
Sen är det bara en fråga om logik hur du hanterar till och frånslag.
Som nämnts innan så starta och stoppa inte på samma temp, utan starta på en, stoppa på en annan.
Diff = Givare 1 - Givare 2
Om diff > 8° = starta
Om diff < 8° = stoppa
Denna kod kommer få din pump att gå väldigt korta stunder, mycket start/stopp.
Så istället lägger du olika diff för start/stopp:
Diff = Givare 1 - Givare 2
Om diff > 8° = starta
Om diff < 4° = stoppa
Och denna diff får du kanske testa dig fram till.