빛 다루기
인간이 가지는 지각 중에 가장 민감하고 활용도가 높은 것은 시각이다. 시각은 빛을 감지하는 지각이다. 빛은 정보 전달의 매체임과 동시에, 다양한 아름다움의 매체이기도 하다. 이 장에서 가장 간단한 디지털 아웃풋인 LED를 통해 빛을 통한 인터랙션을 연습해 본다. 간단한 LED 켜고 끄기에서부터 아날로그 컨트롤, 색 컨트롤, 다량의 LED 컨트롤까지 디지털/아날로그 아웃풋으로서의 빛을 다루어 본다.
디지털과 아날로그 아웃풋(Digital & Analog Output)
디지털은 0과 1의 단속적인 2진 신호이다. 켜지거나 꺼지는 동작으로 구분된다. 전구를 켜고 끄는 것처럼. 반면 아날로그는 연속적(continuous)이다. 서서히 켜지고 꺼지는 전구, 소리의 볼륨 같이 연속적인 변화를 보인다. 디지털의 세계에서, 그렇다고, 아날로그를 구현할 수 없는 것은 아니다. 단순화해서 말하자면 디지털을 활용해 아날로그를 흉내내는 것이지만 말이다. 사실 세상은 더 아날로그하다.
exercise
LED를 일정한 간격으로 깜빡거리게 해 봅니다.
material
LED(아무 색이나), 220Ω 저항
circuit
![](http://mimlab.net/wp-content/uploads/2021/12/2.led켜기.jpg)
code
// LED connected to digital pin 13
int ledPin = 13;
// run once, when the sketch starts
void setup() {
// set the digital pin as output
pinMode(ledPin, OUTPUT);
}
// run over and over again
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
further exercise
(초급) LED가 더 빨리 혹은 더 느리게 깜빡거리게 해 봅니다.
(중급) LED가 리드미컬하게 깜빡거리게 해 봅니다.
(고급) LED가 음악에 맞춰 깜빡거리게 해 봅니다.(실제 소리 감지는 아님)