7. PWM 제어(1)7.1 필요 부품
7.2 배선
7.3 프로그램 입력 및 실행
//====================================================
int led_red=5; // LED RED 핀 번호 int led_green=4; // LED green 핀 번호 int led_blue=3; // LED yellow 핀 번호 int sw=2; // 스위치 핀 번호 volatile int delay_time = 10; void sw_change() { if ( digitalRead(sw) == HIGH) delay_time = 1; else delay_time = 10; } void setup() { Serial.begin(9600);
pinMode(led_red, OUTPUT); pinMode(led_green, OUTPUT); pinMode(led_blue, OUTPUT); pinMode(sw, INPUT); digitalWrite(led_red, LOW); digitalWrite(led_green, LOW); digitalWrite(led_blue, LOW); attachInterrupt(0, sw_change, CHANGE); } void loop() { int bright_R = 0; int bright_G = 0; int bright_B = 0; for(bright_R = 0; bright_R < 256; bright_R++) { analogWrite(led_red, bright_R); delay(delay_time); } for(bright_G = 0; bright_G < 256; bright_G++) { analogWrite(led_green, bright_G); delay(delay_time); } for(bright_B = 0; bright_B < 256; bright_B++) { analogWrite(led_blue, bright_B); delay(delay_time); } for(bright_R = 0; bright_R < 256; bright_R++) { analogWrite(led_red, 255-bright_R); delay(delay_time); } for(bright_G = 0; bright_G < 256; bright_G++) { analogWrite(led_green, 255-bright_G); delay(delay_time); } for(bright_B = 0; bright_B < 256; bright_B++) { analogWrite(led_blue, 255-bright_B); delay(delay_time); } }
//====================================================
7.4 프로그램 동작
|