Tự làm Bàn xoay Roulette LED | Dự án ESP32 C3

Hướng dẫn làm bàn xoay Roulette kỹ thuật số dùng ESP32-C3 và IC CD4017. Dự án bao gồm lập trình Arduino, thiết kế 3D, tích hợp Wi-Fi, database MySQL và giao diện PHP để lưu điểm số người chơi một cách chuyên nghiệp.

👁️
24
Lượt Xem
❤️
3
Lượt Thích
📥
0
Lượt Tải
Cập Nhật Jul 18, 2026
Chi tiết
Tải xuống
Bình Luận
Khoe bản in
Remix

Mô tả

Chào mọi người, hôm nay mình sẽ hướng dẫn các bạn cách làm một chiếc "Bàn xoay Roulette kỹ thuật số" bằng cách kết hợp vi điều khiển ESP32-C3 Super Mini với bộ đếm thập phân CD4017 CMOS kinh điển. Khi nhấn nút, ESP32 sẽ gửi các xung nhịp tới IC CD4017, làm cho các đèn LED chạy vòng quanh. Khi thả nút, nó sẽ tạo ra hiệu ứng chậm dần thật sự cho đến khi dừng lại ở một kết quả ngẫu nhiên và báo cáo vị trí cuối cùng thông qua Serial Monitor hoặc Wi-Fi. Tin mình đi, dự án này kết hợp rất nhiều thứ từ thiết kế phần cứng, lập trình Arduino, PHP, cơ sở dữ liệu, cho đến thiết kế và in 3D.

Video: https://youtu.be/5jVFR7KSNmg Bài viết chi tiết: https://diyfactory007.blogspot.com/2026/05/Roulette.html

Linh kiện cần thiết

Đối với dự án này, chúng ta cần: 🔗 1 x ESP32-C3 Super Mini Plus: https://s.click.aliexpress.com/e/_c2zUTvyj 🔗 2 x IC CD4017 CMOS: https://s.click.aliexpress.com/e/_c33qzzRt 🔗 2 x Transistor 2N2222 NPN: https://s.click.aliexpress.com/e/_c4OwNvnZ 🔗 3 x Điện trở 220Ω: https://s.click.aliexpress.com/e/_c41SucJd 🔗 1 x Điện trở 10kΩ: https://s.click.aliexpress.com/e/_c41SucJd 🔗 1 x Nút nhấn: https://s.click.aliexpress.com/e/_c3cfuN6J 🔗 1 x Công tắc SPDT: https://s.click.aliexpress.com/e/_c4FRHRaX 🔗 18 x LED đỏ 5mm: https://s.click.aliexpress.com/e/_c2RpNzh9 🔗 2 x LED xanh lá 5mm: https://s.click.aliexpress.com/e/_c2RpNzh9 🔗 1 x LED xanh dương 3mm: https://s.click.aliexpress.com/e/_c306Pzbh 🔗 1 x Tụ điện 10mfd (tùy chọn) 🔗 1 x Pin LiPo: https://s.click.aliexpress.com/e/_c4okFfef 🔗 1 x Module sạc pin (tùy chọn): https://s.click.aliexpress.com/e/_c3EJLcZh 🔗 1 x Chỉ báo mức pin: https://s.click.aliexpress.com/e/_c4KGEDh5 Và một máy in 3D để in vỏ bảo vệ.

Sơ đồ mạch

Cách đấu nối cho dự án này rất đơn giản:

  • Nối chân 8 của ESP32 với chân Reset (chân 15) của IC số 1.
  • Nối chân 10 của ESP32 với chân Clock (chân 14) của IC số 1.
  • Nối chân 9 của ESP32 với nút nhấn cùng điện trở kéo lên (pull-up).
  • Nối chân 0 của ESP32 với đèn LED báo Wi-Fi cùng điện trở hạn dòng.

Để biết thêm về phần đấu nối còn lại, hãy xem sơ đồ mạch trên màn hình.

Để mọi việc dễ dàng hơn, mình đã thiết kế một chiếc PCB tùy chỉnh. Bạn có thể tải file Gerber từ mô tả bên dưới và đặt làm mạch tại PCBWay.com.

