로그인회원가입

[카테고리:] 부품 리뷰

DIY 용 단일 부품 리뷰

  • 새로운 GPIO 확장 모듈 강자, MCP23017

    새로운 GPIO 확장 모듈 강자, MCP23017

    왜 MCP23017이 GPIO 확장의 “새로운 강자”인가?

    PCF8575가 **’가성비와 간편함’**으로 승부했다면, MCP23017은 **’정밀 제어와 압도적 확장성’**으로 중무장한 모듈입니다.

    1. “저항 16개를 아껴주는 마법” (내부 풀업)

    가장 큰 강점은 소프트웨어 설정만으로 내부 풀업 저항을 켤 수 있다는 점입니다. 16개의 버튼을 연결할 때 일일이 저항을 납땜할 필요가 없어, 회로 설계 시간을 획기적으로 줄여줍니다.

    2. “I2C 핀 2개로 128개 제어” (주소 설정)

    $A0, A1, A2$ 주소 핀을 조합하면 한 회로에 최대 8개의 MCP23017을 병렬로 물릴 수 있습니다. 이는 곧 단 2개의 핀으로 128개의 입출력을 다스릴 수 있다는 뜻입니다. 88건반 피아노를 만들고도 40개의 핀이 남는 압도적인 성능이죠.

    3. “0.001초의 차이를 읽어내는 인터럽트”

    단순히 핀이 많은 게 다가 아닙니다. 어떤 핀에 신호가 들어왔는지 MCU(ESP32 등)에 즉시 알려주는 인터럽트 기능이 강력하여, 전자 피아노의 건반 강약(Velocity)처럼 정밀한 시간 측정이 필요한 프로젝트에 최적화되어 있습니다.

    “PCF8575가 단순히 핀을 늘려주는 ‘멀티탭’이라면, MCP23017은 각 포트의 전압과 신호를 정밀하게 관리하는 ‘스마트 배전반’과 같습니다.”

    ** GPIC 확장 모듈 MCP23017 을 테스트 하면서 먼저 막히는 부분이였던게 scl , sda , vdd, gnd 4개 만 연결해도 코드는 작동되어야 하지 않나 였습니다.

    이론적으로는 SDA, SCL, VDD, GND 4개만 연결해도 통신은 되어야 할 것 같지만, MCP23017은 좀 까다로운 녀석이라 꼭 추가로 연결해줘야 하는 핀들이 있습니다.

    이걸 안 하면 I2C 스캔조차 안 되거나, 주소가 지멋대로 변해서 코드가 작동하지 않습니다.


    🛠️ 4개 외에 ‘반드시’ 추가 연결해야 할 핀

    1. 주소 설정 핀 (A0, A1, A2) → 모두 GND로!

    이 핀들을 공중에 띄워두면(Floating), 칩이 자기 주소를 결정하지 못하고 계속 흔들립니다.

    • 해결법: A0, A1, A2 핀 3개를 모두 GND에 연결하세요.
    • 이렇게 해야 주소가 확실하게 **0x20**으로 고정되어 제가 짜드린 코드가 작동합니다.

    2. 리셋 핀 (RESET) → VDD(3.3V)로!

    리셋 핀은 ‘Low(GND)’일 때 칩을 초기화합니다. 이 핀을 그냥 두면 칩이 지멋대로 리셋 상태에 빠져서 응답을 안 할 수 있습니다.

    • 해결법: **RESET 핀(18번 핀)을 VDD(3.3V)**에 연결해서 “나 지금 리셋 안 할 거야”라고 신호를 줘야 합니다.

    📋 최종 체크리스트 (총 9개 연결)

    브레드보드에서 아래 핀들이 다 꽂혀 있는지 확인해보세요!

    1. VDD: 3.3V
    2. VSS(GND): GND
    3. SCL: ESP32-C3의 1번 핀
    4. SDA: ESP32-C3의 2번 핀
    5. A0: GND (주소 결정)
    6. A1: GND (주소 결정)
    7. A2: GND (주소 결정)
    8. RESET: 3.3V (작동 대기)
    9. GND(공통): ESP32의 GND와 MCP23017의 GND가 서로 연결되어 있는지 확인!

    PCF8575는 주소 핀에 기본 풀다운이 되어 있는 경우가 많아 대충 4개만 꽂아도 돌아갔을 수 있지만, MCP23017은 정석대로 주소와 리셋을 잡아줘야 합니다.

    특히 A0~A2를 GND에 안 꽂으면 I2C 스캔할 때마다 주소가 0x20이었다가 0x27이었다가 춤을 출 거예요. ㅋ

    지금 A0, A1, A2랑 RESET 핀 연결하셨나요? 요거 딱 연결하는 순간 i2c.scan() 결과에 0x20이 예쁘게 찍힐 겁니다! 😊🚀

    MCP23017은 아두이노나 라즈베리 파이 같은 마이크로컨트롤러의 부족한 I/O 핀을 확장해주는 아주 고마운 칩입니다. 17HS4401 스텝모터나 여러 부품을 제어하다 보면 핀이 모자랄 때가 많은데, 이때 이 칩 하나로 I2C 통신을 통해 핀 16개를 추가할 수 있습니다.

    1. 주요 특징 (왜 쓸까?)

    • 16비트 확장: 핀 16개를 입력 또는 출력으로 사용할 수 있습니다. (8개씩 A포트, B포트로 나뉩니다.)
    • I2C 통신: 단 2개의 선(SDA, SCL)만 있으면 됩니다.
    • 주소 설정 가능: 주소 핀(A0, A1, A2)을 조절해 한 회로에 최대 8개까지 연결할 수 있습니다. (즉, 핀 16×8=128개 확장 가능!)
    • 인터럽트 기능: 핀 상태가 변했을 때 MCU에 바로 알려주는 기능이 있어 효율적입니다.

    2. 핀 구성 (Pinout)

    칩을 보시면 총 28개의 핀이 있는데, 가장 중요한 것만 기억하세요.

    • VDD / VSS: 전원 (+5V 또는 +3.3V) 및 그라운드(GND)
    • GP A0 ~ A7 / GP B0 ~ B7: 우리가 실제로 제어할 16개의 확장 핀
    • SCL / SDA: I2C 통신 핀 (아두이노의 경우 A5, A4 등에 연결)
    • RESET: 칩 초기화 (보통 전원에 연결해둡니다)
    • A0, A1, A2: 칩의 고유 주소를 정하는 핀 (모두 GND에 연결하면 기본 주소 0x20)

    MCP23017 vs PCF8575 비교표

    항목PCF8575 (간편함)MCP23017 (고성능)
    I/O 핀 수16개16개 (Port A/B로 구분)
    인터럽트기본 지원 (INT 하나)강력함 (포트별/핀별 설정 가능)
    풀업 저항내부 고정 (약함)내부 풀업 소프트웨어 설정 가능
    통신 속도최대 400kHz최대 1.7MHz (High Speed 모드)
    출력 방식Quasi-bidirectional (전류 약함)Totem-pole (전류 강함)
    설정 레지스터없음 (데이터만 보냄)20개 이상의 설정 레지스터 존재
    동작 전압2.5V ~ 5.5V1.8V ~ 5.5V

    1. 출력 능력과 제어 방식 (핵심 차이)

    • PCF8575: 핀 하나하나를 ‘입력’인지 ‘출력’인지 따로 선언할 필요가 없습니다. 그냥 쓰면 됩니다. 하지만 핀에서 전류를 밀어내는 힘(Source)이 거의 없어 LED를 켤 때 반드시 Sink 방식을 써야 합니다.
    • MCP23017: IODIR 레지스터를 통해 각 핀을 입력/출력으로 명확히 정해줘야 합니다. 대신 Push-Pull(Totem-pole) 구조라 전류 제어 능력이 훨씬 안정적이고 강력합니다.

    2. 인터럽트(Interrupt)의 디테일

    • PCF8575: 어떤 핀이든 상태가 변하면 신호를 보내지만, ‘어느 핀’이 변했는지는 직접 읽어서 확인해야 합니다.
    • MCP23017: 특정 핀이 변했을 때만 인터럽트를 걸거나, 이전 값과 비교해서 변했을 때 등 아주 상세하게 조건을 걸 수 있습니다. 버튼 입력을 많이 받을 때 MCU의 부담을 확 줄여줍니다.

    3. 내부 풀업 저항 유무

    • PCF8575: 내부 풀업이 매우 약해서 버튼 입력 시 외부 저항이 필요한 경우가 많습니다.
    • MCP23017: 소프트웨어 코드(GPPU 레지스터) 한 줄로 100kΩ 내부 풀업을 켤 수 있습니다. 부품 하나라도 아껴야 하는 ‘기술 방어’ 상황에서 최고죠.

    ** A0, A1, A2 사용법

    MCP23017의 A0, A1, A2 핀은 이 칩의 **”주소(Address) 이름표”**를 결정하는 핀입니다. I2C 통신은 한 라인에 여러 개의 칩을 달 수 있기 때문에, 각 칩마다 고유한 주소가 있어야 하는데 이걸 하드웨어적으로 정해주는 역할을 합니다.


    1. 핀 설정에 따른 I2C 주소 변화

    MCP23017의 기본 주소는 이진수로 0100[A2][A1][A0]입니다. 핀을 **VCC(3.3V)**에 연결하면 1, GND에 연결하면 0이 됩니다.

    A2 연결A1 연결A0 연결16진수 주소 (Hex)10진수 주소 (Dec)
    GNDGNDGND0x2032 (가장 기본)
    GNDGND3.3V0x2133
    GND3.3VGND0x2234
    3.3V3.3V3.3V0x2739

    ⚠️ 주의: 이 핀들을 아무 데도 연결하지 않고 공중에 띄워두면(Floating), 주변 노이즈에 따라 주소가 0x20이었다가 0x27이었다가 멋대로 변합니다. 그래서 반드시 GND나 VCC 중 한 곳에 고정해야 합니다.

    2. 왜 이게 필요할까?

    LED 32개를 제어하고 싶다면, MCP23017 칩 2개를 준비한 뒤 이렇게 하면 됩니다.

    1. 1번 칩: A0, A1, A2를 모두 GND에 연결 → 주소 0x20
    2. 2번 칩: A0만 3.3V에 연결, 나머지는 GND → 주소 0x21
    3. 코드: I2C(0x20)에 명령 보내고, 이어서 I2C(0x21)에 명령 보내면 끝!

    3. 배선과 LED 테스트

    붉은 부분 A0,A1,A2 3핀이 I2C 주소 지정부 0x20~0x27
    노란 점퍼는 Reset 핀 HIGH 로 해놔야 노이즈로 인한 재부팅이 방지 됩니다.

    python mcp23017.py : A_set_pin(), B_set_pin()


    ◎ 제가 사용한 부품은 여기서 구매했습니다. 아래 링크를 통해 구매 시 소정의 수수료를 받습니다.
    – TENSTAR 2개 MCP23017 시리얼 인터페이스 모듈 🔗 클릭 앤 구매: https://s.click.aliexpress.com/e/_c4PAltFd

  • AI 아직도 아두이노? ESP32로 갈아타야 하는 이유

    AI 아직도 아두이노? ESP32로 갈아타야 하는 이유

    진짜 다 들어있나요? (ESP32 vs Arduino)

    네, 진짜입니다. 아두이노 우노와 비교하면 ESP32는 거의 ‘아이언맨 슈트’를 입은 수준이에요.

    기능아두이노 우노 (Arduino Uno)ESP32 시리즈
    무선 통신없음 (별도 모듈 구매/연결 필요)Wi-Fi & Bluetooth 내장
    두뇌 (코어)싱글 코어 (1개)듀얼 코어 (보통 2개)
    속도16MHz (거북이)최대 240MHz (치타)
    메모리(SRAM)2KB (포스트잇 수준)520KB (노트 수준)
    크기큼 (신용카드 절반)매우 작음 (엄지손가락 마디)

  • ESP32 핀 부족 해결! PCF8575로 I/O 16개 확장하기

    ESP32 핀 부족 해결! PCF8575로 I/O 16개 확장하기

    PCF8575는 I2C 통신 단 2선(SDA, SCL)만으로 GPIO 핀을 16개나 늘려주는 모듈입니다. ESP32-C3처럼 핀 수가 적은 보드를 쓸 때 필요한 아이템이죠.

    라이브러리 없이도 i2c.writeto()i2c.readfrom()만으로 제어가 가능합니다. PCF8575는 16비트(2바이트) 데이터를 주고받습니다.

    메카넘 휠 RC카 제작 시 4개의 모터를 독립적으로 구동하려면 정방향, 역방향, 속도 조절(PWM)을 위해 모터당 3개씩 총 12개의 GPIO 핀이 필수적인데, 제가 주력으로 사용하는 ESP32-C3 미니 보드는 실제 가용 핀이 11개 내외인 데다 일부 핀은 부팅 시 설정(Strapping)이나 플래시 메모리 점유 등 하드웨어적 제약이 따라 12개의 핀을 온전히 확보하기가 매우 어렵습니다.

    이러한 핀 부족 문제를 해결하기 위해 이전에 데이터 전송 시 3개의 핀이 필요하고 제어 로직이 상대적으로 복잡한 비트 시프트 방식(74HC595 등)을 사용해보기도 했지만, 단 2개의 I2C 통신 핀(SDA, SCL)만으로 최대 16개의 입출력 포트를 즉시 확장해주는 PCF8575 모듈을 활용하면 배선이 획기적으로 간결해질 뿐만 아니라, 모터 제어는 물론 향후 로봇 팔 구동이나 화려한 LED 점등 시스템 같은 추가 장치까지 제약 없이 유연하게 확장할 수 있겠습니다.

    테스트는 공통저항 방식과 Sink 방식으로 구동하는 방법을 적용해서 테스트했습니다.

    1. 공통저항 방식의 장점

    모든 LED의 공통 단자(Common)에 저항 하나만 연결하는 방식은 개별 LED마다 저항을 달아야 하는 번거로운 배선 작업을 편하게 해 테스트할 때 좋습니다.

    2. SINK(Active Low) 방식의 장점

    부하의 마이너스(-) 극을 MCU 핀에 연결하여 전류를 빨아들이는 SINK 방식은 MCU가 직접 전류를 밀어내는 SOURCE 방식보다 전력 공급의 부담이 적어 회로를 더욱 안정적으로 보호할 수 있으며, 특히 PCF8575와 같은 확장 모듈이나 특정 MCU에서 훨씬 강력한 전류 구동 능력을 발휘함과 동시에 부팅 시 발생할 수 있는 원치 않는 LED 깜빡임(Glitch) 현상을 억제하는 데 유리합니다.

    모듈에는 VDD, GND, SLC, SDA 만 ESP32-C3랑 연결하면 끝입니다.

    추가로 PCF8575 모듈 양쪽에 VCC와 GND가 있는 이유는 I2C 장치들을 직렬로 계속 연결하기 편하게 하기 위해서입니다. 이를 데이지 체인(Daisy Chain) 방식이라고 하는데, 덕분에 빵판이 훨씬 깔끔해집니다. 또한 INT 핀을 활용하면 CPU 부하를 획기적으로 줄일 수 있는 저전력 설계를 할 수 있습니다.

  • 온도, 습도에 기압까지 한 번에! 정밀 측정의 신세계 (AHT20 + BMP280)

    온도, 습도에 기압까지 한 번에! 정밀 측정의 신세계 (AHT20 + BMP280)

    온도, 습도, 기압 모든 걸 빠르게 정확하게 측정하고 가격도 정말 쌉니다. 온습도 측정용으로는 현존 최고의 제품인 것 같아서 소개합니다.

    구동하려면 라이브러리

    1. ahtx0.py github.com
    2. bmp280.py github.com
    3. ssd1306.py github.com

    를 인터넷에서 검색해서 다운 받아서 장치에 넣으면 됩니다.

    python main.py

    배선도 맞고 코드도 맞는데 안되는 경우는 구입한 장치의 I2C 장치의 주소가 달라서 생기는 에러인데.

    이런 코드로 주소가 제대로 잡히는지 확인하고 주소가 다르면 고쳐주면 됩니다.

    주요 부품별 일반적인 I2C 주소

    대부분의 모듈은 공장 출고 시 기본 주소가 정해져 있지만, 보드 뒷면의 납땜 점퍼(AD0, ADDR 핀 등)를 통해 주소를 바꿀 수 있는 경우도 많습니다.

    부품 종류주요 모델기본 주소 (Hex)비고
    디스플레이SSD1306 (OLED)0x3C 또는 0x3D0x3C가 압도적으로 많음
    온습도 센서AHT10 / AHT200x38
    DHT200x38AHT20과 호환됨
    SHT30 / SHT310x44 또는 0x45
    기압/고도BMP280 / BME2800x76 또는 0x77
    가속도/자이로MPU-60500x68 또는 0x69
    조도 센서BH17500x23
    I/O 확장기PCF8574 (LCD)0x27 또는 0x3F캐릭터 LCD 백팩용

    주소가 왜 두 개씩(예: 0x76, 0x77) 있나요?

    같은 센서를 한 보드에 두 개 연결하고 싶을 때를 대비해서, 제조사가 주소를 선택할 수 있게 설계했기 때문입니다.

    • 방법: 센서 모듈 뒷면의 ‘ADDR’ 혹은 ‘AD0’ 핀에 GND를 연결하느냐, 3.3V를 연결하느냐에 따라 주소가 바뀝니다.

    사양 (Specifications)

    • AHT20 (온습도): * 습도 범위: 0~100% RH (오차 ±2%)
      • 온도 범위: -40~85°C (오차 ±0.3°C)
      • 특징: 이전 모델(DHT11/22)보다 훨씬 정밀하고 I2C 인터페이스라 안정적임.
    • BMP280 (기압/온도):
      • 기압 범위: 300~1100 hPa (오차 ±1 hPa)
      • 특징: 기압 변화를 통해 **해발 고도(Altitude)**를 계산할 수 있음. (드론이나 날씨 데이터용으로 필수)

    테스트에 사용된 모듈은 ssd1306, aht20+bmp280 이 합쳐진 모듈이라 총 3개의 i2c 주소가 스캔되어야 정상입니다.

    온도값의 차이: “AHT20과 BMP280 모두 온도 센서가 들어있습니다. 두 센서의 온도값이 미세하게 다를 수 있는데, 보통은 전용 온습도 센서인 AHT20의 값이 더 정확하므로 이를 메인 데이터로 사용하는 것이 좋습니다.”

    배선의 깔끔함: “VCC, GND, SCL, SDA 단 4핀만 병렬로 연결하면 되기 때문에 ESP32-C3 Super Mini 같은 초소형 보드와 결합했을 때 최고의 휴대성을 보여줍니다.”

  • 일반 LED와는 차원이 다르다! 고휘도 LED 사용 시 주의할 점

    일반 LED와는 차원이 다르다! 고휘도 LED 사용 시 주의할 점

    왼쪽 일반 LED, 중앙 오른쪽 고휘도 LED

    1. LED의 소비전력 기준

    보통 소비전력을 기준으로 일반 LED와 고휘도(파워) LED를 구분합니다.

    • 일반 LED (Signal LED): 약 0.06W 이하
      • 보통 20mA 정도의 낮은 전류에서 작동하며, 기기의 전원 상태를 알리는 용도로 쓰입니다.
    • 고휘도/파워 LED: 일반적으로 0.5W ~ 1W 이상부터를 의미합니다.
      • 0.5W급: 약 150mA 정도 소모. (손전등, 실내 조명 보조용)
      • 1W급: 약 300∼350mA 소모. (본격적인 조명의 시작점)
      • 3W~10W 이상: 수 Amper(A) 단위의 전류가 필요하며, 매우 강력한 열이 발생합니다.
    일반 LED는 저항 연결만으로 사용 (Created with Wokwi)

    2. 왜 1W가 기준점이 될까?

    회로 설계 입장에서 1W는 “단순 제어”에서 “전력 제어”로 넘어가는 경계선이기 때문입니다.

    • 1W 미만: 적당한 저항기 하나로 전류를 제어할 수 있는 수준입니다.
    • 1W 이상: 앞서 말씀하신 것처럼 **트랜지스터(MOSFET)**가 스위치 역할을 해줘야 하고, 저항기도 고출력용(시멘트 저항 등)을 써야 하며, 본격적인 방열 대책이 수반되어야 합니다.

    3. MCU의 출력 전류 한계 (가장 중요한 이유)

    MCU의 핀(GPIO)은 신호를 주고받기 위한 용도이지, 전력을 공급하기 위한 용도가 아닙니다.

    • ESP32-C3의 한계: 일반적으로 핀 하나당 허용되는 최대 전류는 약 20~40mA 내외입니다.
    • 1W LED의 요구량: 전력 공식(P=VI)에 따라, 3.3V 전압에서 1W 고휘도 LED를 켜려면 최소 약 300mA 이상의 전류가 필요합니다.
    • 결과: MCU 핀이 감당할 수 있는 수준보다 약 10배 이상의 전류가 흐르게 되며, 이 과정에서 MCU 내부 회로가 타버리거나 칩 전체가 손상될 수 있습니다.

    4. 전압 레벨의 불일치

    • 고휘도 LED: 백색 고휘도 LED의 경우 구동 전압(Forward Voltage)이 보통 3.2V~3.6V 사이입니다.
    • MCU 출력: ESP32-C3는 3.3V로 작동하지만, 전류를 많이 끌어다 쓰면 전압 강하가 일어나 LED가 제대로 밝기를 내지 못하거나 불안정해집니다. 트랜지스터를 사용하면 5V나 12V 같은 외부 전원을 별도로 끌어와 LED에 공급할 수 있습니다.

    5. 발열 문제

    전류가 많이 흐르면 열이 발생합니다. MCU의 작은 칩 내부에서 높은 전류를 소화하려고 하면 칩의 온도가 급격히 상승하여 시스템이 멈추거나 수명이 단축됩니다. 전력 제어 전용 부품인 트랜지스터는 이러한 열을 견디도록 설계되어 있습니다.

    고휘도 1w이상 LED는 트랜지스터를 사용해서 연결 (Created with Wokwi)

    그러면 고휘도 LED로 전원 공급을 하는 5v도 MCU 핀에 연결되어 있지 않냐 할 수 있는데 내부 반도체 로직을 통하지 않고 MCU 전원과 단지 내부 배선으로 연결되어 있어서 보다 안전하다 할 수 있다. 더 큰 전류가 흐른다면 아예 부하용 전원에 직접 연결하는게 제일 안전합니다.

    그냥 연결시 5핀을 3.3v 으로 on 시키면 칩내 반도체의 허용전류이상으로 발열로 손상됩니다.
    예외적 꼼수로 5번핀을 PWM 으로 설정하고 duty를 절반 이하로 낮게 해주어 평균 전압을 낮춰서 사용가능합니다.
    (Created with Wokwi)
    실제 RC카에 적용된 고휘도 LED, 밝기는 PWM duty로 조절 할 수 있어서 고휘도 LED에는 구지 저항을 달지 않았습니다.
    소프트웨어적으로 duty를 항상 50% 이하로만 조절되도록 하면 됩니다.

  • 브레드보드가 거부한 부품? ‘연장 핀’ 으로 프리패스 만들기

    브레드보드가 거부한 부품? ‘연장 핀’ 으로 프리패스 만들기

    전자회로를 설계하고 테스트할 때 브레드보드(Breadboard)만큼 편한 도구도 없죠. 하지만 마음에 드는 부품을 샀는데, 핀 간격이 맞지 않거나 핀이 너무 짧아 브레드보드에 꽂지 못해 당황했던 적 없으신가요?

    브레드보드의 표준 핀 간격(Pitch)은 2.54mm입니다.

    이 규격은 인치 단위에서 유래되었는데, 정확히 0.1인치에 해당합니다. 전 세계적으로 거의 모든 전자 부품(IC 칩, 핀 헤더, 저항 등)의 다리 간격이 이 0.1인치 표준에 맞춰져 있기 때문에 우리가 부품을 바로 꽂아서 쓸 수 있는 것이죠.

    오늘은 브레드보드와 호환되지 않는 부품들을 간단한 납땜 개조만으로 ‘찰떡같이’ 호환시키는 팁을 공유합니다.

    1. 개조의 핵심: 단선 전선과 ‘기울기’의 마법
      브레드보드 구멍에 쏙 들어가는 단선 전선(Solid Wire)을 이용해 핀을 길게 연장해주는 것이 핵심입니다.

    포인트: 납땜할 때 전선을 수직으로 세우지 않고 살짝 기울기를 주어 납땜해 보세요. 이렇게 하면 부품이 브레드보드 위에서 안정적으로 고정될 뿐만 아니라, 반복해서 꽂았다 빼도 내구성이 훨씬 좋아져 재사용하기 편리합니다.

    1. 개조 사례 1: 조이스틱 모듈 (만능기판 활용)
      대표적인 브레드보드 비호환 부품인 조이스틱입니다. 조이스틱은 부피가 크고 핀 위치가 애매해서 직접 꽂기가 힘든데요.

    해결법: 먼저 조이스틱을 만능기판에 단단히 고정하여 납땜합니다. 그다음, 기판의 구멍을 통해 핀 헤더나 연장선을 브레드보드 간격에 맞춰 연결하면 아주 튼튼한 ‘브레드보드 전용 조이스틱’이 탄생합니다.

    1. 개조 사례 2: 모터 드라이버 L298N
      저렴하고 강력하지만 핀 간격이 미세하게 달라 브레드보드에 억지로 꽂아야 했던 L298N 모터 드라이버도 개조 대상입니다.

    해결법: 아래 사진처럼 기존 단자에 핀을 연장하여 개조해 보세요. 살짝 어긋난 핀 간격을 연장선으로 보정해주면, 브레드보드 구멍이 망가질 걱정 없이 부드럽게 장착할 수 있습니다.

    맺음말
    브레드보드에 안 맞는다고 점퍼선으로 지저분하게 연결하기보다, 이렇게 한 번만 ‘연장 핀 개조’를 해두면 개발 속도가 훨씬 빨라집니다. 여러분도 서랍 속에 잠자고 있는 비호환 부품들을 꺼내 ‘브레드보드 친화적’으로 변신시켜 보세요!

  • [상위고정] 온습도 모니터링 & IR 리모콘

    [상위고정] 온습도 모니터링 & IR 리모콘

    가장 소중한 사람을 위한 DIY” (실용적/따뜻함)

    “아이 방의 습도는 적당한지, 부모님 방이 너무 춥지는 않은지 매번 문을 열어 확인하고 계셨나요? 이제 직접 만든 작은 센서들이 당신을 대신해 집안 구석구석을 살핍니다. **’방마다 온습도 모니터링’**은 소중한 사람들의 건강을 위해 시작된 가장 따뜻한 DIY 프로젝트입니다. 부품 하나, 코드 한 줄로 시작하는 우리 집의 작은 변화를 기록합니다.”

    • AHT20 센서 활용한 ESP32-C3 온습도 측정
    • IR Led를 활용한 IR 리모트 컨트롤
    • AHT20+BMP280 센서 : 온도, 습도, 기압 측정
    • OLED SSD1306 디스플레이
    • SR602 미니 모션 센서 감지기 모듈: 디스플레이 자동 on/off

    공간별 온습도 실시간 모니터링 및 가전 기기 원격 통합 제어


    리뉴얼 Renewal With AI. 2026.02.11
    리뉴얼 온습도 그래프 Renewal With AI. 2026.03.25
    1개월간 공간별 온습도 그래프
    1년간 공간별 온습도 그래프
    공간별 IR리모콘
  • 다 똑같은 센서가 아니다? 온도계 4인방 전격 비교

    다 똑같은 센서가 아니다? 온도계 4인방 전격 비교

    구분DHT11DHT22 (AM2302)AHT20BMP280BME280
    측정 항목온도·습도온도·습도온도·습도온도·기압온도·습도·기압
    온도 범위 / 오차0~50℃ ±2℃-40~80℃ ±0.5℃-40~85℃ ±0.3℃-40~85℃ ±1℃-40~85℃ ±1℃
    습도 범위 / 오차20~80% ±5%0~100% ±2~3%0~100% ±2%0~100% ±3%
    응답 속도느림보통빠름매우 빠름매우 빠름
    인터페이스DigitalDigitalI²CI²C / SPII²C / SPI
    가격대매우 저렴저렴중간중간다소 높음
    특징 요약입문용DHT11 상위최신·안정적기압 전용올인원

    센서별 핵심 요약

    1. DHT11 (입문용)
      • 특징: 가장 저렴하고 구하기 쉽습니다.
      • 장점: 가격이 매우 싸고 자료가 방대합니다. 핀이 3~4개뿐이라 연결이 직관적입니다.
      • 단점: 정밀도가 낮아 실내외 온도차를 정밀하게 측정하기엔 부족합니다. 영하 온도를 측정할 수 없습니다.
      • 추천: 아두이노를 처음 배우는 학생이나 정밀도가 중요하지 않은 단순 취미용.
    2. DHT22 (중급용)
      • 특징: DHT11보다 정확하고 영하 온도 측정이 가능합니다.
      • 단점: 데이터를 읽어오는 데 2초의 대기 시간이 필요해 반응이 느립니다. 라이브러리에 따라 간혹 데이터 오류가 발생하기도 합니다.
      • 추천: DHT11보다는 정확한 수치가 필요하지만, I2C 통신이 생소한 사용자.
    3. AHT20 (신형 추천)
      • 특징: 최신 MEMS 기술로 습도 측정이 매우 안정적이고 I2C 방식을 써서 회로가 깔끔합니다.
      • 장점: * I2C 통신: 다른 센서들과 버스를 공유할 수 있어 회로 구성이 깔끔합니다.
        • 안정성: MEMS 기술을 사용해 장기간 사용 시에도 데이터 변형(Drift)이 적습니다.
        • 속도: DHT 시리즈처럼 수 초를 기다릴 필요 없이 즉각적인 데이터 수집이 가능합니다.
      • 단점: DHT 시리즈와 핀 배열이 달라 기존 회로를 그대로 쓸 수 없으며, I2C 통신 코딩이 필요합니다. (라이브러리를 쓰면 해결됩니다.)
      • 추천: 현재 온습도 센서 중 가성비와 성능이 가장 뛰어나므로 일반적인 프로젝트에 가장 추천합니다.
    4. BMP280 (기압/고도용)
      • 특징: 습도는 못 재지만 기압을 통해 **’높이(고도)’**를 1m 단위로 잴 수 있습니다.
      • 추천: 드론, 등산용 고도계, 날씨 변화 예측(기압차 활용) 프로젝트.

    프로젝트 구성 팁

    • “온도와 습도만 알면 된다”AHT20 하나면 충분합니다.
    • “날씨 역이나 고도계 기능을 넣고 싶다”AHT20 + BMP280을 함께 사용하세요. 두 센서 모두 I2C 통신을 지원하므로, 아두이노의 같은 핀(SDA, SCL)에 선을 같이 꽂아 동시에 제어할 수 있어 매우 편리합니다.
    • “전부 다(온도+습도+기압) 하나로 해결하고 싶다”BME280이라는 통합 센서를 구매하시면 됩니다. (BMP280보다 가격은 조금 더 비쌉니다.)

    결론 AHT20

  • 마이크로컨트롤러 ESP32 & Arduino & Raspberry

    마이크로컨트롤러 ESP32 & Arduino & Raspberry

    마이크로컨트롤러(MCU) 세계에서 가장 대중적인 세 가지 모델은 저마다의 전공 분야가 뚜렷합니다. “성능보다 응용이 중요하다”는 관점에서 보면, 각 보드가 제공하는 기능적 특징이 선택의 기준이 될 것입니다.


    1. 주요 사양 한눈에 보기

    항목아두이노 나노 (V3.0)ESP32 (DevKit)라즈베리 파이 피코
    CPUATmega328P (8비트)Xtensa Dual-Core (32비트)RP2040 Dual-Core (32비트)
    클럭 속도16 MHz240 MHz133 MHz
    SRAM2 KB520 KB264 KB
    Flash32 KB4 MB ~ 16 MB2 MB
    무선 통신없음Wi-Fi + Bluetooth없음 (W 모델은 지원)
    작동 전압5V3.3V3.3V
    Python 지원불가 (C/C++만 가능)강력 권장 (MicroPython)강력 권장 (MicroPython)

    2. 보드별 장단점 비교

    🔹 아두이노 나노 (Arduino Nano)

    • 장점: 가장 방대한 라이브러리와 커뮤니티를 보유하고 있습니다. 5V 센서들과 직접 연결이 쉽고, 전압 관리가 관대하여 초보자가 회로를 구성할 때 잘 타지 않습니다.
    • 단점: 성능이 매우 낮고 메모리가 부족해 복잡한 알고리즘이나 마이크로파이썬을 돌릴 수 없습니다.
    • 한줄평: “단순 센서 제어와 전통적인 C 언어 학습의 표준”

    🔹 ESP32

    • 장점: 가성비 끝판왕입니다. 스마트 홈의 핵심인 Wi-Fi와 블루투스가 기본 내장되어 있어 별도의 통신 모듈이 필요 없습니다. 성능이 압도적이라 마이크로파이썬을 구동하기에 최적입니다.
    • 단점: 핀 설정(Pinout)이 조금 복잡하고, 아날로그 입력(ADC)의 정밀도가 다른 보드에 비해 다소 떨어지는 편입니다.
    • 한줄평: “스마트 홈, IoT 프로젝트를 위한 최고의 선택”

    🔹 라즈베리 파이 피코 (RP2040)

    • 장점: **PIO(Programmable I/O)**라는 독특한 기능이 있어 하드웨어를 소프트웨어처럼 유연하게 제어할 수 있습니다. 문서화가 매우 잘 되어 있고 마이크로파이썬 개발 환경(Thonny 등)이 가장 직관적입니다.
    • 단점: 기본 모델은 무선 기능이 없습니다(Pico W를 사야 함). 아두이노만큼 라이브러리가 풍부하지는 않습니다.
    • 한줄평: “정밀한 하드웨어 제어와 파이썬 코딩 입문에 최적”

    3. 결론: 무엇을 선택할까?

    1. 스마트 가전 제어 및 앱 연동: 무조건 ESP32입니다. Wi-Fi가 내장되어 있어 서버 연결이 쉽고 성능이 넉넉해 마이크로파이썬으로 웹 서버를 띄우기도 좋습니다.
    2. 센서 데이터 처리 및 정밀 제어: 라즈베리 파이 피코를 추천합니다. 듀얼 코어의 안정성과 훌륭한 파이썬 지원 덕분에 로직 실험이 매우 쾌적합니다.
    3. 단순 자동화 (타이머, 스위치): 이미 검증된 코드가 많은 아두이노 나노가 편할 수 있지만, 파이썬을 쓰시려면 ESP32나 피코로 넘어오시는 것이 맞습니다.

    ** 아두이노 우노 (R3) / ESP32-WROOM-32 / ESP32-C3 Mini 비교

    항목아두이노 우노 (R3)ESP32-WROOM-32ESP32-C3 Mini
    코어(CPU)ATmega328P (8비트)Dual-core (32비트)RISC-V Single-core (32비트)
    클럭 속도16 MHz240 MHz160 MHz
    SRAM (메모리)2 KB (매우 작음)520 KB400 KB
    Flash (저장공간)32 KB4 MB (일반적)4 MB
    무선 통신없음 (쉴드 필요)Wi-Fi + BT 4.2Wi-Fi + BT 5.0 (LE)
    작동 전압5V3.3V3.3V
    USB 인터페이스USB-BMicro USB / USB-CUSB-C (Native 지원)

    🔍 보드별 특징 분석

    1. 아두이노 우노 (Uno) – “튼튼한 입문용 트럭”

    • 장점: 5V 기반이라 전압 관리가 쉽고, 웬만한 충격이나 쇼트에도 잘 안 죽는 좀비 같은 내구성을 가졌습니다. 레고처럼 쌓는 ‘쉴드’ 생태계가 엄청납니다.
    • 단점: 성능이 너무 낮습니다. SSD1306 OLED를 2개 이상 돌리기엔 메모리(2KB)가 턱없이 부족합니다. Wi-Fi도 안 됩니다.

    2. ESP32-WROOM-32 – “강력한 만능 일꾼”

    • 장점: 듀얼 코어의 힘으로 하나는 통신을 하고, 하나는 센서를 읽는 식의 병렬 처리가 가능합니다. 핀(GPIO) 개수가 많아서 OLED, 센서, 모터 등을 주렁주렁 달기에 가장 좋습니다.
    • 단점: 보드 덩치가 좀 커서 브레드보드에 꽂으면 양옆에 빈칸이 거의 없습니다. 전력 소모가 C3보다 약간 큽니다.

    3. ESP32-C3 Mini – “최신 트렌드, 가성비 끝판왕”

    • 장점: 최신 오픈소스 아키텍처인 RISC-V를 사용합니다. 이름처럼 아주 작아서 소형 프로젝트(웨어러블 등)에 딱입니다. USB-C가 기본이고, 블루투스 5.0을 지원해서 연결성이 좋습니다.
    • 단점: 핀 개수가 적습니다. OLED를 여러 개 달거나 센서를 많이 붙이려면 멀티플렉서(TCA9548A) 같은 추가 부품이 필요할 확률이 높습니다.