2014년 10월 10일 금요일

Arduino Projects Book_04번 실험

2014.10.10. 15:47~16:52 

제목: Color Mixing Lamp 
참고: arduino.cc , <Arduino Projects Book>

실험 준비물 :  LED with 4 legs, 220, 10k resistor, photoresistor

책자에는 45분짜리 라고 되어있는데 오랜만에 다시 실험을 하느라 한시간 넘짓 걸렸다. 이 실험은 다리가 4개인 LED를 사용하는 것으로 R,G,B 색 조합으로 어느 색상이든지 표현할 수 있다. 


그림과 같이 회로는 구성할 수 있으며, 


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);
  blueSensorValue = 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;
  blueValue = blueSensorValue/4;
  greenValue = greenSensorValue/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);
}

이것은 책을 보고 작성한 소스코드이다. 
아두이노 문법은 함수를 만들어논 형태라서 함수가 어떤 기능을 하는지만 알고 있으면 쉽게 사용할 수 있다. 
 이대로 소스를 짜면 시리얼 모니터를 통해 볼 때 보기가 불편한데, 
* 이유는 Serial.println을 사용하지 않아서이다. ln과 안붙은 것의 차이는 Print할때 한줄을 띄고 안띄고의 차이이다. 

또한 실험중에 Photoresistor에 각각 R,G,B 색상의 셀로판지를 붙여서 그 빛의 양을 보는 것인데 파란색상이 없어서 그냥해서 정확히 결과를 보여주진 못했다. 손으로 가려도 일정 빛이상을 받아들이기에 두 색상을 가릴때 정확히 안가린 색상을 보여주는 결과는 나오지 않았다.

 이 실험에 LED를 생각해보면 우리 스마트폰에도 있다. Samsung Galaxy S4에 상단에 LED가 바로 그것이다. 카카오톡 올때 노란색 문자올때 파란색 충전중일때 빨간색상이 들어오는 것 그것이 이 간단한 실험을 직접 적용한 것이라고 할 수 있다.