Beste,

Ik ben voor school een broedkast aan het maken. (automatisch gestuurd).

Nu zit ik met een probleempje, (ik ken namelijk niets van C (basis voor arduino? ))

en, De arduino werkt perfect met sensor, (krijg de temperatuur en vochtigheid op het scherm) Nu was mijn vraag? hoe kan ik voorwaarde stellen dat wanneer de temperatuur groter dan 37.8 °c is de Fan begint te draaien (pc Fan, voor te koelen) ?

Het is een digitale sensor (SHT 15), en de fan wordt gewoon aangesloten..? ..?
Dit is men code die ik nu gebruik:

  #include <Wire.h>
  #include <LiquidCrystal.h>
  #include <SHT1x.h>
  #define dataPin  9
  #define clockPin 8
  SHT1x sht1x(dataPin, clockPin);
  float temp_c;
  float humidity;
  LiquidCrystal lcd(12,11,5,4,3,2);
  
  void setup()
{
  lcd.begin(16,2);
  lcd.clear();
}

  void loop()
{ 
  temp_c = sht1x.readTemperatureC();
  humidity = sht1x.readHumidity();
  
  lcd.setCursor(0,0); // 1ste Rij LCD
  lcd.print("Temp: ");
  lcd.print(temp_c);
  lcd.print((char)223); // Graden symbool
  lcd.print("c");
    
  lcd.setCursor(0,1); // 2de Rij LCD
  lcd.print("Vocht:");
  lcd.print(humidity); 
  lcd.print("%"); 
}

Nu was mijn vraag, zou er iemand mij kunnen zeggen waar ik de fan moet aansluiten en een voorwaarde kunnen schrijven in dit programma zodat de fan draait wanneer het 37.81 °c of hoger is, en stopt wanneer het terug 37.80 °c is?

Dank bij voorbaat!

zodat de fan draait wanneer het 37.81 °c of hoger is, en stopt wanneer het terug 37.80 °c is?

Dat kan niet, lees eerst het datasheet van de SHT15 eens:

http://www.sensirion.com/en/pdf/product_information/Datasheet-humidity…

Kijk vooral naar Accuracy.

Daarnaast is een simpele aan/uit regeling niet goed genoeg voor een broedkast, school opdracht dus ga maar lezen over een PID regeling:

http://nl.wikipedia.org/wiki/PID-regelaar

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1226431507

Zijn er echt geen eenvoudigere oplossingen? Ik heb namelijk geenverstand van pid's .. :$

Is het niet juist het idee van school om wat te leren ?

Je hebt je al gerealiseerd dat in een broedkastje de temperatuur nauwkeurig en stabiel moet zijn. Ook heb je al de juiste sensor.

Over een PID regelaar is meer dan genoeg te vinden, geen idee wat voor nivo / opleiding je doet, maar ook in de industrie kom je ze veel tegen.

Mijn 2de link is een kant en klaar PID libary voor de Arduino, wat let je om eens daar mee te gaan experimenteren ?

Zou je echt een uitdaging willen dan maak je een regelaar gebaseerd op het fuzzy logic principe.

Ik volg indiustriële wetenschappen. Maar heb maar 2 uur elektronica..

PID is dit alleen maar software? met algoritme of is hier ook nog hardware bij betrokken?

Mvg

Ik ben goed in C, ik schrijf dit namelijk al enkele jaren voor pc

#include <Wire.h>
#include <LiquidCrystal.h>
#include <SHT1x.h>
#define dataPin 9
#define clockPin 8

#define FAN_PLUS 17

SHT1x sht1x(dataPin, clockPin);
float temp_c;
float humidity;
LiquidCrystal lcd(12,11,5,4,3,2);

void setup()
{
lcd.begin(16,2);
lcd.clear();
}

void loop()
{
temp_c = sht1x.readTemperatureC();
humidity = sht1x.readHumidity();

lcd.setCursor(0,0); // 1ste Rij LCD
lcd.print("Temp: ");
lcd.print(temp_c);
lcd.print((char)223); // Graden symbool
lcd.print("c");

if(temp_c > 37.80)
{
//zet FAN_PLUS op high
}
if(temp_c <= 37.80)
{
//zet FAN_PLUS op low
}

lcd.setCursor(0,1); // 2de Rij LCD
lcd.print("Vocht:");
lcd.print(humidity);
lcd.print("%");
}

maar omdat ik ook geen tijd heb om de datasheet te bekijken enz kan ik nu ook niet 123 zeggen hoe een pin op HIGH en LOW te zetten ;)

