๐Ÿ’ก ๋„๋ฉ”์ธ/๐ŸŽฐ ์•„๋‘์ด๋…ธ

[1] ํฌํ…์…”๋ฏธํ„ฐ(๊ฐ€๋ณ€์ €ํ•ญ)๋กœ LED ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ๊ธฐ ์กฐ์ ˆํ•˜๊ธฐ

์˜ค๋ธŒ ๐Ÿง™‍โ™‚๏ธ 2022. 10. 26. 00:12

ํฌํ…์…”๋ฏธํ„ฐ๋Š” ์—ฐ์†์ ์ธ ์•„๋‚ ๋กœ๊ทธ ์‹ ํ˜ธ๋ฅผ ์กฐ์ž‘ํ•œ๋‹ค. 

์ธ๊ฐ„์€ ์„ธ๊ณ„๋ฅผ ์•„๋‚ ๋กœ๊ทธ๋กœ ์ธ์‹ํ•œ๋‹ค. 

๋””์ง€ํ„ธ ์ •๋ณด๋Š” ๊ฐœ๋ณ„์ ์ธ ์ˆซ์ž๋งŒ์œผ๋กœ ์•„๋‚ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์˜ ๋Œ€๋žต์ ์ธ ๊ฐ’์„ ์ถ”์ •ํ•œ๋‹ค. 

์•„๋‘์ด๋…ธ๋Š” ํฌํ…์…”๋ฏธํ„ฐ๋กœ๋ถ€ํ„ฐ ์—ฐ์†์ ์ธ ์•„๋‚ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ์•„๋‚ ๋กœ๊ทธ์˜ ๊ทผ์‚ฌ์น˜ ๊ฐ’์„ ์ผ๋ จ์˜ ์ˆซ์ž๋“ค๋กœ ํ‘œ์‹œํ•œ๋‹ค. 

ํฌํ…์…”๋ฏธํ„ฐ์˜ ๊ฐ€์šด๋ฐ ํ•€์ด ์•„๋‘์ด๋…ธ์˜ ์•„๋‚ ๋กœ๊ทธ ์ž…๋ ฅ ํ•€์œผ๋กœ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๋ฉด, ์•„๋‘์ด๋…ธ๋ฅผ ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ฐ’์„ ์ฝ๋Š”๋‹ค. 

 

์‚ฌ์‹ค LED๋Š” ์‹ค์ œ๋กœ ์ผœ์กŒ๋‹ค ๊บผ์กŒ๋‹ค๋ฅผ ๋ฐ˜๋ณตํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ ์†๋„๊ฐ€ ๋„ˆ๋ฌด ๋นจ๋ผ์„œ ์šฐ๋ฆฌ ๋ˆˆ์—๋Š” LED๊ฐ€ ๊ณ„์† ์ผœ์ ธ ์žˆ์œผ๋ฉด์„œ ๋ฐ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ์œผ๋กœ ์ธ์‹ํ•˜๋Š” ๊ฒƒ๋ฟ์ด๋‹ค. ์ด๋ฅผ ์ž”์ƒํšจ๊ณผ๋ผ๊ณ  ํ•œ๋‹ค. 

์•„๋‘์ด๋…ธ๋Š” ์ž”์ƒ ํšจ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๊ธฐ ์œ„ํ•ด์„œ ํŽ„์Šคํญ ๋ณ€์กฐ๋ผ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. 

์•„๋‘์ด๋…ธ๋Š” ์ „์›์„ ๋ฐ˜๋ณตํ•ด์„œ ๋น ๋ฅด๊ฒŒ ์ผฐ๋‹ค-๊ป๋‹ค ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ํŽ„์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

์ถœ์ฒ˜ : ์œ„ํ‚ค๋ฐฑ๊ณผ

์ฃผ๊ธฐ ๋™์•ˆ ํŽ„์Šคํญ์— ๋”ฐ๋ผ ํ‰๊ท  ์ถœ๋ ฅ์ด ๊ฒฐ์ •๋˜๋ฉฐ, ์ด ํŽ„์Šคํญ์„ ๋ณ€ํ™”์‹œ์ผœ์„œ ์ƒ๊ธฐ๋Š” ํŒจํ„ด์€ ์ผœ์ง-๊บผ์ง ์ƒํƒœ๋กœ ์ „ํ™˜๋˜๋Š” ์ „์••์„ ํ‰๋‚ด๋‚ธ๋‹ค. ( ON : 5V / OFF : 0V / ํ‰๊ท ๊ฐ’ :  2.5V)

ํฌ์…˜์…”๋ฏธํ„ฐ๋ฅผ ์™ผ์ชฝ ํ˜น์€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋Œ๋ ค์„œ ์ €ํ•ญ์„ ํ‚ค์šฐ๊ฑฐ๋‚˜ ์ค„์ด๋ฉด ๋œ๋‹ค. ์ด๋•Œ, ํŽ„์Šคํญ๋„ ๋ณ€ํ™”ํ•œ๋‹ค. 

ํŽ„์Šคํญ ๋ณ€ํ™” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด, LED๋กœ ์ „๋‹ฌ๋˜๋Š” ์ „์••์„ ๋ณ€ํ™”์‹œ์ผœ์„œ ์•„๋‚ ๋กœ๊ทธ ์„ ํ˜ธ์™€ ์ผ์น˜ํ•˜๋„๋ก ๋ฐ๊ธฐ๋ฅผ ํ‚ค์šฐ๊ฑฐ๋‚˜ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. 

์กฐ์ ˆ 1
์กฐ์ ˆ 2
์กฐ์ ˆ 3

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);  
}
}
}