728x90
반응형

아두이노에서 LED의 밝기를 컨트롤 할 수 있는데요

 

해당 기능을 통해 디스플레이가 없는 장치에서 

ex> 버튼을 눌렀을때 출력 강도가 높아지거나 낮아지는것을 LED 밝기로 어느정도 표현가능

 

 

EX_01>

# define LED_PIN 5 // 핀번호 설정

void setup(){
	pinMode(LED_PIN, OUTPUT); // 해당 핀을 출력으로 설정
}

void loop(){
	for (int i = 0; i <= 255; i++){
    	analogWrite(LED_PIN, i); // LED의 밝기를 1씩 증가시켜서 최대값인 255까지 증가시키겠다.
        delay(10);
    }
    
   	for (int i = 255; i >= 0; i--){
    	analogWrite(LED_PIN, i); // LED의 밝기는 1씩 감소시켜 최소값이 0까지 감소시키겠다
        delay(10);
    }
}


/*
	LED의 핀번호를 설정하고, 해당 핀을 출력으로 설정, 
    반복문을 통해 해당 핀의 LED 밝기를 0 > 255 로 1씩 증가시켜 점점 밝아지고,
    255 > 0 으로 1씩 감소시켜 점점 어두워지는것을 확인 할 수 있음.
*/

 

 

 

 

 

EX_02>

#define LED_PIN 5 // LED 핀번호 설정
#define PLUS_BUTTON_PIN 34 // PLUS 핀번호 설정
#define MINUS_BUTTON_PIN 35 // MINUS 핀번호 설정

int count = 0; // 증가 값




void setup(){
	pinMode(PLUS_BUTTON_PIN, INPUT_PULLUP); // LED의 해당 핀을 출력으로 설정
    pinMode(MINUS_BUTTON_PIN, INPUT_PULLUP); // BUTTON의 해당 핀을 입력으로 설정
}



void loop(){    
	// 플러스 버튼이 눌렸냐?
    if (digitalRead(PLUS_BUTTON_PIN) == LOW) { 
    	// count를 1 증가대입
        count = (count < 100) ? count + 1 : count;
        delay(200); 
    }
	
    // 마이너스 버튼이 눌렸냐?
    if (digitalRead(MINUS_BUTTON_PIN) == LOW) {
    	// count를 1 감소대입
        count = (count > 0) ? count - 1 : count;
        delay(200); 
    }
    
    // count의 0~50값을 0~255로 환산해서 LED의 밝기를 컨트롤
    analogWrite(LED_PIN, map(count, 0, 50, 0, 255); 
}


/*
	버튼을 누를 때 마다 count 변수의 값이 상승, 하락하고 
    변수의 값은 최소 0 최대 50일때 map 함수를 통해 0~255로 환산해서 밝기를 조절 하는 코드
*/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

저는 ESP32 보드를 사용하였습니다.

728x90
반응형

'코딩일지 > arduino' 카테고리의 다른 글

아두이노란?  (0) 2024.01.06

+ Recent posts

">