BASIC4MCU | 질문게시판 | 가변저항 값으로 4개의 LED 밝기를 조절하기
페이지 정보
작성자 웰치스 작성일2022-04-03 14:41 조회1,508회 댓글3건본문
int pins_LED[ ]={2,3,4,5};
void setup(){
Serial.begin(9600);
for(int i = 0; i <4; i++){
pinMode(pins_LED[i],OUTPUT);
}
pinMode(A0,INPUT);
}
void loop() {
int ADC_value = analogRead(A0);
int PWM_value[4] = 0 };
Serial.println(String("ADC value : ") + ADC_value);
for(int i = 3; i >=0; i--){
if(ADC_value >=256 * i;
ADC_value -=(PWM_value[i] + 1);
}
analogWrite(pins_LED[i], PWM_value[i]);
Serial.print(" ");
Serial.print(PWM_value[i]);
}
Serial.println();
delay(500);
}
이 코드를 for문에서 if else문으로 바꾸고 싶은데 감이 안 잡혀요 도와주세요 고수분들,,
댓글 3
조회수 1,508master님의 댓글
master 작성일
괄호가 맞지 않고, 오류가 있는데요
오류부터 수정하셔야 할 듯
//
뭘 하려고 작성한 것인지도 상세히 설명하셔야합니다.
1개의 가변저항 값으로 4개의 LED 밝기를 어떻게 변경하겠다는 것일까요?
웰치스님의 댓글
웰치스
가변저항 값에 따라 켜지는 LED개수입니다. 가변저항을 어디까지 올리냐에 따라서 LED가 몇개 켜지고 이런식이요. for문 대신 if를 사용하고싶습니다.
master님의 댓글
master 작성일
int LED[4]={2,3,4,5};
//
void setup(){
Serial.begin(9600);
for(int i=0;i<4;i++)pinMode(LED[i],OUTPUT);
}
//
void loop() {
int val=analogRead(A0); Serial.println(String("ADC value : ")+val);
val=val*5.0/1024.0; Serial.print("val : "); Serial.println(val); // 0~1023 => 0~4
//
for(int i=0;i<4;i++)digitalWrite(LED[i],0); // ALL OFF
if(val>0)digitalWrite(LED[0],1);
if(val>1)digitalWrite(LED[1],1);
if(val>2)digitalWrite(LED[2],1);
if(val>3)digitalWrite(LED[3],1);
//
delay(500);
}