Nguyên lý hoạt động

Ban đầu mình xây dựng dự án LED Roulette này bằng IC định thời 555 và vài IC CD4017. IC 555 hoạt động như một bộ dao động xung nhịp. Tuy nhiên, điểm hạn chế là mình phải đếm thủ công. Mình muốn một hệ thống tự động và người chiến thắng được quyết định bởi máy. ESP32-C3 là lựa chọn hoàn hảo vì nhỏ gọn và có Wi-Fi tích hợp.

Thay vì dùng IC 555, mình dùng ESP32-C3 để tạo xung cho CD4017. Khi nhấn nút, xung chạy nhanh dần. Khi thả nút, xung chậm lại dần dần y như bánh xe Roulette thật. Sau khi dừng, kết quả được gửi qua Serial Monitor hoặc Wi-Fi, lưu vào database MySQL và hiển thị bằng PHP.

Mã nguồn

Trong kho lưu trữ GitHub của mình có hai phiên bản code: có server và không có server. Nếu bạn không cần lưu kết quả lên server, bạn chỉ cần nạp "Code_No_Wi-Fi" vào ESP32.

Trong code Arduino, bạn cần điền SSID và mật khẩu Wi-Fi, cũng như IP và URL của server. Khi khởi động, ESP32 sẽ kết nối Wi-Fi, sau đó người chơi có thể bắt đầu trò chơi.

Ngoài code, mình đã đính kèm file "MySQL_DB.sql" để import vào phpMyAdmin.

Để thiết lập server, hãy cập nhật thông tin database trong file "Connection.php" rồi tải các file lên web server của bạn.

Thử nghiệm trên Breadboard

Sau khi đã setup xong phần cứng và server, hãy thử nhấn nút. Serial monitor sẽ hiển thị mã HTTP 200 cho thấy đã giao tiếp thành công với server. Trang Leaderboard sẽ tự làm mới mỗi 5 giây.

In 3D

Mình thiết kế mô hình 3D bằng Microsoft 3D Builder. Thiết kế gồm 3 phần: phần trên chứa LED, phần dưới chứa linh kiện điện tử và một khối nhỏ cho đèn báo Wi-Fi, module sạc, công tắc.

Sau khi in xong bằng máy Bambu A1, mình sơn màu Acrylic lên. Lớp sơn vàng giúp sản phẩm trông xịn hơn hẳn.

Hàn mạch

Để bảo vệ IC, mình luôn dùng đế cắm IC thay vì hàn trực tiếp. Hàn linh kiện vào PCB và lắp vào hộp.

Lắp module sạc, công tắc SPDT và đèn LED báo hiệu vào khối nhựa.

Khi hàn LED, hãy chú ý đúng thứ tự để không bị sai lệch với code. Nếu hàn sai, bạn có thể chỉnh lại mảng (array) trong code Arduino.

Demo cuối cùng

Với phần cứng đã sẵn sàng, hãy tận hưởng thôi! Bật nguồn và chờ đèn xanh dương sáng lên. Nhấn nút để bắt đầu chơi. Điểm số của bạn có thể xem trên bất kỳ thiết bị nào cùng mạng Wi-Fi.

Cảm ơn

Cảm ơn các bạn đã xem bài viết. Nếu thấy hữu ích hãy đăng ký kênh YouTube của mình nhé: https://www.youtube.com/user/tarantula3

Tài liệu tham khảo

GitHub: https://github.com/tarantula3/ESP32_Roulette Gerber: Tải về STL: https://github.com/tarantula3/ESP32_Roulette

Hẹn gặp lại các bạn ở bài hướng dẫn tiếp theo!

Giấy phép

Tác phẩm này được cấp phép theo

GNU General Public License v3.0

GPL 3.0

Yêu cầu ghi công
Remix & phái sinh Được phép
Sử dụng thương mại Được phép

File mô hình

TẤT CẢ FILE MÔ HÌNH (4 Tập tin)
Đang tải files, vui lòng chờ...
Vui lòng đăng nhập để bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Vui lòng đăng nhập để khoe bản in của bạn.

Chưa có bản in nào được khoe. Hãy là người đầu tiên!

Remix (0)