2013年11月24日 星期日

Week12 葉玉婷

03  LOVE-O-METER
會依溫度不同而亮一顆燈、兩顆燈、三顆燈(!)

程式碼


 const int sensorPin =A0;
const float baselineTemp = 20.0;
void setup()
{
  Serial.begin(9600);
  for(int pinNumber = 2;pinNumber<5;pinNumber++)
  {
      pinMode(pinNumber,OUTPUT);
      digitalWrite(pinNumber,LOW);
  }
}
void loop()
{
    int sensorVal = analogRead(sensorPin);
    Serial.print("Sensor Value: ");
    Serial.print(sensorVal);
    float voltage = (sensorVal/1024.0)*5.0;
    Serial.print(" , Volts");
    Serial.print(voltage);
    Serial.print(" , degree C: ");
    float temperature = (voltage- .5)*100;
    Serial.println(temperature);
    if(temperature<baselineTemp)
    {
       digitalWrite(2,LOW);
       digitalWrite(3,LOW);
       digitalWrite(4,LOW);
    }
    else if(temperature>=baselineTemp+2 && temperature<baselineTemp+4)
    {
       digitalWrite(2,HIGH);
       digitalWrite(3,LOW);
       digitalWrite(4,LOW);
    }
    else if(temperature>=baselineTemp+4 && temperature<baselineTemp+6)
    {
       digitalWrite(2,HIGH);
       digitalWrite(3,HIGH);
       digitalWrite(4,LOW);
    }
    else if(temperature>=baselineTemp+6)
    {
       digitalWrite(2,HIGH);
       digitalWrite(3,HIGH);
       digitalWrite(4,HIGH);
    }
    delay(1);
}


會不斷跑出來現在的溫度~~~~~

照片




影片




04  COLOR  MIXING  LAMP
會依感光不同,LED燈泡產生不同的顏色

程式碼




const int greenLEDPin = 9;
const int redLEDPin = 11;
const int blueLEDPin = 10;
const int redSensorPin = A0;
const int greenSensorPin = A1;
const int blueSensorPin = A2;
int redValue = 0;
int greenValue = 0;
int blueValue = 0;
int redSensorValue = 0;
int greenSensorValue = 0;
int blueSensorValue = 0;
void setup()
{
    Serial.begin(9600);
    pinMode(greenLEDPin,OUTPUT);
    pinMode(redLEDPin,OUTPUT);
    pinMode(blueLEDPin,OUTPUT);
}
void loop()
{
    redSensorValue = analogRead(redSensorPin);
    delay(5);
    greenSensorValue=analogRead(greenSensorPin);
    delay(5);
    blueSensorValue=analogRead(blueSensorPin);
    
    Serial.print("Raw Sensor Values \t Red:");
    Serial.print(redSensorValue);
    Serial.print("\t Green:");
    Serial.print(greenSensorValue);
    Serial.print("\t Blue:");
    Serial.print(blueSensorValue);
    
    redValue=redSensorValue/4;
    greenValue=greenSensorValue/4;
    blueValue=blueSensorValue/4;
    
    Serial.print("Mapped Sensor Values \t Red:");
    Serial.print(redValue);
    Serial.print("\t Green:");
    Serial.print(greenValue);
    Serial.print("\t Blue:");
    Serial.println(blueValue);
    
    analogWrite(redLEDPin,redValue);
    analogWrite(greenLEDPin,greenValue);
    analogWrite(blueLEDPin,blueValue);
}


RGB的變化量

照片



影片



沒有留言:

張貼留言