Volgens mij ben je gewoon een luie sodemieter die graag een wil dat hier zijn schoolopdracht gemaakt wordt.

Als je er even voor gaat zitten, ben je er in minder dan een half uur uit hoe zoiets werkt (nee, ik ken de Arduino niet, maar spannend kan het niet zijn). Ideetje om van het weekend niet te gaan stappen en zondag gewoon om 07:30 op te staan? Heb je bij elkaar opeens meer dan 8 uur over. Moet lukken om dan even een datasheet door te lezen. Toch? Verder zal er vast wel eens iemand zoiets eerder gedaan hebben. Tip: kijk eens in de source van je LCD or sensor lib. Daar zal ook iemand aan pennen staan te trekken.

Nog een tip: je hebt voor die fan regeling hysterese (google!) nodig. Anders wordt het een heel zenuwachtige regeling. Voor een broedkast schijnt eea. best nauwkeurig te moeten, het zou zomaar kunnen dat je het met een aan/uit regeling niet gaat redden.

Voor een broedkast schijnt eea. best nauwkeurig te moeten, het zou zomaar kunnen dat je het met een aan/uit regeling niet gaat redden.

De temperatuur in broedkastjes moet inderdaad wel heel nauwkeurig zijn. Aan uit regeling werkt over het algemeen wel goed omdat je vanwege de relatief kleine (qua volume) verwarmingselementen weinig overshoot hebt, en vanwege de kleine ruimte vrij snel opwarmt.

Groeten, Bram

de fan draait wanneer het 37.81 °c of hoger is, en stopt wanneer het terug 37.80 °c is?

Een sensor met een nauwkeurigheid van 0.03°c in combinatie met een simpele aan/uit regeling leid tot oscillatie bij bovenstaande geval.

Ja 0.01 graad is ook niet handig, ik had t ook meer over iets van een halve graad of zo.

Groeten, Bram

[Bericht gewijzigd door bprosman op (36%)]

Doe dan een aan-uit regeling met hysteresis... dat is denk ik wel voldoende. Bij alle "klassieke" regelaars heb je eigenlijk een goed model nodig van je ding dat je wil afregelen, dus hoe ingewikkelder je de regelaar maakt, hoe moeilijker het gaat worden om dat ding in te stellen.

En als je écht fancy wil gaan doe je gewoon een neuraal netwerk, en stuur je twee verwarmingselementen: 1 in een bakje met water (zodat je de vochtigheid kan regelen) en eentje voor de temperatuur. Netwerk trainen - en klaar :)

Wat voor eieren wil je uitbroeden? Reptieleneieren hebben namelijk echt wel baat bij een vochtigheidsregeling...

indiustriële wetenschappen

Bachelor en Master in de Industriële Wetenschappen:

Onze afgestudeerden zijn onder meer actief in volgende domeinen: automatisering en robotica, productie, proces - controle, onderhoud, assemblage, energietechnieken, ontwerp (CAD/CAM), technisch-commercieel, onderzoek en ontwikkeling (R&D), opleiding en vorming.

Dan lijkt me een PID regelaar voor een schoolopdracht wel op z'n plaats. Een aan/uit regeling met hysteresis sluit mi niet aan bij het beoogde nivo van de opleiding.

Maar goed, onze TS heeft het waarschijnlijk te druk met andere zaken: http://forum.liefde.com/member.php?u=11295

Op 5 november 2009 07:35:50 schreef Marco69:
Volgens mij ben je gewoon een luie sodemieter die graag een wil dat hier zijn schoolopdracht gemaakt wordt.

Als je er even voor gaat zitten, ben je er in minder dan een half uur uit hoe zoiets werkt (nee, ik ken de Arduino niet, maar spannend kan het niet zijn). Ideetje om van het weekend niet te gaan stappen en zondag gewoon om 07:30 op te staan? Heb je bij elkaar opeens meer dan 8 uur over. Moet lukken om dan even een datasheet door te lezen. Toch? Verder zal er vast wel eens iemand zoiets eerder gedaan hebben. Tip: kijk eens in de source van je LCD or sensor lib. Daar zal ook iemand aan pennen staan te trekken.

Nog een tip: je hebt voor die fan regeling hysterese (google!) nodig. Anders wordt het een heel zenuwachtige regeling. Voor een broedkast schijnt eea. best nauwkeurig te moeten, het zou zomaar kunnen dat je het met een aan/uit regeling niet gaat redden.

Ik volg industriele wetenschappen laatste jaar (secundair onderwijs.. euhm Havo? allé, nog niet hoge school) Ik herhaal dus: ik ken NIETS van programmeren. Het leren? Heel graag! Lui? we mochten ook gerust een kant en klare thermostaat nemen.. maar hebben dit niet gedaan voor toch ja.. iets ervaring te krijgen met dit alles.

