ํฌํ ์ ๋ฏธํฐ๋ ์ฐ์์ ์ธ ์๋ ๋ก๊ทธ ์ ํธ๋ฅผ ์กฐ์ํ๋ค.
์ธ๊ฐ์ ์ธ๊ณ๋ฅผ ์๋ ๋ก๊ทธ๋ก ์ธ์ํ๋ค.
๋์งํธ ์ ๋ณด๋ ๊ฐ๋ณ์ ์ธ ์ซ์๋ง์ผ๋ก ์๋ ๋ก๊ทธ ๋ฐ์ดํฐ์ ๋๋ต์ ์ธ ๊ฐ์ ์ถ์ ํ๋ค.
์๋์ด๋ ธ๋ ํฌํ ์ ๋ฏธํฐ๋ก๋ถํฐ ์ฐ์์ ์ธ ์๋ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ์๋ ๋ก๊ทธ์ ๊ทผ์ฌ์น ๊ฐ์ ์ผ๋ จ์ ์ซ์๋ค๋ก ํ์ํ๋ค.
ํฌํ ์ ๋ฏธํฐ์ ๊ฐ์ด๋ฐ ํ์ด ์๋์ด๋ ธ์ ์๋ ๋ก๊ทธ ์ ๋ ฅ ํ์ผ๋ก ์ ํธ๋ฅผ ๋ณด๋ด๋ฉด, ์๋์ด๋ ธ๋ฅผ ์ด๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ์ ์ฝ๋๋ค.
์ฌ์ค LED๋ ์ค์ ๋ก ์ผ์ก๋ค ๊บผ์ก๋ค๋ฅผ ๋ฐ๋ณตํ๊ณ ์๋ค. ๊ทธ ์๋๊ฐ ๋๋ฌด ๋นจ๋ผ์ ์ฐ๋ฆฌ ๋์๋ LED๊ฐ ๊ณ์ ์ผ์ ธ ์์ผ๋ฉด์ ๋ฐ๊ธฐ๊ฐ ๋ฌ๋ผ์ง๋ ๊ฒ์ผ๋ก ์ธ์ํ๋ ๊ฒ๋ฟ์ด๋ค. ์ด๋ฅผ ์์ํจ๊ณผ๋ผ๊ณ ํ๋ค.
์๋์ด๋ ธ๋ ์์ ํจ๊ณผ๋ฅผ ๋ง๋ค์ด๋ด๊ธฐ ์ํด์ ํ์คํญ ๋ณ์กฐ๋ผ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
์๋์ด๋ ธ๋ ์ ์์ ๋ฐ๋ณตํด์ ๋น ๋ฅด๊ฒ ์ผฐ๋ค-๊ป๋ค ๋ฐ๋ณตํ๋ฉด์ ํ์ค๋ฅผ ์์ฑํ๋ค.
์ฃผ๊ธฐ ๋์ ํ์คํญ์ ๋ฐ๋ผ ํ๊ท ์ถ๋ ฅ์ด ๊ฒฐ์ ๋๋ฉฐ, ์ด ํ์คํญ์ ๋ณํ์์ผ์ ์๊ธฐ๋ ํจํด์ ์ผ์ง-๊บผ์ง ์ํ๋ก ์ ํ๋๋ ์ ์์ ํ๋ด๋ธ๋ค. ( ON : 5V / OFF : 0V / ํ๊ท ๊ฐ : 2.5V)
ํฌ์ ์ ๋ฏธํฐ๋ฅผ ์ผ์ชฝ ํน์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋๋ ค์ ์ ํญ์ ํค์ฐ๊ฑฐ๋ ์ค์ด๋ฉด ๋๋ค. ์ด๋, ํ์คํญ๋ ๋ณํํ๋ค.
ํ์คํญ ๋ณํ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด, LED๋ก ์ ๋ฌ๋๋ ์ ์์ ๋ณํ์์ผ์ ์๋ ๋ก๊ทธ ์ ํธ์ ์ผ์นํ๋๋ก ๋ฐ๊ธฐ๋ฅผ ํค์ฐ๊ฑฐ๋ ์ค์ผ ์ ์๋ค.
const int analogPin = A0; //ํฌํ
์
๋ฏธํฐ(๊ฐ๋ณ์ ํญ)์ ์ฐ๊ฒฐ๋ ํ ๋ฒํธ
const int ledCount = 9; //led ๊ฐ์
int ledPins[] = {2,3,4,5,6,7,8,9,10}; //led์ ์ฐ๊ฒฐ๋ ํ ๋ฒํธ
void setup() {
for(int thisLed = 0; thisLed < ledCount; thisLed++)
{
pinMode(ledPins[thisLed], OUTPUT); //led ํ์ ์ถ๋ ฅ์ผ๋ก ์ค์
}
}
void loop() {
int sensorReading = analogRead(analogPin); //์๋ ๋ก๊ทธ ์
๋ ฅ
int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
for( int thisLed=0; thisLed < ledCount; thisLed++)
{
if( thisLed < ledLevel){ //์ผ๋ ฌ๋ก ์ถ๋ ฅ๋๋ LED์ ๊ฐ์๊ฐ ์
๋ ฅ ๋ฒ์ ๋ณด๋ค ๋ฎ์ผ๋ฉด LED๊ฐ ์ผ์ง๋ค.
digitalWrite(ledPins[thisLed], HIGH);
}
else { //์ผ๋ ฌ๋ก ์ถ๋ ฅ๋๋ LED์ ๊ฐ์๊ฐ ์
๋ ฅ ๋ฒ์ ๋ณด๋ค ๋์ผ๋ฉด LED๊ฐ ๊บผ์ง๋ค.
digitalWrite(ledPins[thisLed], LOW);
}
}
}
'๐ก ๋๋ฉ์ธ > ๐ฐ ์๋์ด๋ ธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[2] LED๊ฐ ๊น๋นก์ด๋ ์๋๋ฅผ ์กฐ์ ํ ์ ์๋ ์คํธ๋ก๋ธ ์กฐ๋ช ์ ๋ง๋ค์ด ๋ณด์ (0) | 2022.10.26 |
---|---|
[0] ์๋์ด๋ ธ๋ฅผ ๋ง์ ธ๋ณด์ (0) | 2022.10.25 |