# ESP8266와 CH32V003로 방 신호등 만들기
RYG 신호등 모듈을 ESP8266나 CH32V003에 연결하고 기본 사이클을 구현하세요: 빨간색 5초, 노란색 1초, 초록색 5초 점멸. 이 프로젝트는 외부 라이브러리 없이 GPIO 설정, 지연, 루프를 보여줍니다. 임베디드 개발 첫걸음에 딱 맞아요.
ESP8266은 GPIO 13(빨강), 12(노랑), 14(초록)을 사용합니다. CH32V003은 PC5, PC6, PC7 포트를 씁니다. 코드는 간결하게 실제 신호등처럼 전환 준비를 포함합니다.
ESP8266에서 GPIO 설정하기
핀을 정의하고 출력으로 설정하세요. LED 보호를 위해 전류 제한 저항을 사용하세요.
const byte redLedPin = 14;
const byte yellowLedPin = 12;
const byte greenLedPin = 13;
void setup() {
pinMode(redLedPin, OUTPUT);
pinMode(yellowLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
}
loop()에서 이 순서를 실행하세요:
- 빨강 HIGH 5000ms.
- 노랑 HIGH 1000ms, 둘 다 LOW.
- 초록 HIGH 5000ms.
- 3회 점멸: HIGH 500ms, LOW 500ms.
- 노랑 HIGH 1000ms, LOW.
void loop() {
// 빨강
digitalWrite(redLedPin, HIGH);
delay(5000);
// 노랑
digitalWrite(yellowLedPin, HIGH);
delay(1000);
digitalWrite(redLedPin, LOW);
digitalWrite(yellowLedPin, LOW);
// 초록
digitalWrite(greenLedPin, HIGH);
delay(5000);
for (byte i = 0; i < 3; i++) {
digitalWrite(greenLedPin, HIGH);
delay(500);
digitalWrite(greenLedPin, LOW);
delay(500);
}
// 노랑
digitalWrite(yellowLedPin, HIGH);
delay(1000);
digitalWrite(yellowLedPin, LOW);
}
CH340 드라이버와 Arduino IDE(ESP8266 보드 패키지)로 USB 연결해 플래싱하세요.
CH32V003으로 전환하기
저전력 작업에 적합한 소형 RISC-V 마이크로컨트롤러입니다. WCH LinkE 프로그래머가 필요해요: 보드에 USB 전원, SWD로 플래싱. 신호등을 PC5(빨강), PC6(노랑), PC7(초록)에 연결하세요.
/* 전역 정의 */
#define RED_LED_PIN GPIO_Pin_5
#define YELLOW_LED_PIN GPIO_Pin_6
#define GREEN_LED_PIN GPIO_Pin_7
로직은 동일: delay 대신 delay_ms, GPIO_WriteBit. 초기화:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);GPIO_InitTypeDef로 OutputPushPull 설정.
loop()는 WCH SDK에 맞게 적응: 타이머와 상태 순서. 전체 코드는 CH32V003FUN 표준 함수로 의존성 최소화.
플랫폼 비교
| 항목 | ESP8266 | CH32V003 |
|------|---------|----------|
| 코어 | Tensilica L106 | RISC-V2A |
| 핀 | GPIO12-14 | PC5-7 |
| 전원 | USB | USB + 프로그래머 |
| 플래싱 | Arduino IDE | WCH LinkE + IDE |
| 가격 | 중간 | 저렴 |
ESP8266은 USB와 Arduino 생태계 덕에 초보자 친화적입니다. CH32V003은 자원 절약하지만 프로그래머가 필요해요.
주요 장점:
- 최소 코드, 라이브러리 불필요.
- 타이밍 조정 쉬움.
- 버튼이나 센서로 확장 가능.
핵심 팁
- GPIO 배선: 전류 제한 위해 항상 220–330옴 저항 사용.
- 타이밍:
delay()는 CPU 블로킹; 고급 프로젝트엔millis()나 타이머 활용. - 디버깅: 상태 로그 위해 Serial 모니터링.
- 포트: CH32V003에선 PCx 고수로 단순화—처음엔 PWM 피함.
- 확장: 선형 루프 대신 유한 상태 머신(FSM)으로 상태 관리.
이 프로젝트는 복제 쉽습니다: RYG 모듈 사서 브레드보드에 꽂으세요. 기본 임베디드 코딩 보여주기 좋습니다.
— Editorial Team
아직 댓글이 없습니다.