Op 4 november 2009 23:55:10 schreef nicksasa:
Ik ben goed in C, ik schrijf dit namelijk al enkele jaren voor pc

#include <Wire.h>
#include <LiquidCrystal.h>
#include <SHT1x.h>
#define dataPin 9
#define clockPin 8

#define FAN_PLUS 17

SHT1x sht1x(dataPin, clockPin);
float temp_c;
float humidity;
LiquidCrystal lcd(12,11,5,4,3,2);

void setup()
{
lcd.begin(16,2);
lcd.clear();
}

void loop()
{
temp_c = sht1x.readTemperatureC();
humidity = sht1x.readHumidity();

lcd.setCursor(0,0); // 1ste Rij LCD
lcd.print("Temp: ");
lcd.print(temp_c);
lcd.print((char)223); // Graden symbool
lcd.print("c");

if(temp_c > 37.80)
{
//zet FAN_PLUS op high
}
if(temp_c <= 37.80)
{
//zet FAN_PLUS op low
}

lcd.setCursor(0,1); // 2de Rij LCD
lcd.print("Vocht:");
lcd.print(humidity);
lcd.print("%");
}

Hartelijk dank!

Op 5 november 2009 13:24:40 schreef stecj366:
Doe dan een aan-uit regeling met hysteresis... dat is denk ik wel voldoende. Bij alle "klassieke" regelaars heb je eigenlijk een goed model nodig van je ding dat je wil afregelen, dus hoe ingewikkelder je de regelaar maakt, hoe moeilijker het gaat worden om dat ding in te stellen.

En als je écht fancy wil gaan doe je gewoon een neuraal netwerk, en stuur je twee verwarmingselementen: 1 in een bakje met water (zodat je de vochtigheid kan regelen) en eentje voor de temperatuur. Netwerk trainen - en klaar :)

Wat voor eieren wil je uitbroeden? Reptieleneieren hebben namelijk echt wel baat bij een vochtigheidsregeling...

Kippeneieren.. Is voor gip (eindwerk) Dus effectief zullen er geen eiren in uitgebroed worden. Vochtigheid zal gewoon met een bakje water worden bepaald. (oppervlakte...) Had ook al gedacht aan verwarmingselement in het bakje met water. Maar wordt dit niet te ingewikkeld?

Hartelijk dank! Nicksasa.. ^^

Dit is de werkende code ;)

#include <Wire.h>
#include <LiquidCrystal.h>
#include <SHT1x.h>
#define dataPin 9
#define clockPin 8

#define FAN_PLUS 7

SHT1x sht1x(dataPin, clockPin);
float temp_c;
float humidity;
LiquidCrystal lcd(12,11,5,4,3,2);

void setup()
{
lcd.begin(16,2);
lcd.clear();
pinMode(FAN_PLUS, 7);
}

void loop()
{ 
temp_c = sht1x.readTemperatureC();
humidity = sht1x.readHumidity();

lcd.setCursor(0,0); // 1ste Rij LCD
lcd.print("Temp: ");
lcd.print(temp_c);
lcd.print((char)223); // Graden symbool
lcd.print("c");

if(temp_c > 37.80)// Als de temperatuur boven de 37.8 graden is, dan..
{
digitalWrite(FAN_PLUS, HIGH);//Zet FAN_PLUS aan
}
if(temp_c <= 37.80)// Als de temperatuur Kleiner of gelijk aan 37.8 graden is, dan..
{
digitalWrite(FAN_PLUS, LOW);//Zet FAN_Plus uit
}

lcd.setCursor(0,1); // 2de Rij LCD
lcd.print("Vocht:");
lcd.print(humidity); 
lcd.print("%"); 
} 

BEDANKT!

Hoi

misschien heb je iets aan dit project.

http://www.julietmikebravo.nl/index.php/inkubator-arduino-reptile-egg-…

klein vraagje heb je geen foto`s van je project ?

Groetjes Lowa1

Op 6 november 2009 23:28:46 schreef lowa1:
Hoi

misschien heb je iets aan dit project.

http://www.julietmikebravo.nl/index.php/inkubator-arduino-reptile-egg-…

klein vraagje heb je geen foto`s van je project ?

Groetjes Lowa1

Fototje:

http://img687.imageshack.us/img687/7281/foto086.th.jpg

http://img141.imageshack.us/img141/8099/foto087.th.jpg

[Bericht gewijzigd door Maximekeuhhhh op (30%)]