Mục lục:

Âm nhạc Fairy Lights: 6 bước (có hình ảnh)
Âm nhạc Fairy Lights: 6 bước (có hình ảnh)

Video: Âm nhạc Fairy Lights: 6 bước (có hình ảnh)

Video: Âm nhạc Fairy Lights: 6 bước (có hình ảnh)
Video: FAIRY TAIL, NHÂN GIAN KINH HỒNG KHÁCH - NHẠC XU HƯỚNG TIKTOK CHÁY HƠN FREE FIRE 2024, Tháng mười một
Anonim
Image
Image

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

Máy đo khoảng cách Arduino
Máy đo khoảng cách Arduino
Không chỉ là một giờ
Không chỉ là một giờ
Không chỉ là một giờ
Không chỉ là một giờ
Nhiệt kế One Pixel
Nhiệt kế One Pixel
Nhiệt kế One Pixel
Nhiệt kế One Pixel

Giới thiệu: Tôi thích chế tạo những thứ từ tên lửa đến thiết bị điện tử. Thông tin thêm về IanCumming »

Chào mừng các bạn

Đã gần đến mùa lễ hội và một số cửa hàng đã bắt đầu trang trí lễ hội, tôi nghĩ rằng đã đến lúc thích hợp để xây dựng một số đèn cổ tích âm nhạc!

Bước 1: Các bộ phận được sử dụng

Các bộ phận được sử dụng
Các bộ phận được sử dụng

Tôi sẽ sử dụng những thứ sau:

  • 12 đèn LED
  • 12 Điện trở giới hạn dòng điện
  • 1 Mảng bóng bán dẫn Darlington ULN 2803
  • Một số dây nhảy
  • Loa piezo
  • A Breadboard và
  • một Arduino
  • Để làm chuỗi đèn thần tiên, tôi đã sử dụng 5 sợi dây từ cáp Ethernet

Bước 2: Mã

// BIẾN TOÀN CẦU int barTime = 1200; // 8/8 = 1000ms byte nrLEDS = 4; // 4 LED cơ sở, Bạn có thể thêm nhiều LED byte song song = {3, 4, 5, 6}; byte loa = 11; byte patternLength = 64; // mẫu Độ dài byte songLength = 51; const byte song = {// Dữ liệu Jingle Bells 29, 2, 29, 2, 29, 4, 29, 2, 29, 2, 29, 4, 29, 2, 32, 2, 25, 3, 27, 1, 29, 8, 30, 2, 30, 2, 30, 3, 30, 1, 30, 2, 29, 2, 29, 2, 29, 1, 29, 1, 29, 2, 27, 2, 27, 2, 29, 2, 27, 4, 32, 4, 29, 2, 29, 2, 29, 4, 29, 2, 29, 2, 29, 4, 29, 2, 32, 2, 25, 3, 27, 1, 29, 8, 30, 2, 30, 2, 30, 2, 30, 2, 30, 2, 29, 2, 29, 2, 29, 1, 29, 1, 32, 2, 32, 2, 30, 2, 27, 2, 25, 8}; // Cấu trúc là Số ghi chú sau đó // Ghi chú Độ dài trong mẫu const byte thứ 8 = {// Dữ liệu mẫu 0b0001, 0b0010, 0b0100, 0b1000, // Bits corrispond to Leds trong Array 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100, 0b001, 0b0010, 0b0110, 0b00101, 0b0110, 0b00101 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b0011, 0b0011, 0b0011, 0b0011, 0b0011, 0b0011, 0b0011, 0b0011 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Đầu tiên, tôi khai báo các biến của mình, những biến thú vị là Song và Pattern.

  • Bài hát lưu giữ giai điệu; trong trường hợp này là Jingle bells.
  • Mẫu lưu trữ vị trí bật và tắt trong các bit của giá trị trong mảng.

Chức năng tùy chỉnh

// CÁC CHỨC NĂNG int noteToHz (int note) {// Chuyển đổi một Note Nr. thành Tần số float freq = 440 * (pow (1.059463094359, note-21)); // -21 cung cấp cho bạn lưu ý 1 tại C3 (Tôi nghĩ) return int (freq); // Kết quả chính xác đến 1hz} void lightLEDs (byte PORT_X) {// Trạng thái của đèn LED điều khiển cho (int q = 0; q

