I am a big newb to programming. I am trying to get an rgb led to change colors at certain temperatures. I want the colors to mix at intermediate teperatures. My problem is when one color turns on the other turns off, so no yellows or cyans. here is my code
//TMP36 Pin Variables
int sensorPin = 3; //the analog pin the TMP36's Vout (sense) pin is connected to
int redPin = 3; //the resolution is 10 mV / degree centigrade with a
int greenPin = 5; //500 mV offset to allow for negative temperatures
int bluePin = 6;
/*
* setup() - this function runs once when you turn your Arduino on
* We initialize the serial connection with the computer
*/
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
Serial.begin(9600); //Start the serial connection with the computer
//to view the result open the serial monitor
}
void loop() // run over and over again
{
//getting the voltage reading from the temperature sensor
int reading = analogRead(sensorPin);
// converting that reading to voltage, for 3.3v arduino use 3.3
float voltage = reading * 5.0;
voltage /= 1024.0;
// print out the voltage
Serial.print(voltage); Serial.println(" volts");
// now print out the temperature
float temperatureC = (voltage - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset
//to degrees ((volatge - 500mV) times 100)
Serial.print(temperatureC); Serial.println(" degrees C");
// now convert to Fahrenheight
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF); Serial.println(" degrees F");
if (temperatureF > 80) digitalWrite(redPin, HIGH);
if (temperatureF < 80) digitalWrite(redPin, LOW);
if (temperatureF > 50) digitalWrite(greenPin, HIGH);
if (temperatureF < 50) digitalWrite(greenPin, LOW);
if (temperatureF > 90) digitalWrite(greenPin, LOW);
if (temperatureF > 65) digitalWrite(bluePin, LOW);
if (temperatureF < 65) digitalWrite(bluePin, HIGH);
delay(1000); //waiting a second
}