# 수업 개요
일시 : 2020년 9월 25일
대상 : 고등학생 8명 (동아리)
수업 목표
간단한 피지컬 컴퓨팅 실습
실습환경
아두이노 키트
[Tinkercad] > circuits
# 수업 계획
피지컬 컴퓨팅 사례 영상 시청
Philips hue
RGB LED 동작 실습
색 지정하기
밝아졌다가 흐려지기
랜덤 색
RGB LED + 피에조
----
int r = 11, g = 10, b = 9;
void setup()
{
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
}
void loop()
{
//red
analogWrite(r, 255);
analogWrite(g, 0);
analogWrite(b, 0);
delay(500);
//green
analogWrite(r, 0);
analogWrite(g, 255);
analogWrite(b, 0);
delay(500);
//blue
analogWrite(r, 0);
analogWrite(g, 0);
analogWrite(b, 255);
delay(500);
}
----
int r = 11, g = 10, b = 9;
void setup()
{
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
}
void loop()
{
int rval = 0;
while(rval < 256){
analogWrite(r, rval);
analogWrite(g, 0);
analogWrite(b, 0);
rval = rval + 1;
delay(200);
}
while(rval > 0){
analogWrite(r, rval);
analogWrite(g, 0);
analogWrite(b, 0);
rval = rval - 1;
delay(200);
}
}
----
int r = 11, g = 10, b = 9;
void setup()
{
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int rval = 0;
while(rval < 256){
analogWrite(r, rval);
analogWrite(g, 0);
analogWrite(b, 0);
rval = rval + random(0, 11);
Serial.print("rval: ");
Serial.println(rval);
delay(200);
}
while(rval > 0){
analogWrite(r, rval);
analogWrite(g, 0);
analogWrite(b, 0);
rval = rval - random(0, 11);
Serial.print("rval: ");
Serial.println(rval);
delay(200);
}
}
----
int r = 11, g = 10, b = 9;
void setup()
{
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int rval = random(0,256);
int gval = random(0,256);
int bval = random(0,256);
analogWrite(r, rval);
analogWrite(g, gval);
analogWrite(b, bval);
delay(200);
}
---
// 박수 소리를 불빛으로 표현하기
analogRead() : https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/
map() : https://www.arduino.cc/reference/en/language/functions/math/map/
if() :
int r = 11, g = 10, b = 9, s = 0;
void setup()
{
pinMode(r, OUTPUT);
pinMode(g, OUTPUT);
pinMode(b, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int soundVal = analogRead(s);
Serial.print("soundVal: ");
Serial.println(soundVal);
int rVal = map(soundVal, 0, 1023, 0, 255);
analogWrite(r, rVal);
analogWrite(g, 0);
analogWrite(b, 0);
delay(100);
}