顯示具有 Week12 標籤的文章。 顯示所有文章
顯示具有 Week12 標籤的文章。 顯示所有文章

2013年12月15日 星期日

Week12魏正

Project 02
int switchState = 0;
void setup()
{
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(2,INPUT);
}
void loop()
{
  switchState = digitalRead(2);
  if(switchState == LOW)
  {
    digitalWrite(3,HIGH);
    digitalWrite(4,LOW);
    digitalWrite(5,LOW);
  }
  else
  {
    digitalWrite(3,LOW);
    digitalWrite(4,LOW);
    digitalWrite(5,HIGH);
 
    delay(250);
 
    digitalWrite(4,HIGH);
    digitalWrite(5,LOW);
 
    delay(250);
  }
}

Project 03
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(", degrees 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, HIGH);
    digitalWrite(4, LOW);  
  }
 else if(temperature >= baselineTemp+6){
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
 }
 delay(1);
}

Project 04
const int greenLEDPin = 9;
const int redLEDPin = 10;
const int blueLEDPin = 11;

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.print(blueValue);

  analogWrite(redLEDPin, redValue);
  analogWrite(greenLEDPin, greenValue);
  analogWrite(blueLEDPin, blueValue);
}

2013年12月1日 星期日

WEEK12



W12 課堂練習

http://youtu.be/l5bOdYR_N0g


課堂練習

Love-O-meter
  tmp 溫度感應器
const int sensorPin = A0;/*sensor的輸入腳位*/
const float baselineTemp = 20.0;/*門檻溫度*/
void setup(){
  Serial.begin(9600);
  for(int pinNumber=2;pinNumber<5;pinNumber++){
    pinMode(pinNumber,OUTPUT);digitalWrite(pinNumber,LOW);
  }//設定pin腳的OUTPUT,初始化燈號為0 }

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(",  degrees  C:  ");
  float temperature = (voltage-0.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);
}

2013年11月25日 星期一

第十二週課堂

1.Love-O-meter
  tmp 溫度感應器

const int sensorPin = A0;/*sensor的輸入腳位*/
const float baselineTemp = 20.0;/*門檻溫度*/
void setup(){
  Serial.begin(9600);
  for(int pinNumber=2;pinNumber<5;pinNumber++){
    pinMode(pinNumber,OUTPUT);digitalWrite(pinNumber,LOW);
  }//設定pin腳的OUTPUT,初始化燈號為0
}
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(",  degrees  C:  ");
  float temperature = (voltage-0.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);
}
2.
影片待完成.....

2013年11月24日 星期日

12周

1. Arduino Projects Book 的 Project 03 及 Project 04

http://www.youtube.com/watch?v=yeqHtqOKjFo

http://blog.arduino.cc/2013/07/30/arduino-starter-kit-video-tutorials/
http://forum.arduino.cc/index.php?PHPSESSID=2lv70v95kt2ic2lvqcbos9q9n3&board=86.0


http://quarknet.fnal.gov/fnal-uc/quarknet-summer-research/QNET2011/project_files/teacher_files/Getting_Started_with_Arduino.pdf
http://www.slideshare.net/GonzaloSantiago/arduino-26585969


十二月將邀請叁式曾煒傑創辦人來演講哦!
http://www.thefwa.com/site/heineken-pioneering-bar
http://www.ultracombos.com/blog/archives/2041
http://www.npm.gov.tw/zh-tw/Article.aspx?sNo=04005119


//程式碼
project3
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);
}


project4
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/800*255; ///將範圍值做修改讓顏色變化更明顯
greenValue=greenSensorValue/800*255;
blueValue=blueSensorValue/800*255;
Serial.print("\nMapped Sensor Values \t Red:");
Serial.print(redValue);
Serial.print("\t Green:");
Serial.print(greenValue);
Serial.print("\t Blue:");
Serial.print(blueValue);

analogWrite(redLEDPin,redValue);
analogWrite(greenLEDPin,greenValue);
analogWrite(blueLEDPin,blueValue);
}

Week12

## Project 3 : Love-o-Meter


















 DEMO


