Go Down

Topic: Graphing temperature with processing problem! (Read 975 times) previous topic - next topic

A student in need

Alright So my current set up for my Arduino Duemilanove is 2 buttons 3 LED  a Fan and a Temp sensor my code is set to run the speed of the fan at a certain speed depending  on the temp i have a low and high set point. these two set points could be changed by using the buttons but for some odd reason every time  my temp either gets too hot or i lower my set point too low my arduino stops reading values and my graph stops giving me data  >:(

I'm sure the problem is only with the Arduino code so I'm only posting that THX


int sensorPin0 = 0, ledPin = 9, sensorPin = 3, x = 0, press=0, press2=0, sensorPin2=10, Th=25,Tl=23;
double t;
                       
void setup()
{
 Serial.begin(9600);                      
 pinMode(7, OUTPUT);
 pinMode(6, OUTPUT);
 pinMode(5, OUTPUT);
}

void loop()                    
{ int reading= digitalRead(sensorPin);
 while(reading>0)
 {
   reading= digitalRead(sensorPin);
   press++;
   delay(100);
 }
 if (press>1){x++;
 press=0;}
 
 int reading2= digitalRead(sensorPin2);
 while(reading2>0)
 {
   reading2= digitalRead(sensorPin2);
   press2++;
   delay(100);
 }
 if (press2>1){x--;
 press2 = 0;}


 
int reading0 = analogRead(sensorPin0);  
float voltage = reading0 * 5.0 / 1024;
float temperatureC = (voltage - 0.5) * 100 ;                                              
Th=27+x;
Tl=23+x;
if (temperatureC > (Th))
{t=255;
 digitalWrite(7, HIGH);
 digitalWrite(6, LOW);
 digitalWrite(5, LOW);
}
if (temperatureC < (Th) && temperatureC > (Tl))
{t=100;
digitalWrite(7, LOW);
 digitalWrite(6, HIGH);
 digitalWrite(5, LOW);
 }
 if (temperatureC <=(Tl))
{t=0;
 digitalWrite(7, LOW);
 digitalWrite(6, LOW);
 digitalWrite(5, HIGH);
}
  for (int i=0; i<=t; i++)
 {
   analogWrite(ledPin, i);
 }
   Serial.println(Th);
   Serial.println(Tl);
   Serial.println(temperatureC);
   Serial.println(t);
}


PaulS

Quote
So my current set up for my Arduino Duemilanove is 2 buttons 3 LED  a Fan and a Temp sensor


Code: [Select]
int sensorPin0 = 0, ledPin = 9, sensorPin = 3, x = 0, press=0, press2=0, sensorPin2=10, Th=25,Tl=23;

Is that sensor connected to sensorPin, sensorPin0, or sensorPin2? Why not actually use meaningful names?

Code: [Select]
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);

Why don't these pins get meaningful names?

Code: [Select]
int reading= digitalRead(sensorPin);
Which sensor is this that is being read?

Code: [Select]
while(reading>0)
{
  reading= digitalRead(sensorPin);
  press++;
  delay(100);
}
if (press>1){x++;
press=0;}

No matter how long the switch (I'm assuming that the "sensor" is really a switch) is held down, x is only incremented once. Is that what you want to have happen?

Quote
my code is set to run the speed of the fan at a certain speed depending  on the temp

The only pin that has a non-constant output is the one in the variable named ledPin. Do you have an LED or a fan connected to that pin?

Quote
every time  my temp either gets too hot or i lower my set point too low my arduino stops reading values and my graph stops giving me data

So, every time pin 7 is set HIGH, the program stops outputting serial data. What is connected to pin 7?

Grumpy_Mike

Quote
but for some odd reason


It is not an odd reason. It is a computer program it is doing exactly what you told it to. The fact that you told it to do the wrong thing is not the computers fault or an odd or random event but entirely down to you.

Once you get that in your head you might go some way towards solving your problem.

A student in need

Thx i have rewrote my code now with better meaning full language and it turned out that it was a resistor that had too low of a resistance so my program got crazy when the pin would send out a value of 255  :)

Go Up