안녕하세요 여러분, 오늘은 ESP32-C3 Super Mini 마이크로컨트롤러와 클래식 CD4017 CMOS 십진수 카운터를 조합하여 '디지털 룰렛 휠'을 만드는 방법을 보여드리겠습니다.
버튼을 누르면, ESP32는 CD4017 IC에게 “클록 펄스”를 보내서 LED가 순환하게 됩니다. 버튼을 풀면 실제 속도가 점차 줄어들어 랜덤으로 결과가 나오고, 최종 위치는 Serial Monitor 또는 Wi-Fi를 통해 표시됩니다.
제발, 이 프로젝트의 하드웨어 디자인, 아두이노 코딩, PHP, 데이터베이스, 3D디자인과 인쇄 등 많은 일들이 일어나고 있습니다.
비디오:https://youtu.be/5jVFR7KSNmg
전체 블로그 게시물:https://diyfactory007.blogspot.com/2026/05/Roulette.html
필요한 구성 요소들
이 프로젝트를 위해 우리는 다음을 필요로 합니다:
🔗 1개의 ESP32-C3 Super Mini Plus 마이크로컨트롤러:https://s.click.aliexpress.com/e/_c2zUTvyj
🔗 2개의 CD4017 CMOS 십진수 카운터:https://s.click.aliexpress.com/e/_c33qzzRt
🔗 2개의 2N2222 NPN 트랜지스터:https://s.click.aliexpress.com/e/_c4OwNvnZ
🔗 3개의 220Ω 저항기:https://s.click.aliexpress.com/e/_c41SucJd
🔗 1개의 10kΩ 저항기:https://s.click.aliexpress.com/e/_c41SucJd
🔗 1개의 푸시 버튼 스위치:https://s.click.aliexpress.com/e/_c3cfuN6J
🔗 1개의 SPDT 스위치:https://s.click.aliexpress.com/e/_c4FRHRaX
🔗 18 x 5mm 빨간 LED들:https://s.click.aliexpress.com/e/_c2RpNzh9
🔗 2개의 5mm 그린 LED:https://s.click.aliexpress.com/e/_c2RpNzh9
🔗 1개의 3mm 파란색 LED:https://s.click.aliexpress.com/e/_c306Pzbh
🔗 1개의 10mfd 커패시터(선택 사항)
🔗 1개의 LiPo 배터리:https://s.click.aliexpress.com/e/_c4okFfef
🔗 1개의 배터리 충전 모듈(선택 사항):https://s.click.aliexpress.com/e/_c3EJLcZh
🔗 1개의 배터리 레벨 표시기:https://s.click.aliexpress.com/e/_c4KGEDh5
그리고 인클로저를 인쇄하기 위한 3D 프린터.
회로 도표
이 프로젝트의 배선은 정말 간단합니다!
* ESP32의 핀 8을 IC #1의 리셋 핀(핀 15)에 연결하세요.
* ESP32의 핀 10을 IC#1의 클록 핀(핀 14)에 연결하세요.
* ESP32의 핀 9를 풀업 레지스터를 통해 푸시버튼 스위치에 연결하세요.
* ESP32의 핀-0을 전류 제한 저항기를 통해 Wi-Fi 인디케이터 LED에 연결하세요.
나머지 배선에 대해서는 화면에 표시된 회로 도면을 확인해 주십시오.
더욱 쉽게 만들기 위해, 저는 당신을 위한 사용자 정의 PCB를 설계했습니다.
핵심 기능
나는 원래 555타이머 IC와 몇몇 CD4017 CMOS 데시마 카운터를 사용하여 이 레드 룰렛 프로젝트를 만들었습니다. 555타이머는 클록 오실레이터 역할을 하며, 4017 데시마 카운터를 구동하는 신호를 생성합니다. IC555의 PIN-3에서 출력된 신호는 IC4017의 PIN-14에 입력되며, IC4017이 펄스
집적회로
이 초기 디자인의 주요 단점은 수를 수동으로 처리해야 했다는 것입니다. 저는 숫자가 자동으로 추가되고 승자가 시스템 자체에 의해 결정되는 시스템을 원했습니다. 제 목표는 도박 휠을 만드는 것이 아니고, 제 아들과 함께 즐길 수 있는 간단한 룰렛 게임을 만들는 것입니다.
그러기 위해서, ESP32-C3 Super Mini가 완벽한 선택임이 입증되었습니다. 그것은 작고 내장된 Wi-Fi 기능을 가지고 있습니다.
그래서, 555 타이머 IC를 사용하는 대신, ESP32-C3 보드를 사용하여 CD4017 IC 중 하나를 위한 '클록 펄스'를 생성했습니다. 버튼을 누르면, 펄스가 점점 더 빠르게 됩니다. 불빛은 원을 따라 회전하며, '회전'의 느낌을 만들어 냅니다. 버튼을 풀면 회전이 즉시 멈추지 않습니다. 대신, 펄스 사이의 시간
코드
자, 이제 전체 쇼를 구동하는 로직을 살펴보자.
앞에서 언급했듯이, 이 시스템은 많은 구성 요소, 아두이노 코드, PHP, MySQL 데이터베이스 등에 의존합니다. 제 GitHub 리포지토리에는 서버가 있는 버전과 없는 버전의 두 가지 코드가 포함되어 있습니다. 서버에 저장된 결과가 필요 없는 경우에는 'Code_No_Wi-Fi'를 당신의 ESP32 보드에 간단히 업
그러나, 이 튜토리얼의 경우, 설정의 전체 기능을 보여드리겠습니다.
자, 이제 하나씩 코드를 검토해 봅시다.
아두이노 코드에서는 네트워크의 SSID와 암호를 입력해야 하며, PHP 파일이 저장될 디렉토리에 해당하는 서버 IP와 주소를 설정해야 합니다.
기존 기능에 새로운 기능을 추가하지 않는 한, 코드의 다른 부분은 수정할 필요가 없습니다.
룰렛을 켜면, ESP32가 먼저 Wi-Fi를 통해 서버에 연결을 시도합니다. 연결이 되면 선수들은 게임을 시작할 수 있습니다. 버튼을 누르면 지연 시간을 줄여서 LED 시퀀스의 속도를 높이고, 버튼을 풀면 지연 시간을 늘려서 속도를 줄입니다. 이때가 순서가 완전히 멈추기 전의 자연스러운 자유주행 효과입니다.
LED 휠이 멈추면, ESP32-C3은 승리한 위치를 원격 서버에 보냅니다. 이 과정은 선수들이 계속 게임을 하고 있는 한 계속 되어야 합니다.
코드 외에도, 내 MySQL 서버에 임포트해야 할 "MySQL_DB.sql" 파일을 포함시켰습니다.
이 작업을 수행하려면 phpMyAdmin을 열고 '가져오기' 탭으로 이동하고 '파일 선택' 버튼을 클릭하고 'MySQL_DB.sql' 파일을 선택한 후 '확인' 버튼을 클릭하여 테이블을 가져옵니다. 가져오기가 성공적이었는지 확인하려면 테이블 이름을 클릭하고 테이블 구조가 올바르게 표시되는지 확인하십시오
웹 서버를 설정하려면 내 GitHub 리포지토리에서 다운로드한 PHP 파일을 조금 수정해야 합니다. 'Connection.php'를 열고 파일 내의 호스트 이름, 사용자 이름, 비밀번호 및 데이터베이스 이름을 업데이트한 후 파일을 웹 서버의 디렉토리에 드래그 앤 드롭하십시오.
모든 것이 올바르게 작동하는지 확인하려면, 'Player_Results_Display.php' 파일을 웹 브라우저에서 열고 리더보드가 올바르게 표시되는지 확인하십시오.
브레드보드 데모.
하드웨어 로직이 준비되었고 서버가 설정되었으므로, 시스템의 기능을 확인하기 위해 브레드보드에서 빠른 테스트를 실시할 수 있습니다.
계속하여 버튼을 누른 후 시리얼 모니터가 그 버튼 누름을 인식하는지 확인해 봅시다. 시리얼 모니터에는 HTTP 200코드가 표시되어 서버와의 성공적인 통신을 나타냅니다. 리더보드 페이지에서 서버가 버튼 누름을 기록했다는 것을 확인할 수 있습니다. 웹페이지는 5초마다 자동으로 새로 고쳐져, 두
이 페이지에는 '선수 1'과 '선수 2'의 사이드-바이 사이드 스코어카드가 포함되어 있으며, 각 선수의 실시간 스코어, 승리, 패배, 무승부 및 총 경기 수를 표시합니다.
'새 게임' 버튼을 클릭하면, 페이지가 재설정되며, 시스템은 현재 점수에 따라 플레이어의 승리, 패배 또는 무승부 카운트를 업데이트합니다.
3D 프린팅
마이크로소프트 3D Builder를 사용하여, 이 프로젝트의 3D 모델을 디자인했습니다.
그 디자인은 세 부분으로 구성되어 있습니다:
- 모든 LED를 수용하는 상부 부분,
- 모든 전자 구성 요소가 포함된 하단 부분과
- 파란색 Wi-Fi 표시등, USB 충전 모듈, SPDT 온/오프 스위치, 그리고 안테나 케이블과 푸시버튼 스위치를 위한 구멍이 있는 작은 블록입니다.
저는 반부 스튜디오에서 모형을 자르고, 새로운 반부 A1 3D 프린터를 사용해 그것을 인쇄했습니다.
마지막으로, 아크릴 색상을 사용하여 프로젝트의 본체를 그렸습니다. 금색 마감은 인쇄물의 모습을 정말 향상시켰습니다. 페인트가 마르은 후, 저자는 모든 LED를 상부 부분에 설치하였으며, 이들의 음전극을 '10개씩' 연결하였습니다.
용접
자, 이제 모든 전자 부품을 조립하기 시작하자. 먼저, PCB의 품질을 점검하세요. 저는 지금까지 6년 동안 PCBWay를 사용해 왔고, 그들이 제공하는 최종 제품을 정말 좋아합니다.
먼저 모든 저항을 보드에 납땜한 다음 모든 트랜지스터를 납땜하자면서 시작하자.
저는 제 IC와 마이크로컨트롤러를 더욱 신중하게 다루기 때문에, 이들을 보드에 직접 납땜하지 않습니다. 저는 IC 베이스를 항상 사용하며, 베이스가 없는 경우에는 암 핀 헤더를 사용합니다. 이는 직접 납땜을 하지 않고 교체가 쉽게 가능하게 해 줍니다. 저는 하나씩 모든 구성 요소를 PCB에 납땜했습니
보드에 전력을 공급하려면 충전 모듈과 몇몇 추가 구성 요소를 통합해야 합니다. 먼저 SPDT 스위치를 설치한 후 파란색 Wi-Fi 표시등 LED를 설치했습니다. 그런 다음 세계에서 가장 작은 배터리 충전 모듈을 블록에 부착하고 이 작은 하얀 블록을 사용하여 고정했습니다. 마지막으로 온스크린 회로 다이
남은 두 개의 구멍은 안테나와 푸시버튼 스위치를 수용합니다. 마지막으로, 모든 구성 요소가 설치되면, 저는 베이스의 바닥에 있는 그루브에 플라스틱 블록을 붙혔습니다.
LED에 연결할 모든 전선을 다 납땜한 후 보드가 이렇게 보입니다. 1부터 10까지의 LED는 공용 GND2를 사용하고, 11부터 20까지의 LED는 공용 GND1을 사용합니다.
LED를 보드에 焊접할 때는 코드가 서버로 보내는 것과 실제 LED 번호가 일치하지 않는 상황을 방지하기 위해 올바른 순서로 焊접해야 합니다. 올바른 순서에 대한 지침은 화면에 표시되어 있습니다. 실수로 잘못 焊접한 경우에는 Arduino 코드의 배열을 수정하여 변경 사항을 적용할 수 있습니다.
제 설정에서는 모든 것을 3.7V의 충전식 배터리로 공급하고 있습니다. 그러나, 원하는 경우에는 220V에서 5V로 변환하는 스테ップ다운 컨버터 또는 USB 케이블을 보드의 +5V 및 -VE 홀에 연결할 수도 있습니다.
모든 것이 제자리에 있다면, 남은 것은 바닥 부분을 위 부분에 붙이는 것만 남았습니다.
마지막 데모
하드웨어가 준비되었으면, 이제 재미있게 놀아볼 시간입니다! 장치를 켜고 파란색 LED가 켜지는 것을 기다리세요. LED가 켜지면 서버와의 와이파이 연결이 확인되었다는 것을 의미합니다. 푸시 버튼을 누르면 LED가 번쩍이기 시작하며, 당신의 점수는 같은 네트워크에 연결된 모든 장치(PC나 모바일
고마워요.
제 게시물을 확인해 주셔서 다시 한번 감사합니다. 여러분에게 도움이 되었기를 바랍니다.
전체 블로그 게시물:https://diyfactory007.blogspot.com/2026/05/Roulette.html
Tags
Modellquelle



