##程式碼
const int sensorPin = A0; const float baselineTemp = 24.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(", degrees 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, HIGH); digitalWrite(4, LOW); } else if(temperature >= baselineTemp+6){ digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); } delay(1); }

##Project 4 :Color Mixing Lamp
















DEMO


##程式碼
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 Value \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 Value \t Red"); Serial.print(redValue); Serial.print("\t Green"); Serial.print(greenValue); Serial.print("\t Blue"); Serial.print(blueValue); analogWrite(redLEDPin,redValue); analogWrite(greenLEDPin,greenValue); analogWrite(blueLEDPin,blueValue); }

week12




project  3
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(", degrees 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, HIGH); digitalWrite(4, LOW); } else if(temperature >= baselineTemp+6){ digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); } delay(1); }



project  4
const int greenLEDPin = 9; const int redLEDPin = 10; const int blueLEDPin = 11; 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.print(blueValue); analogWrite(redLEDPin, redValue); analogWrite(greenLEDPin, greenValue); analogWrite(blueLEDPin, blueValue); }

Week12 張智棠 陳奕汎

實作Arduino Book CH3,CH4

CH3 LOVE-O- METER

Code :

const int sensorPin = A0;
const float baselineTemp = 90.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(", degrees 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); 
  
}

CH4 COLOR MIXING LEMP

Code :

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: ");
  
  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.print(blueValue);
  
  analogWrite(redLEDPin, redValue);
  analogWrite(greenLEDPin, greenValue);
  analogWrite(blueLEDPin, blueValue);

}
實作 :
ch3

ch4

第十二週上課內容

chapter 04
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 Value \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("Mapp Sensor Value \t Red: ");
  Serial.print(redValue);
  Serial.print("\t Green: ");
  Serial.print(greenValue);
  Serial.print("\t Blue: ");
  Serial.print(blueValue);
  
  analogWrite(redLEDPin,redValue);
  analogWrite(greenLEDPin,greenValue);
  analogWrite(blueLEDPin,blueValue);
}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 Value \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("Mapp Sensor Value \t Red: ");
  Serial.print(redValue);
  Serial.print("\t Green: ");
  Serial.print(greenValue);
  Serial.print("\t Blue: ");
  Serial.print(blueValue);
  
  analogWrite(redLEDPin,redValue);
  analogWrite(greenLEDPin,greenValue);
  analogWrite(blueLEDPin,blueValue);
}

影片





week12

lesson 03:
const int sensorPin = A0;
const float baselineTemp = 25.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(", degrees 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); 







  
}


lesson 04:

const int Brightness = 20;  // set overall brightness, use lower value in darkroom to protect your eyes (0-255)
const int greenLEDPin = 9;    // LED connected to digital pin 9
const int redLEDPin = 10;     // LED connected to digital pin 10
const int blueLEDPin = 11;    // LED connected to digital pin 11
const int redSensorPin = A0;  // pin with the photoresistor with the red gel
const int greenSensorPin = A1;   // pin with the photoresistor with the green gel
const int blueSensorPin = A2;   // pin with the photoresistor with the blue gel
int redSensorValue = 0; // variable to hold the value from the red sensor
int greenSensorValue = 0; // variable to hold the value from the green sensor
int blueSensorValue = 0; // variable to hold the value from the blue sensor
int redSensorHigh = 0; //High and low value for mapping. Notice that 'High' value were set low at 0, so that during calibration, its value would be be pushed up. See project 6.
int greenSensorHigh = 0;
int blueSensorHigh = 0;
int redSensorLow = 1023; // the opposite is true for 'Low' value
int greenSensorLow = 1023;
int blueSensorLow = 1023;
void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600);
  // set the digital pins as outputs
  pinMode(greenLEDPin,OUTPUT);
  pinMode(redLEDPin,OUTPUT);
  pinMode(blueLEDPin,OUTPUT);

  //switching on your lamp before calibration, as it would affect calibration too, especially in dark environment
  analogWrite(redLEDPin, Brightness);
  analogWrite(greenLEDPin, Brightness);
  analogWrite(blueLEDPin, Brightness);

  //actual calibration which takes 10 seconds. During calibration, LED would shine at constant brightness. After that, it'll start to respond.
  while (millis() < 10000) {
  redSensorValue = analogRead(redSensorPin);  //read pin
  if (redSensorValue > redSensorHigh) {  //push 'High' value up based on sensor value. At the end of calibration, 'High' value would take the highest 'SensorValue' during the 10 seconds.
  redSensorHigh = redSensorValue;
  }
  if (redSensorValue < redSensorLow) { //opposite is true for 'Low' value
  redSensorLow = redSensorValue;
  }
  delay(5);

  greenSensorValue = analogRead(greenSensorPin);
  if (greenSensorValue > greenSensorHigh) {
  greenSensorHigh = greenSensorValue;
  }
  if (greenSensorValue < greenSensorLow) {
  greenSensorLow = greenSensorValue;
  }
  delay(5);
  blueSensorValue = analogRead(blueSensorPin);
  if (blueSensorValue > blueSensorHigh) {
  blueSensorHigh = blueSensorValue;
  }
  if (blueSensorValue < blueSensorLow) {
  blueSensorLow = blueSensorValue;
  }
  delay(5);
  }
}
void loop() {
  // Read the sensors first:

  // read the value from the red-filtered photoresistor:
  redSensorValue = analogRead(redSensorPin);

  // give the ADC a moment to settle
  delay(5);
  // read the value from the green-filtered photoresistor:
  greenSensorValue = analogRead(greenSensorPin);
  // give the ADC a moment to settle
  delay(5);
  // read the value from the blue-filtered photoresistor:
  blueSensorValue = analogRead(blueSensorPin);
  // print out the values to the serial monitor
  Serial.print("raw sensor Values \t red: ");
  Serial.print(redSensorValue);
  Serial.print("\t green: ");
  Serial.print(greenSensorValue);
  Serial.print("\t Blue: ");
  Serial.println(blueSensorValue);
  /*
  In order to use the values from the sensor for the LED,
  you need to do some math. The ADC provides a 10-bit number,
  but analogWrite() uses 8 bits. You'll want to divide your
  sensor readings by 4 to keep them in range of the output.
  */
  /*
  Changed from a mere division by 4 in the original code to mapping.
  Lowest value recorded at calibration would be mapped to 0, and highest value would be mapped to brightness set earlier.
  The constraint function is set to prevent flickering, when value are negative or exceeds 255.
  */

  int redValue = map(redSensorValue,redSensorLow,redSensorHigh,0,Brightness);
  redValue = constrain(redValue,0,255);
  int greenValue = map(greenSensorValue,greenSensorLow,greenSensorHigh,0,Brightness);
  greenValue = constrain(greenValue,0,255);
  int blueValue = map(blueSensorValue,blueSensorLow,blueSensorHigh,0,Brightness);
  blueValue = constrain(blueValue,0,255);
  //  print out the mapped values
  Serial.print("Mapped sensor Values \t red: ");
  Serial.print(redValue);
  Serial.print("\t green: ");
  Serial.print(greenValue);
  Serial.print("\t Blue: ");
  Serial.println(blueValue);
  /*
  Now that you have a usable value, it's time to PWM the LED.
  */
  analogWrite(redLEDPin, redValue);
  analogWrite(greenLEDPin, greenValue);
  analogWrite(blueLEDPin, blueValue);
}


Week 12 課堂作業



第三課
const int sensorPin = A0;
const float baselineTemp = 25.0;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  for(int pinNumber = 2; pinNumber<5; pinNumber++){
    pinMode(pinNumber,OUTPUT);
    digitalWrite(pinNumber, LOW);
  }
}

void loop() {
  // put your main code here, to run repeatedly:
  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(", degrees 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);
}



第四課




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(greenSensorvalue);
  delay(5);
  blueSensorvalue = analogRead(blueSensorvalue);
  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 SensorValues \t Red: ");
  Serial.print(redValue);
  Serial.print("\t Green: ");
  Serial.print(greenValue);
  Serial.print("\t Blue: ");
  Serial.print(blueValue);
  analogWrite(redLEDPin, redValue);
 analogWrite(greenLEDPin,greenValue);
 analogWrite(blueLEDPin,blueValue);
}

week12

第1節課
Project 03 Love-O-Meter 溫度測試亮燈
隨著溫度的上升,讓燈泡亮起來
============================================================
const int sensorPin = A0; const float baselineTemp = 20.2; 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(", degrees 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); }

第2節課
Project 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.print(blueValue); analogWrite(redLEDPin, redValue); analogWrite(greenLEDPin, greenValue); analogWrite(blueLEDPin, blueValue); }