Skip to content

wjddn0719/Embedded_System_Programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 Embedded System Programming (Day 1~4)

라즈베리파이와 pigpio 라이브러리를 이용해
버튼 입력, PWM, 비동기 이벤트, I²C LCD 제어를 모두 배우는 실습 프로젝트입니다.


🌱 프로젝트 소개

짧게 버튼을 누르면 LED 밝기를 바꾸고,
길게 누르면 PWM 주파수를 변경합니다.
변경된 상태는 I²C LCD(1602) 화면에 실시간으로 표시됩니다.

💡 핵심 목표:

하드웨어 신호 제어 + 비동기 이벤트 처리 + LCD 출력까지
임베디드 시스템의 기본 구조를 완성한다.


📅 커리큘럼

Day 주제 학습 내용
1️⃣ 버튼으로 LED 제어 GPIO 출력, 인터럽트 콜백
2️⃣ PWM으로 밝기 조절 듀티사이클과 주파수 개념
3️⃣ 롱프레스 감지 tick 시간차 계산, 비동기 콜백
4️⃣ LCD에 상태 표시 I²C 통신, LCD 초기화, 데이터 전송

⚙️ 개발 환경

💻 Raspberry Pi 4B / 3B+
⚙️ OS: Raspberry Pi OS (Debian 기반)
💬 언어: C
🔧 라이브러리: pigpio (libpigpiod_if2)
📟 디스플레이: 1602 I²C LCD (PCF8574 백팩)


🧩 주요 개념

💡 GPIO — 디지털 입출력 제어 (HIGH / LOW)
💡 PWM — 듀티비(밝기), 주파수(점멸속도) 조절
💡 Callback — 버튼 이벤트를 비동기로 처리
💡 Tick — pigpio 내부 마이크로초 단위 타이머
💡 I²C — SDA/SCL 2선 직렬 통신
💡 LCD 제어 — RS(명령/데이터), E펄스, 4비트 전송 방식


🔍 학습 포인트

✨ 버튼 이벤트를 하드웨어 인터럽트로 처리
tick 시간차 계산으로 롱프레스 감지
PWM 주파수·듀티비 개념 이해
I²C LCD 제어 순서(초기화 → 명령 → 데이터 출력) 학습

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published