Hai chức năng tôi có sẽ thực hiện như sau:

  • Tính tần số cho chức năng âm trong vòng lặp
  • bật hoặc tắt đèn LED tùy thuộc vào giá trị được truyền cho chức năng

Chức năng thiết lập

void setup () {// thiết lập các chân OUTPUT pinMode (loa, OUTPUT); for (int t = 0; t <nrLEDS; t ++) {pinMode (leds [t], OUTPUT); }}

Trong chức năng cài đặt, tôi đặt các chân cần thiết thành OUTPUT.

Chức năng vòng lặp

void loop () {// Vòng lặp âm nhạc for (int t = 0; t <songLength; t ++) {// Ghi chú, Độ dài và phát giai điệu int note = noteToHz (song [t * 2]); int length = ((song [(t * 2) +1] * barTime) / 8); âm điệu (người nói, nốt nhạc, độ dài - 50); // Đèn nhấp nháy! lightLEDs (mẫu [t% patternLength]); độ trễ (độ dài); } // Vòng lặp im lặng int randomSilence = random (1000, 5000); for (int t = 0; t

Tôi có 2 vòng lặp trong chức năng Vòng lặp chính. Một vòng lặp bài hát và một vòng lặp im lặng

Vòng lặp bài hát sẽ đọc dữ liệu từ mảng bài hát, chơi nốt nhạc bằng chức năng giai điệu

Vòng lặp bài hát sẽ,

  • Đọc dữ liệu từ mảng bài hát,
  • Phát nốt nhạc bằng chức năng âm báo sau đó
  • Làm sáng dãy đèn LED, đọc mẫu.

Trong vòng lặp Im lặng

chỉ có đèn LED sáng lên

Cắm Arduino vào và tải mã lên. (Sau đó rút phích cắm)

Bước 3: Khởi động mạch

Khởi động mạch
Khởi động mạch
Khởi động mạch
Khởi động mạch
Khởi động mạch
Khởi động mạch
Khởi động mạch
Khởi động mạch

Tôi sẽ bắt đầu với chuỗi đèn

  • Tôi đã sử dụng dây từ cáp Ethernet và hàn 3 đèn LED song song bốn lần, đảm bảo cách đều đèn LED trên khoảng 2 mét
  • Tôi hàn Anode của mỗi led vào một dây duy nhất.
  • Sau đó, Cathode của mỗi LED để 4 dây riêng biệt. Tất nhiên với một điện trở
  • Tôi lặp lại quy trình này 3 lần để có được một chuỗi 12 đèn LED và tôi đặt các chân tiêu đề vào cuối của 5 dây

Kết nối các thanh ray dương và nối đất với bảng mạch

Bước 4: ULN2803

ULN2803
ULN2803
ULN2803
ULN2803
ULN2803
ULN2803

Đặt chip ULN2308 lên breadboard

ULN2308 là một chip mảng bóng bán dẫn; từ bảng dữ liệu tôi có thể thấy

  • Chân 1 đó là đầu vào làm cho chân 18 "BẬT"
  • Pin 2 bật 17. Vân vân.
  • Chân 9 là nối đất
  • Kết nối Pin 9 của chip với thanh nối đất
  • Kết nối đường ray dương với một dải đầu cuối, một dải phía trên chân số 18. (Bạn sẽ thấy lý do tại sao sau một phút)
  • Kết nối chân 1 của chip với chân 3 của Arduino
  • 2 đến 4
  • 3 của chip chuyển thành 5 và
  • 4 đi đến chân 6 của Arduino
  • Đặt dây LED lên bảng mạch. Trường hợp dây anốt chung được kết nối với dải được kết nối với 5 vôn. Phần còn lại của các chân đèn thần tiên nên đi đến chân 18, 17, 16 và 15 của chip.

Bước 5: Thêm âm thanh

Thêm âm thanh
Thêm âm thanh
  • Kết nối Loa Piezo giữa 2 dải đầu cuối
  • Nối cực âm của phần tử Piezo với đất và
  • Đầu còn lại của loa vào chân 11

Bước 6: Kết luận

Phần kết luận
Phần kết luận
Phần kết luận
Phần kết luận

Tôi có một chuỗi ánh sáng ngẫu nhiên sẽ phát ra những tiếng chuông leng keng để nhắc nhở tôi rằng đó là mùa lễ hội.

Đề xuất: