Mục lục:

Arduino Dice cho trò chơi hội đồng: 4 bước
Arduino Dice cho trò chơi hội đồng: 4 bước

Video: Arduino Dice cho trò chơi hội đồng: 4 bước

Video: Arduino Dice cho trò chơi hội đồng: 4 bước
Video: Học lập trình Arduino KHÔNG HỀ KHÓ - Bộ KIT học tập Arduino Uno R3 BLK 2024, Tháng bảy
Anonim

Bởi RoboCircuits_comFollow More của tác giả:

Xúc xắc điện tử với UTSOURCE
Xúc xắc điện tử với UTSOURCE
Xúc xắc điện tử với UTSOURCE
Xúc xắc điện tử với UTSOURCE
Công tắc mực nước sử dụng D882
Công tắc mực nước sử dụng D882
Công tắc mực nước sử dụng D882
Công tắc mực nước sử dụng D882
Đồng hồ thời gian thực xung quanh
Đồng hồ thời gian thực xung quanh
Đồng hồ thời gian thực xung quanh
Đồng hồ thời gian thực xung quanh

Giới thiệu: YouTuber, Drone Manufaturer Thông tin thêm về RoboCircuits_com »

Bạn có thể đã sử dụng những viên xúc xắc này khi chơi LUDO và các trò chơi trên bàn khác. Nhưng là một người đam mê điện tử tôi phải thay đổi xu hướng này.

Vì vậy, tôi quyết định làm một con Xúc xắc điện tử. Tôi đã sử dụng Arduino cho mục đích của mình.

Bước 1: Tự làm Arduino

Arduino này do tôi tạo ra bằng vi điều khiển atmega 328p. PCB cho việc này được đặt hàng từ "jlcpcb.com" vì họ cung cấp pcb tốt nhất trong lớp với giá thấp. Sau đó, tôi hàn tất cả các bộ phận và cuối cùng nhận được Arduino UNO trông dễ thương này.

Tất cả các Sơ đồ và Tệp được đưa ra trong Bài viết của Webiste của tôi -

Bước 2: Lập dự án

Được chứ!!!!

đủ về Arduino. Bây giờ chúng ta hãy thực hiện dự án. Đối với các giá trị ngẫu nhiên, tôi đã sử dụng hàm ngẫu nhiên trong arduino Ide để nhận các giá trị từ 1 đến 6 bất cứ khi nào tôi nhấn nút. Vì vậy, hãy xem video đầy đủ này để biết dự án này được thực hiện như thế nào.

Bước 3: Mã

/ * Mã này được thiết kế bởi RoboCircuits

Đăng ký cho tôi trên youtube https://youtube.com/robocircuits hoặc truy cập robocircuits.com Chúng tôi luôn phải đưa vào thư viện * /

#include "LedControl.h"

/ * Bây giờ chúng ta cần một LedControl để làm việc. ***** Các số pin này có thể sẽ không hoạt động với phần cứng của bạn ***** pin 12 được kết nối với DataIn chân 11 được kết nối với CLK chân 10 được kết nối với LOAD Chúng tôi chỉ có một MAX72XX duy nhất. * /

LedControl lc = LedControl (12, 11, 10, 1);

/ * chúng tôi luôn đợi một chút giữa các lần cập nhật màn hình * / unsigned long delaytime = 500; byte sáu [8] = {B00000000, B11011011, B11011011, B00000000, B00000000, B11011011, B11011011, B00000000}; byte năm [8] = {B00000000, B01100110, B01100110, B00011000, B00011000, B01100110, B01100110, B00000000}; byte bốn [8] = {B00000000, B01100110, B01100110, B00000000, B00000000, B01100110, B01100110, B00000000}; byte ba [8] = {B11000000, B11000000, B00000000, B00011000, B00011000, B00000000, B00000011, B00000011}; byte hai [8] = {B00000000, B00000000, B00000000, B01100110, B01100110, B00000000, B00000000, B00000000}; byte một [8] = {B00000000, B00000000, B00000000, B00011000, B00011000, B00000000, B00000000, B00000000};

