schakelen op ingestelde temp werkt niet

IDE gerelateerde berichten
Berichten: 34
Geregistreerd: 13 Apr 2021, 10:08

schakelen op ingestelde temp werkt niet

Berichtdoor Tom Hoekstra » 09 Aug 2022, 17:59

Hallo, Wie kan mij helpen,
Ik neem 1 op 1 de formule uit een (US)tutorial over met gebruik van een LM36 in de UNO.


//Declare variables

float tempC;
int tempPin = 0; // Attach Temp sensor vout to analog pin 0.
int ledPin = 13; // led is connected to pin 13 and gnd no need for resistor is built in pin13
int fan1 = 5; // fan1 is connected to pin 5

//Write setup function

void setup()
{
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
pinMode (ledPin, OUTPUT);
pinMode (fan1, OUTPUT);
pinMode (tempPin, INPUT);
}

// Write the loop that will control what we want the arduino to do with the sensor readout

void loop()
{
tempC = analogRead(tempPin); // read the analog value from the lm36 sensor.

float voltage = tempC * 5.0;
voltage /= 1024.0;
Serial.print(voltage); Serial.println(" volts"); // print out the voltage
// now print out the temperature
float temperatureC = (voltage - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset
//to degrees ((voltage - 500mV) times 100)
Serial.print(temperatureC); Serial.println(" degrees C");
if (tempC >= 30)

{
digitalWrite (ledPin, HIGH); //turn on led
digitalWrite (fan1, HIGH); // turns on fan1.
}
else
{
digitalWrite (ledPin, LOW); //turn off led
digitalWrite (fan1, LOW); // turns off fan1.

}
delay (3000);

}

Maar ik krijg:

De led gaat al na ca 2 seconden aan en blijft aan evenals de fan.
omgevingstemp is nu ca 24gr, maar al zet ik de grens naar: if (tempC >= 125) dan nog gaan de lede en fan al na ca 2 sec aan.
ser. mon. leest: 0.74 volts / 23.73 degrees C. (lijkt me uitstekend overeenkomen met de werkelijkheid).
Wat doe ik verkeerd?
???

Advertisement

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: schakelen op ingestelde temp werkt niet

Berichtdoor shooter » 09 Aug 2022, 18:58

onder andere 30 is een integer dus geen float en dat vergelijken gaat dan mis dus maak van je setpunt of een float of zet er 30.0 dan maakt de compiler er een float van.
en ja ik weet dat /= mag maar dat maakt het moeilijk leesbaar.
paul deelen
shooter@home.nl

Berichten: 34
Geregistreerd: 13 Apr 2021, 10:08

Re: schakelen op ingestelde temp werkt niet

Berichtdoor Tom Hoekstra » 09 Aug 2022, 23:13

ok, 30 gewijzigd in 30.0 maar helaas geen verschil, nog steeds na een 2tal seconden schakelt hij aan en gaat niet meer uit.
het stukje /= komt uit een andere tut die een goede uitleg gaf voltage/gr C. Door dit stukje gaf de ser mon ook opeens de juiste data.
de formule voorheen was: tempC=(5.0 * tempC * 100.0)/1024.0; dit gaf in de ser mon alleen gr Fahrenheit, dus dat heb ik gewijzigd in bovenstaande.

mvg Tom
hoekstra.tom.tkh@gmail.com

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: schakelen op ingestelde temp werkt niet

Berichtdoor shooter » 10 Aug 2022, 06:06

tempC is een analoge waarde tot 1024 en temperatureC is wat anders
paul deelen
shooter@home.nl

Berichten: 34
Geregistreerd: 13 Apr 2021, 10:08

Re: schakelen op ingestelde temp werkt niet

Berichtdoor Tom Hoekstra » 10 Aug 2022, 10:41

BINGO! dat was het probleem, 2x temperature gewijzigd in tempC en hij draait nu perfect en schakelt bij 30grC.
Hartelijk dank.
mvg
Tom

Terug naar Arduino IDE

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 5 gasten