Regel 270: | Regel 270: | ||
}else if(sensor1>400 && sensor0 < 650) | }else if(sensor1>400 && sensor0 < 650) | ||
{ | { | ||
− | |||
− | |||
− | |||
closeding(1,30); | closeding(1,30); | ||
− | + | }else if( sensor0 < 640) | |
− | }else if( sensor0 < | ||
{ | { | ||
− | |||
− | |||
− | |||
closeding(2,45); | closeding(2,45); | ||
− | |||
} | } | ||
// if(sensor1>400 && sensor0 < 650) niks; | // if(sensor1>400 && sensor0 < 650) niks; |
Versie van 15 dec 2011 19:35
Project: Verwarming | |
---|---|
Naam | Verwarming |
Door | eightdot |
Status | Uitvoer |
Madskillz | Burnin, onderhandelen, aansluiten, bewateren |
Doel / Omschrijving | |
Awesome cheap, a lot of heat | |
Alle Projecten - Project Toevoegen |
Stook howto
Basic hardware uitleg (de knopjes)
- 1 klep aan de schoorsteen uitgang bovenop de kachel, hierna te noemen schoorsteenregelaar
- Deze klep kan rechtop staan en liggen, rechtop staat de schoorsteen helemaal open, liggend een klein beetje.
- KAN HEET WORDEN!
- 1 Schuif op de aslade.
- deze regelt de luchttoevoer naar het vuur
Het aanmaken van de kachel
- Neem je papieren pyromaandiploma.
- Stapel er wat dun(ner) hout in een 'luchtige' vorm.
- Stapel daar bovenop wat dikker hout (droog svp)
- Stop er een aanmaakblokje (of 2) in en steek die aan.
- Zet de schoorsteenregelaar open
- Zet de asladeschuif open
- Steek de fik erin
Geniet nu met mate.
notes:
- leg NIETS op de kachel wegens daarom.
- zet je tas/jas/hackable object niet in de buurt van de kachel
- Ja, ook de schoorsteen is heet.
- ga niet op de tegels staan, dat doet de kachel al voor ons.
- als de kachel goed brandt, kan er ook een wat vochtiger blok op. vochtig hout voorlopig niet drogen op de kachel, en niet zonder direct toezicht.
Bijvullen van de kachel
- Zet de schoorsteenregelaar op open
- Open de deur
- Stop er hout in
- Doe de deur dicht
- ???
- Profit!
Plaatjes
Er zijn wat grafiekjes van de kachel.
Brandstof en As
Dit is een HOUTkachel, geen allesbrander.
Hout mag alleen de kachel is als er geen verf of andere rotzooi op zit. Spijkers/schroeven zijn geen bezwaar. Spaanplaat is gestolde Brinta, geen hout. MDF is gestolde Bambix, ook geen hout. Bladeren roken alleen maar en geven veel as. Ditto voor karton en papier. Geld: nooit geprobeerd, be my guest...
hier komt: procedure voor aanvoer brandstof
Afvoer van as:
Neem de aslade op het moment dat de kachel uit is. Doe de inhoud van de lade in de daarvoor bestemde emmer*. Voeg water toe tot er zeker geen risico op brand meer is. Gooi dan de inhoud van de emmer op een passende plek weg (buiten het pand).
*De emmer wordt nog geregeld.
Controller
Tech. doc *NOT FOR USERS*
230V
schema comming..
Groep 16 -> WCD hoog in de vensterbank -> controller daar:
fuse 1 1A -> pomp
fuse 2 1A
-> if(overtemp) then valve.lower else K3 -> if(K1) then valve.lower else if (K2) then valve.higher
fuse 3 1A -> voeding 24V
24V
schema comming..
24v psu ->
-> controller pcb -> if (!K3) sound alarm (tmp disabled) -> if (K3 && D2) then K1 -> if (K3 && D3) then K2
pcb
schema comming..
Sanguino based
Terminals Left Top (Right to Left)
1 Gnd 2 Rs232 Tx (serial1, to bar pc?) 3 n/c 4 n/c
Terminals Right Top (Right to Left)
1 Gnd 2 +24Vdc in 3 +Alarm 4 OC Colder (D2->K1) 5 OC Hotter (D3->K2) 6 n/c
Terminals Right bottom (Top to Bottom)
1 Gnd 2 +5Vdc out 3 Analog0 in Kachel.Hot (LM335Z to gnd, 4k7 to +5v) 4 Analog1 in Kachel.Cold? 5 Analog2 in CV.Cold? 6 Analog3 in Lounge room temp? 7 Analog4 in Outside temp? 8 Analog5 in schoorsteen temp? 9 Analog6 in ? 10 Analog7 in Valve.position?
6 pin connector left (right to left) for arduino programming
1 gnd 2 gnd (DTR?) 3 n/c 4 Rx 5 Tx 6 RTS (reset)
8 pin connector left (right to left) for bootloader programming
1 n/c 2 n/c 3 SCLK 4 MISO 5 MOSI 6 #Reset 7 8 Gnd
software
int sensor0,sensor1,sensor2,sensor3,sensor4,sensor5,sensor6,sensor7; int curstep; int valvestate; void readall(); void opending(int halfsteps,int wait); void closeding(int halfsteps,int wait); void setup() { Serial1.begin(9600); pinMode(0, OUTPUT); //debug pinMode(1, OUTPUT); //colder pinMode(2, OUTPUT); //hotter valvestate=0; } void opending(int halfsteps,int wait) { Serial1.print("opening "); Serial1.print(halfsteps); Serial1.print("/2step\r\n"); digitalWrite(1, HIGH); //START COLDER valvestate=4; for(curstep=0;curstep<8*halfsteps;curstep++) { readall(); delay(1000); } digitalWrite(1, LOW); //STOP COLDER valvestate=3; for(curstep=0;curstep<wait;curstep++) { readall(); delay(1000); } valvestate=0; } void closeding(int halfsteps,int wait) { Serial1.print("closing "); Serial1.print(halfsteps); Serial1.print("/2step\r\n"); digitalWrite(2, HIGH); //START HOTTER valvestate=2; for(curstep=0;curstep<8*halfsteps;curstep++) { readall(); delay(1000); } digitalWrite(2, LOW); //STOP HOTTER valvestate=1; for(curstep=0;curstep<wait;curstep++) { readall(); delay(1000); } valvestate=0; } void readall() { sensor0 = analogRead(0); sensor1 = analogRead(1); sensor2 = analogRead(2); sensor3 = analogRead(3); sensor4 = analogRead(4); sensor5 = analogRead(5); sensor6 = analogRead(6); sensor7 = analogRead(7); sensor0=sensor0*5-2730; sensor1=sensor1*5-2730; sensor2=sensor2*5-2730; sensor3=sensor3*5-2730; sensor4=sensor4*5-2730; sensor5=sensor5*5-2730; sensor6=sensor6*5-2730; sensor7=sensor7*5-2730; Serial1.print("Sensors "); Serial1.print(sensor0); Serial1.print(" "); Serial1.print(sensor1); Serial1.print(" "); Serial1.print(sensor2); Serial1.print(" "); Serial1.print(sensor3); Serial1.print(" "); Serial1.print(sensor4); Serial1.print(" "); Serial1.print(sensor5); Serial1.print(" "); Serial1.print(sensor6); Serial1.print(" "); Serial1.print(sensor7); Serial1.print(" "); Serial1.print(valvestate); Serial1.print(" "); Serial1.print(curstep); Serial1.print(" "); Serial1.print("\r\n"); } void loop() { int maxstate; readall(); if( sensor0 > 800) { opending(4,45); maxstate=20; }else if(sensor1<410 && sensor0 < 400) { if(maxstate>0) { maxstate--; closeding(4,45); } }else if(sensor1>700 && sensor0 > 700) { opending(2,45); maxstate=20; }else if(sensor1>500 && sensor0 > 700) { opending(1,45); maxstate=20; }else if(sensor1>400 && sensor0 < 650) { closeding(1,30); }else if( sensor0 < 640) { closeding(2,45); } // if(sensor1>400 && sensor0 < 650) niks; delay(1000); }
matrix of what the code does
Main goal: trying to keep output between 65 and 70 (just random numbers, but they seem to work well)
input | output | action |
---|---|---|
>80 | open fast | |
>70 | >70 | open normal |
>50 | >70 | open slow |
<41 | <40 | close fast |
>40 | <65 | close slow |
<60 | close normal | |
>65 <70 | nothing (seems to be the right output) |
sensors
Voorheen
Probleem
- Het is koud
Oplossing
- Verwarmingstoestel
Er is een houtkachel van 21Kw (16Kw CV en 5Kw ruimte) in KKN6. Deze kachel beschikt over 2 aansluitingen voor de CV, 1 toevoer van 'koud' water en 1 afvoer van warm water. Hij staat in de lounge (1.09) en is daar aangesloten op het CV systeem wat er al is. Hiermee kan in ieder geval de hele westelijke kant begane grond verwarmd worden.
- Brandstof
- Hout is op KKN gratis of bijna gratis te regelen.
- Hout is Elders[tm] vaak gratis of goedkoop te krijgen als je zelf transport verzorgt.
- Status
- Kachel staat
- Leidingen CV (water) zijn aangesloten en op druk
- Pomp draait
- Schoorsteen werkt.
- Hout is aanwezig. Maar meer voorraad is welkom.
- er is nog geen antivries in het slapende circuit gedaan.