Mục lục:
Video: Hộp câu đố Arduino: 7 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:32
Đối với dự án này, chúng tôi sẽ làm một hộp xếp hình hoạt động với âm nhạc. Ý chính cơ bản của nó là khi bạn nhấn một nút, nó sẽ phát ra một giai điệu và Arduino sẽ tính toán những nút nào được nhấn để nó biết đâu là câu trả lời đúng và đâu là câu trả lời sai.
Quân nhu
1 x Arduino chưa
Điện trở 1 x 1k Ohm
Điện trở 5 x 220 Ohm
1 xPiezo Buzzer
5 x nút bấm 6x6 mm
1 x bộ dây Jumper
1 x bảng điều khiển / dải
1 x hàn
1 x bản lề
1 x kẹp
1 x tủ ngăn kéo nhỏ / gỗ
1x súng bắn keo nóng + keo dính
1 x pin 9v + giá đỡ
một chút của lobla
Sơn
Bước 1:
Để bắt đầu, bạn phải bấm ghim vào breadboard. Bây giờ kết nối analog 2 bằng một sợi dây vào góc của bảng. Chúng tôi sẽ kết nối hai điện trở với nó thành một đường dây. Đầu tiên là một điện trở 10k Ohm. Với đầu kia của điện trở này, chúng tôi kết nối dây với đất tương tự. Điện trở thứ hai là một điện trở 220 Ohm, chúng tôi kết nối với nút đầu tiên. Dùng một điện trở khác có cùng giá trị để nối mặt hở thứ hai của nút với nút thứ hai. Tiếp tục kết nối các nút như thế này cho đến nút cuối cùng. Cuối cùng, bạn lấy một sợi dây và kết nối nó với một mặt đóng tương ứng của nút và kết nối nó với cái tiếp theo trong dòng. Bây giờ bạn lặp lại quá trình bạn đã làm với các điện trở chỉ biết với dây đơn giản. Kết nối nút đầu tiên với cổng 3V tương tự trên Arduino của bạn. Nói chung, bạn sẽ nhận được một loại patern chéo như được mô tả dưới đây.
Bước 2:
Tiếp theo, cắm buzzer của bạn vào breadboard và cố định một bên vào mặt đất kỹ thuật số và một bên vào cổng 12. Thật thông minh khi đã tải mã sau vào Arduino của bạn để bạn có thể kiểm tra xem mọi thứ có hoạt động chính xác hay không. Nếu đúng như vậy, bạn có thể bắt đầu hàn các thành phần lại với nhau. Thực hiện việc này bằng cách lấy chúng ra khỏi breadboard và hàn trực tiếp các dây và kết nối với nhau. Nếu bạn nghĩ rằng bạn cần thêm chiều dài ở giữa các nút, bạn có thể thêm một số dây bổ sung vào giữa các điện trở. Tại thời điểm này, breadboard không còn cần thiết nữa.
Bước 3:
Sau khi mọi thứ được hàn, đã đến lúc tự làm hộp. Tôi đã sử dụng một bộ ngăn kéo rẻ tiền làm cơ sở cho mình. Tôi chỉ đơn giản là cắt đôi theo chiều dài và loại bỏ mặt sau và mặt mà tôi cắt qua. Bây giờ bạn sẽ có hai mảnh hình chữ c. Cắt một bên của một trong số chúng để sử dụng làm nắp. Bây giờ xoay một trong các mảnh còn lại để chúng khớp với nhau giống như một chiếc hộp không nắp và dán chúng lại với nhau. Sau khi keo đã đặt đúng cách, hãy khoan một lỗ nhỏ ở mỗi bên của hộp cho các nút và lỗ lớn hơn cho buzzer trên nắp.
Bước 4:
Bây giờ bạn có thể sơn cái hộp. Tôi đã làm của tôi với một thiết kế hoa dựa trên BOTW nhưng bạn thực sự có thể chọn bất kỳ thiết kế nào bạn muốn. Sau khi hoàn thành, bạn có thể đặt các nút bên trong các lỗ và nhỏ một giọt keo lên mặt sau của nút và phần gỗ xung quanh. Nguyên tắc tương tự áp dụng cho bộ rung nhưng mỏ vừa khít hoàn toàn trong lỗ khiến nó không cần thiết. Tiếp theo, bạn lấy một ít sợi vải và đun nóng và cắt nó để làm một số nút nhỏ. Cẩn thận dán chúng vào các nút nhưng đảm bảo không sử dụng nhiều keo vì bạn có thể vô tình làm các nút bị kẹt. Bây giờ bạn có thể sơn chúng lên để làm cho chúng hòa hợp với hộp hơn.
Bước 5:
Cuối cùng bạn dán keo hoặc vít, kẹp và bản lề vào hộp và nắp để kết nối hai chiếc.
Bước 6:
Bây giờ hộp của bạn đã hoàn thành, tất cả những gì bạn phải làm là đặt Arduino và pin vào bên trong hộp và đóng nắp lại.
Bước 7: Mã
// Đây là mã cho hộp âm nhạc / câu đố theo chủ đề Zelda.
// điều này kết nối mã của bạn với danh sách ghi chú trong tab khác
#include "pitch.h"
// biến này sẽ đảm bảo rằng Arduino thấy nút nhấn lâu hơn chỉ bằng một lần nhấn
int cùng = 0;
// từ đây nó sẽ đọc đầu vào của bạn
int k = 2;
// đây là chân đầu ra của bạn
int loa = 12;
// bên dưới là những giai điệu kết thúc
int Zelda = {NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A5, NOTE_G5, NOTE_D5, NOTE_C5, NOTE_B4, NOTE_A5};
int ZeldaTime = {2, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 4, 2};
int Epona = {NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_B4, NOTE_A4};
int EponaTime = {4, 4, 1.5, 4, 4, 1.5, 4, 4, 2, 2, 1};
int Saria = {NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_E5, NOTE_D5, NOTE_B4, NOTE_C5, NOTE_B4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_E4, NOTE_E4, NOTE_G4;
int SariaTime = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};
// thời lượng bình thường của một ghi chú
int BEATTIME = 300;
// bộ đếm sẽ theo dõi chúng ta đang ở trong giải pháp
int giao dịch viên = 0;
void setup () {
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (1, INPUT);
}
void loop () {
// đọc đầu vào từ các chân
k = analogRead (2);
int p = analogRead (1);
// nếu không có nút nào được nhấn thì sẽ không có âm báo
if (giao dịch viên == 0) {
noTone (12);
}
// nếu dữ liệu đọc tương ứng với các tham số, hãy chạy bit mã được mô tả
nếu (k> 320 && k <350) {
rechts ();
}
//""
khác nếu (k 290) {
các liên kết ();
}
//""
khác nếu (k> 260 && k <280) {
boven ();
}
//""
khác nếu (k> 240 && k <260) {
onder ();
}
//""
khác nếu (k> 220 && k <240) {
Một();
}
// nếu không (khi không có nút nào được nhấn), hãy chạy mã này
khác {
// đặt lại giống nhau để nó có thể được sử dụng trong lần nhấn nút tiếp theo
giống nhau = 0;
// nếu bộ đếm lên đến một số nhất định, hãy chạy bit mã được mô tả
if (giao dịch viên == 166) {
zelda ();
}
//""
khác nếu (người giao dịch == 386) {
saria ();
}
//""
khác nếu (người giao dịch == 266) {
epona ();
}
//""
khác nếu (người giao dịch == 999) {
// phát âm báo này để đánh dấu lỗi
âm báo (loa, NOTE_C3, BEATTIME);
// đặt lại bộ đếm về 0
giao dịch viên = 0;
}
}
// độ trễ giữa đầu vào và đầu ra
chậm trễ (100);
// in các giá trị đầu vào của bạn trong màn hình nối tiếp
Serial.println (k);
}
// đây là giai điệu đầu tiên
void zelda () {
// điều này đặt bộ đếm tự cập nhật trong khi phát giai điệu để nó có thể đọc và dừng khi cần
for (int i = 0; i <sizeof (Zelda); i ++) {
// cho biết một ghi chú sẽ tồn tại trong bao lâu
int ZTime = 1000 / ZeldaTime ;
// tạo âm báo
giai điệu (loa, Zelda , ZTime);
// tạo độ trễ chính xác
int pause = ZTime * 1.30;
trì hoãn (tạm dừng);
// đặt lại bộ đếm
giao dịch viên = 0;
// in các giá trị đầu vào của bạn trong màn hình nối tiếp
Serial.println (giao dịch viên);
}
}
//""
void epona () {
for (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
âm điệu (người nói, Epona , ETime);
int pause = ETime * 1.30;
trì hoãn (tạm dừng);
giao dịch viên = 0;
Serial.println (giao dịch viên);
}
}
//""
void saria () {
for (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
giai điệu (người nói, Saria , STime);
int pause = STime * 1.30;
trì hoãn (tạm dừng);
giao dịch viên = 0;
Serial.println (giao dịch viên);
}
}
void rec
hts () {
// nếu điều này chưa được nhấn
nếu (giống nhau == 0) {
// nếu bộ đếm hiện có một trong các giá trị này, hãy thêm giá trị này vào
if (người kể == 0 || người kể == 132 || người kể == 165 || người kể == 232 || người kể == 265 || người kể == 331 || người nói == 374) {
người giao dịch = người kể + 1;
}
// nếu không, hãy đặt nó thành 999 để bạn nghe thấy tiếng ồn lỗi te
khác {
giao dịch viên = 999;
}
// đặt giống nhau thành một để Arduino không đọc một lần nhấn kéo dài như nhiều lần nhấn
giống nhau = 1;
}
// phát âm báo
khác {
âm báo (loa, NOTE_A4, BEATTIME);
}
// in các giá trị đầu vào của bạn trong màn hình nối tiếp
Serial.println (giao dịch viên); }
//""
liên kết vô hiệu () {
nếu (giống nhau == 0) {
if (người giao dịch == 133 || người giao dịch == 254 || người giao dịch == 244 || người giao dịch == 332 || người giao dịch == 375 || người giao dịch == 221) {
người giao dịch = người giao dịch + 11;
}
khác nếu (người giao dịch == 0) {
giao dịch viên = 111;
}
khác {
giao dịch viên = 999;
}
giống nhau = 1;
} khác{
âm báo (loa, NOTE_B4, BEATTIME);
} Serial.println (giao dịch viên);
}
//""
void boven () {
if (giống nhau == 0) {if (người giao dịch == 111 || người giao dịch == 144 || người giao dịch == 233) {
người giao dịch = người giao dịch + 21;
}
khác nếu (người giao dịch == 0) {
giao dịch viên = 221;
}
khác {
giao dịch viên = 999;
}
giống nhau = 1;
}
khác {
âm báo (loa, NOTE_D5, BEATTIME);
Serial.println (giao dịch viên);
}
}
//""
void onder () {
nếu (giống nhau == 0) {
if (giao dịch viên == 343) {
người giao dịch = người giao dịch + 31;
}
khác nếu (người giao dịch == 0) {
giao dịch viên = 331;
} khác {
giao dịch viên = 999;
} giống nhau = 1;
} khác {
âm báo (loa, NOTE_F4, BEATTIME);
Serial.println (giao dịch viên);
}
}
//""
void a () {
nếu (giống nhau == 0) {
if (giao dịch viên == 0) {
giao dịch viên = 461;
}
khác {
giao dịch viên = 999;
}
giống nhau = 1;
}
âm báo (loa, NOTE_D4, BEATTIME);
Serial.println (giao dịch viên);
}
Đề xuất:
Tạo nhãn cầu Đơn thuốc cho nhãn cầu của bạn: Dự án BME60B: 9 bước
Eyeballing Your Eyeball's Prescription: a BME60B Project: By: Hannah Silos, Sang Hee Kim, Thomas Vazquez, Patrick VisteMagnification là một trong những tính năng chính hiện nay của kính đọc sách, được phân loại theo đơn thuốc của chúng. Theo Đại học Công nghệ Michigan, một diopter là một
Nhà tuyển dụng Robo của Makerspace - Nhận câu trả lời cho các câu hỏi thường gặp của bạn: 4 bước
Nhà tuyển dụng Robo của Makerspace - Nhận câu trả lời cho các câu hỏi thường gặp của bạn: Năm ngoái, tôi đã trình bày với hiệu trưởng nhà trường về ý tưởng tổ chức một lớp Makerspace ngoại khóa dành cho những sinh viên tò mò muốn biết mọi thứ về mọi công cụ mà chúng tôi có. Vì vậy, cuối cùng khi anh ấy đồng ý, tôi biết tôi phải thu hút tất cả sự quan tâm của học sinh
Đồng hồ từ cầu vồng với hiệu ứng cầu vồng đầy đủ và hơn thế nữa: 13 bước (có hình ảnh)
Đồng hồ từ cầu vồng với hiệu ứng cầu vồng đầy đủ và hơn thế nữa: Mục tiêu1) Đơn giản2) Không tốn kém 3) Tiết kiệm năng lượng nhất có thể Đồng hồ từ cầu vồng với hiệu ứng cầu vồng đầy đủ. Mặt cười trên đồng hồ từ. Điều khiển từ xa IR đơn giản Cập nhật 03-nov-18 LDR cho Kiểm soát độ sáng của NeopixelsUpdate 01-jan-
Bộ hẹn giờ NE555 - Định cấu hình Bộ hẹn giờ NE555 trong một cấu hình có thể linh hoạt: 7 bước
Bộ hẹn giờ NE555 | Đặt cấu hình Bộ hẹn giờ NE555 trong một cấu hình linh hoạt: Bộ định thời NE555 là một trong những IC được sử dụng phổ biến nhất trong thế giới điện tử. Nó ở dạng DIP 8, có nghĩa là nó có 8 chân
Hộp Barbie: Hộp ngụy trang / Hộp bùng nổ cho máy nghe nhạc Mp3 của bạn: 4 bước (có hình ảnh)
Hộp Barbie: Hộp ngụy trang / Hộp bùng nổ cho máy nghe nhạc Mp3 của bạn: Đây là một hộp đựng bảo vệ có đệm cho máy nghe nhạc mp3 của bạn, cũng có thể chuyển đổi giắc cắm tai nghe sang 1/4 inch, có thể hoạt động như một hộp bùng nổ khi lật công tắc và ngụy trang máy nghe nhạc mp3 của bạn thành một máy nghe nhạc đầu những năm chín mươi hoặc hành vi trộm cắp tương tự tôi