์๋ ๋ก๊ทธ ์ถ๋ ฅ
PWM
- ํํ์ ์ด์ฉํด ์กฐ์
- HIGH์ธ ์๊ฐ์ ์ธก์
- Duty cycle
- 0, 25, 50, 100%
- Duty cycle
ํ
- ์์ ~ ์๋ ํ๋ง ์๋ ๋ก๊ทธ ์ถ๋ ฅ ๊ฐ๋ฅํ ํ
Write, Read
- Read
- A0~A5
- 2^10 ๊น์ง ํํ ๊ฐ๋ฅ
- Write
- ์์ ~ ๋ ํ
- 2^8 ๊น์ง ๊ฐ๋ฅ
- => ์์ ~ ๋ ํ๋ค์ writeํ๋ฉด ์ต๋ 2^8๊น์ง ๋ฐ์ ๋ชป ํ๋ ๊ฒ
LED ์์ํ ๋ฐํ์ก๋ค ๊บผ์ง๊ธฐ
์ค์ต
void setup()
{
for(int j=9;j<=11;j++){
pinMode(j, OUTPUT);
}
}
void loop()
{
for(int j=9;j<=11;j++){
// ๊ฐ์ด๋ฐ๋ ๋จผ์ ์ผ์ง๋๋ก
if(j%2==0){
brightOn(j);
}
else{
brightOff(j);
}
}
delay(3000);
for(int j=9;j<=11;j++){
if(j%2==0){
brightOff(j);
}
else{
brightOn(j);
}
}
delay(3000);
}
void brightOn(int pinNum){
// 0 ~ 2^10 ๊ฐ๋ฅ
for(int i=0;i<256;i++){
analogWrite(pinNum, i);
}
}
void brightOff(int pinNum){
for(int i=254;i>=0;i--){
analogWrite(pinNum, i);
}
}
์ผ์ LED ๊ฐ๋ณ์ ํญ์ผ๋ก ์ ์ด
์ค์ต
common Cathode (-)
- HIGH ๋ฅผ ์ค์ผ ํจ
Common Anode (+)
- LOW๋ฅผ ์ค์ผ ํจ
// C++ code
//
const int RED=11;
const int BLUE=10;
const int GREEN=9;
const int RED_BUTTON=A0;
const int BLUE_BUTTON=A1;
const int GREEN_BUTTON=A2;
void setup()
{
Serial.begin(9600);
pinMode(RED, OUTPUT);
pinMode(BLUE, OUTPUT);
pinMode(GREEN, OUTPUT);
}
void loop()
{
double redBright=change(RED_BUTTON);
double blueBright=change(BLUE_BUTTON);
double greenBright=change(GREEN_BUTTON);
analogWrite(RED, redBright);
analogWrite(BLUE, blueBright);
analogWrite(GREEN, greenBright);
Serial.println("RED: "+String(redBright)+" BLUE: "+String(blueBright)+" GREEN: "+String(greenBright));
}
double change(int pin){
return (255.0/1023)*analogRead(pin);
}
'๐ป My Work > โจ Arduino' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋์ด๋ ธ] ํผ์์กฐ ๋ถ์ (Piezo buzzer) (0) | 2022.11.28 |
---|---|
[์๋์ด๋ ธ] ์จ๋ ์ผ์ <TMP36>, analogReference (2) | 2022.11.27 |
[์๋์ด๋ ธ] ์ด์ํ ์ผ์ < Ping))), HC-SR04> (0) | 2022.11.24 |
[์๋์ด๋ ธ] ์กฐ๋์ผ์(Photo Resistor ํฌํ ๋ ์ง์คํฐ), ์ค๋งํธ ๊ฐ๋ก๋ฑ (0) | 2022.11.23 |
[์๋์ด๋ ธ] ๊ฐ๋ณ์ ํญ (์๋ ๋ก๊ทธ ๊ฐ ์ฝ๊ธฐ analogRead) (0) | 2022.11.22 |