void setup () {/ * MAX72XX đang ở chế độ tiết kiệm năng lượng khi khởi động, chúng tôi phải thực hiện một cuộc gọi đánh thức * / lc.shutdown (0, false); / * Đặt độ sáng thành giá trị trung bình * / lc.setIntensity (0, 8); / * và xóa màn hình * / lc.clearDisplay (0); }

/ * Phương thức này sẽ hiển thị các ký tự (bạn cần ít nhất 7x7 led để xem toàn bộ ký tự) * / void one1 () {/ * đây là dữ liệu cho các ký tự * / / * bây giờ hãy hiển thị từng ký tự một với một dấu nhỏ delay * / lc.setRow (0, 0, one [0]); lc.setRow (0, 1, một [1]); lc.setRow (0, 2, một [2]); lc.setRow (0, 3, một [3]); lc.setRow (0, 4, một [4]); lc.setRow (0, 5, một [5]); lc.setRow (0, 6, một [6]); lc.setRow (0, 7, một [7]); sự chậm trễ (delaytime); } void two2 () {/ * đây là dữ liệu cho các ký tự * / / * bây giờ hiển thị từng ký tự một với độ trễ nhỏ * / lc.setRow (0, 0, two [0]); lc.setRow (0, 1, hai [1]); lc.setRow (0, 2, hai [2]); lc.setRow (0, 3, hai [3]); lc.setRow (0, 4, hai [4]); lc.setRow (0, 5, hai [5]); lc.setRow (0, 6, hai [6]); lc.setRow (0, 7, hai [7]); sự chậm trễ (delaytime); } void three3 () {/ * đây là dữ liệu cho các ký tự * / / * bây giờ hiển thị từng ký tự một với độ trễ nhỏ * / lc.setRow (0, 0, three [0]); lc.setRow (0, 1, ba [1]); lc.setRow (0, 2, ba [2]); lc.setRow (0, 3, ba [3]); lc.setRow (0, 4, ba [4]); lc.setRow (0, 5, ba [5]); lc.setRow (0, 6, ba [6]); lc.setRow (0, 7, ba [7]); sự chậm trễ (delaytime); } void four4 () {/ * đây là dữ liệu cho các ký tự * / / * bây giờ hiển thị chúng bốn x bốn với độ trễ nhỏ * / lc.setRow (0, 0, bốn [0]); lc.setRow (0, 1, bốn [1]); lc.setRow (0, 2, bốn [2]); lc.setRow (0, 3, bốn [3]); lc.setRow (0, 4, bốn [4]); lc.setRow (0, 5, bốn [5]); lc.setRow (0, 6, bốn [6]); lc.setRow (0, 7, bốn [7]); sự chậm trễ (delaytime); } void five5 () {/ * đây là dữ liệu cho các ký tự * / / * bây giờ hiển thị chúng năm phần năm với độ trễ nhỏ * / lc.setRow (0, 0, five [0]); lc.setRow (0, 1, năm [1]); lc.setRow (0, 2, năm [2]); lc.setRow (0, 3, năm [3]); lc.setRow (0, 4, năm [4]); lc.setRow (0, 5, năm [5]); lc.setRow (0, 6, năm [6]); lc.setRow (0, 7, năm [7]);

sự chậm trễ (delaytime); } void six6 () {/ * đây là dữ liệu cho các ký tự * / / * bây giờ hiển thị chúng từ sáu đến sáu với độ trễ nhỏ * / lc.setRow (0, 0, six [0]); lc.setRow (0, 1, sáu [1]); lc.setRow (0, 2, sáu [2]); lc.setRow (0, 3, sáu [3]); lc.setRow (0, 4, sáu [4]); lc.setRow (0, 5, sáu [5]); lc.setRow (0, 6, sáu [6]); lc.setRow (0, 7, sáu [7]); sự chậm trễ (delaytime); }

void loop () {int x; if (analogRead (A4) == 1000) {x = random (1, 6); } switch (x) {case 1: one1 (); nghỉ; case 2: hai2 (); nghỉ; case 3: ba3 (); nghỉ; case 4: four4 (); nghỉ; case 5: five5 (); nghỉ; trường hợp 6: six6 (); nghỉ;} }

Bước 4: Thích Chia sẻ

Đăng ký chúng tôi trên YouTube -

Thích chúng tôi trên Facebook -

Truy cập -

Đề xuất: