요약
ESP32를 아두이노에서 간단하게 LED 제어하는 방법에 대해서 알아보겠습니다.
digitalWrite(pin, H/L)를 사용해서 간단하게 ON/OFF 하는 방법입니다.
먼저, 실패 확률을 줄입시다!
시작하기에 앞서 펌웨어 개발할 때 선 연결로 인한 장치 손상을 막을 수 있는 방법이 있습니다.
바로 wokwi 라는 웹기반 시뮬레이션 사이트입니다.
아두이노/ESP32/라즈베리파이,STM32 등 웹에서 회로 설계하고 배선하여 바로 테스트할 수 있는 사이트입니다.
펌웨어 개발하실 때 굉장히 편리한 도구라서 복잡한 펌웨어 개발이 아닐 경우에는 꼭 먼저 사용해 보시고 실제 보드에 옮기셨으면 좋겠습니다.
wokwi에서 ESP32 LED 제어 방법
wokwi에서 프로젝트 설정하는 방법은 ESP32 → 장치설정 → ESP32 웹에서 간단히 시뮬레이션 테스트 wokwi에서 확인하실 수 있습니다. (아래 링크로도 확인 가능합니다.)
wokwi에 접속해서 먼저 프로젝트를 생성합니다.
바로 SAVE하셔서 LED TEST 이름을 지정해 줍니다.
Public으로 저장하시면 됩니다.(유료 결제하면 Private 할 수 있으나 그냥 Public으로 진행하는 게 좋습니다.)
LED 회로 설계
먼저 아래의 사진처럼 + 버튼을 눌러서 LED와 Resistor를 추가해 줍니다.
자세히 보면 LED에는 Anode(+), Cathode(-) 방향이 있습니다.
led1:A가 5V 부분과 연결이 되어야 합니다.
led:C가 32pin과 연결되어야 정상적으로 동작합니다.
LED 방향이 반대일 경우 아무런 동작이 되지 않습니다.
저항은 220Ω으로 설정하면 됩니다.
실제 개발보드로 진행할 때 위치가 틀리게 연결하면 각종 소자가 불에 타버리는 경우가 많이 발생됩니다.
하지만 시뮬레이션으로 실제 동작을 다 확인한 후에 연결하면 비교적 안전하게 작업을 할 수 있습니다. (정말 편합니다.)
아래의 코드를 복사 붙여 넣기 해서 실행하면 됩니다.
#define LED_PIN 32
int toggle = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
toggle++;
digitalWrite(LED_PIN,toggle%2);
delay(500); // this speeds up the simulation
}
이번 시간에는 digitalWrite(PIN,0/1)을 활용해서 간단하게 ON/OFF를 제어합니다.
코드를 잠깐 살펴보면 digitalWrite(LED_PIN, toggle%2)에서 toggle을 2로 나눈 나머지를 LED_PIN에 입력(0,1)시켜 줍니다.
toggle++ 에서 계속 +1씩 증가해주고 있으므로 2로 나눈 나머지는 항상 0 또는 1이 됩니다.
delay(500)이므로 0인 상태를 500ms (0.5초) 1인 상태를 500ms (0.5초) 이므로 1초 안에 깜빡입니다.
이제 시작을 눌러서 실행하면 됩니다.
아래의 그림처럼 불빛이 깜빡입니다.
아두이노에서 LED 제어
이제 아두이노를 실행하여 실제 LED를 제어해 봅시다.
사진에 2가닥 선이 있고 자세히 보면 조금 두꺼운 부분과 얇은 부분이 있습니다.
cathode (-) 방향이 조금 더 두껍게 되어 있고, Anode (+) 방향이 조금 얇게 되어있습니다.
이해하기 쉽게 두꺼운 부분이 Ground (-) 방향이라고 생각해 주면 됩니다.
저는 아래처럼 회로를 빵판에 구성했습니다.
아두이노 세팅 및 코드 작성
ESP32를 아두이노 세팅하는 방법은 ESP32 → 장치설정 → ESP32 아두이노 2 설치를 찾아가셔도 되고 아래의 링크로도 확인 가능합니다.
코드는 wokwi에서 사용한 코드 그대로를 복사 붙여 넣기 해주면 됩니다.
업로드하시고 결과를 확인하면 wokwi와 정확하게 똑같이 동작합니다. (정말 간편합니다.)
이렇게 LED를 digitalWrite를 사용하여 간단하게 ON/OFF하는 법을 배웠습니다.
엄청 간단해 보이지만 LED 제어를 할 수 있는 능력이 되셨다면 이미 ESP32 보드를 절반이나 배운 것이나 다름없습니다.
Hello world랑 LED 제어만 됐다면 나머지는 금방 하십니다.
오늘도 긴 글 읽어주셔서 감사합니다!
'ESP32 > 센서활용' 카테고리의 다른 글
[아두이노] ESP32 아날로그 값 읽는 방법 (ADC, MilliVolts) (0) | 2024.03.03 |
---|