question about mixing colors with rgb led

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

You if conditions can trigger multiple events, say you get 85f. It'll trigger a few conditions. Try using if else, else if.

its the way your if structure is made

you have

if (temperatureF > 80) digitalWrite(redPin, HIGH);
if (temperatureF < 80) digitalWrite(redPin, LOW);

what happens if temp is 75, red is off green is on, color = green

try something more along the lines of

  if (temperatureF > 80) digitalWrite(redPin, HIGH);
  else if(temperatureF > 50 && temperatureF < 80) 
    digitalWrite(redPin, LOW);
    digitalWrite(greenPin, HIGH);

at 75 that would give you amber

notice the else if