itse itselleni vastaten…
Piti siis kirjottaa, lukea ja tajuta…
Korjasin tilanteen näin
if (ulkolampoKA > 40){
shuntti.write(175); // shuntti säädetty niin että servon asennossa 5 patteriveden lämpö on 65c
delay(500);}
else
if (ulkolampoKA > 36){
shuntti.write(141); // shuntti säädetty niin että lämpö 60
delay(500);}
else
if (ulkolampoKA > 32){
shuntti.write(107); // shuntti säädetty niin että lämpö 55
delay(500);}
else
if (ulkolampoKA > 28){
shuntti.write(73); // shuntti säädetty niin että lämpö 50
delay(500);}
else
if (ulkolampoKA > 24){
shuntti.write(39); // shuntti säädetty niin että lämpö 45
delay(500);}
else
if (ulkolampoKA > 20){
shuntti.write(15); // shuntti säädetty niin että lämpö 40
delay(500);}
else
digitalWrite(13, HIGH); // vikavalo
Pikaisella testillä tuntui auttavan, servo ei hyppinyt lainkaan niin kuin ensimmäisellä vedoksella.
Siltikin… Kommentteja?
Tällä karvalakkimallilla, vivuston mittoja ja servon asentoja muuttaen onnistuu automaattinen lämpötilasäätö ulkokelin mukaan… Käsittääkseni… Pitää rakentaa vivusto yms. ja testailla.
EDIT:
Lisäilin vähä vikavaloa ja “toimintamallin” jos lämpötila näyttää liian suurta (virhelaskenta TAI anturia ei tunnisteta)
HUOM! Koodin lämpötilat on testilämpötiloja jotta saa hiustenkuivaajalla demottua servon toimintaa.
Koodi nyt tällainen:
[code]#include <Servo.h>
Servo shuntti;
int ulkoMittaus = 0;
int asento;
double ulkolampoYHT = 0;
int ulkolampoKA = 0;
int ulkoanturi = 0;
int vikaled = 13;
void setup()
{
pinMode(vikaled, OUTPUT);
pinMode(ulkoanturi, INPUT);
shuntti.attach(9);
Serial.begin(9600);
}
void loop()
{
for (int toisto=0; toisto < 40; toisto++)
{
ulkoMittaus = analogRead(ulkoanturi);
double ulkolampo = ulkoMittaus * (4720.00 / 1024); // 4720 on mitattu jännite anturin nastoista, eli 4.72V
ulkolampoYHT = ulkolampoYHT + ulkolampo;
// mittaa sisälämpö -> tallenna muuttujaan sisalampo
// sisalampoYHT = sisalampoYHT + sisalampo
delay(250);
}
ulkolampoKA =ulkolampoYHT / 10 / 40; // ensimmäinen jako muuttaa asteiksi, toinen jako laskee keskiarvon
if (ulkolampoKA > 45){
digitalWrite(13, HIGH); // vikavalo syttyy jos lämpötilamittaus totaalisen pielessä / anturia ei tunnisteta
ulkolampoKA = 0;
}
else
digitalWrite(13, LOW); // vikavalo ei pala kun kaikki OK
if (ulkolampoKA > 40){
shuntti.write(175); // shuntti säädetty niin että servon asennossa 5 patteriveden lämpö on 65c
delay(500);}
else
if (ulkolampoKA > 36){
shuntti.write(141); // shuntti säädetty niin että lämpö 60
delay(500);}
else
if (ulkolampoKA > 32){
shuntti.write(107); // shuntti säädetty niin että lämpö 55
delay(500);}
else
if (ulkolampoKA > 28){
shuntti.write(73); // shuntti säädetty niin että lämpö 50
delay(500);}
else
if (ulkolampoKA > 24){
shuntti.write(39); // shuntti säädetty niin että lämpö 45
delay(500);}
else
if (ulkolampoKA > 20){
shuntti.write(15); // shuntti säädetty niin että lämpö 40
delay(500);}
else
digitalWrite(13, HIGH); // vikavalo
Serial.println(ulkolampoYHT);
Serial.println(ulkolampoKA);
ulkolampoYHT = 0;
ulkolampoKA = 0;
}
[/code]
Tuomo