- Vật liệu cần thiết
- Hoạt động của cảm biến âm thanh
- Sơ đồ mạch cảm biến âm thanh
- Sơ đồ mạch nước của đài phun nước âm nhạc
- Lập trình Arduino Nano cho Đài phun nước khiêu vũ
Có một số đài phun nước phun nước vô điều kiện với một số hiệu ứng ánh sáng thú vị. Vì vậy, tôi đã đi lang thang về việc thiết kế một đài phun nước sáng tạo có thể đáp ứng với âm nhạc bên ngoài và phun nước tùy theo nhịp điệu âm nhạc. Nghe có vẻ thú vị phải không?
Ý tưởng cơ bản của Đài phun nước Arduino này là lấy đầu vào từ bất kỳ nguồn âm thanh bên ngoài nào như thiết bị di động, iPod, PC, v.v., lấy mẫu âm thanh và chia nhỏ thành các dải điện áp khác nhau, sau đó sử dụng đầu ra để bật các Rơle khác nhau. Đầu tiên, chúng tôi sử dụng mô-đun cảm biến âm thanh dựa trên mic ngưng tụ để thực hiện trên nguồn âm thanh để chia âm thanh thành các dải điện áp khác nhau. Sau đó, điện áp sẽ được đưa đến op-amp để so sánh mức âm thanh với một giới hạn cụ thể. Dải điện áp cao hơn sẽ tương ứng với một công tắc chuyển tiếp BẬT, bao gồm một đài phun nước âm nhạc hoạt động theo nhịp và nhịp điệu của bài hát. Vì vậy, ở đây chúng tôi đang xây dựng Đài phun nước âm nhạc này bằng cách sử dụng Arduino và cảm biến âm thanh.
Vật liệu cần thiết
- Arduino Nano
- Mô-đun cảm biến âm thanh
- Mô-đun chuyển tiếp 12V
- Bơm DC
- Đèn LED
- Kết nối dây
- Bảng Vero hoặc Breadboard
Hoạt động của cảm biến âm thanh
Mô-đun cảm biến âm thanh là một bảng điện tử đơn giản dựa trên micrô điện tử được sử dụng để cảm nhận âm thanh bên ngoài từ môi trường. Nó dựa trên bộ khuếch đại công suất LM393 và một micrô electret, nó có thể được sử dụng để phát hiện xem có bất kỳ âm thanh nào vượt quá giới hạn ngưỡng đã đặt hay không. Đầu ra mô-đun là tín hiệu kỹ thuật số cho biết âm thanh lớn hơn hoặc nhỏ hơn ngưỡng.
Chiết áp có thể được sử dụng để điều chỉnh độ nhạy của mô-đun cảm biến. Đầu ra của mô-đun là CAO / THẤP khi nguồn âm thanh Thấp hơn / cao hơn ngưỡng được đặt bởi chiết áp. Mô-đun cảm biến âm thanh tương tự cũng có thể được sử dụng để đo mức âm thanh tính bằng decibel.
Sơ đồ mạch cảm biến âm thanh
Như chúng ta biết rằng trong mô-đun cảm biến âm thanh, thiết bị đầu vào cơ bản là micrô chuyển đổi tín hiệu âm thanh thành tín hiệu điện. Nhưng do đầu ra tín hiệu điện của cảm biến âm thanh có cường độ rất nhỏ nên rất khó phân tích, vì vậy chúng tôi đã sử dụng mạch khuếch đại bóng bán dẫn NPN sẽ khuếch đại nó và đưa tín hiệu đầu ra đến đầu vào không đảo của Op- amp. Ở đây LM393 OPAMP được sử dụng như một bộ so sánh so sánh tín hiệu điện từ micrô và tín hiệu tham chiếu đến từ mạch phân áp. Nếu tín hiệu đầu vào lớn hơn tín hiệu tham chiếu thì đầu ra của OPAMP sẽ ở mức cao và ngược lại.
Bạn có thể theo dõi các phần mạch Op-amp để tìm hiểu thêm về hoạt động của nó.
Sơ đồ mạch nước của đài phun nước âm nhạc
Như trong sơ đồ mạch nhạc nước ở trên, cảm biến âm thanh được cấp nguồn 3.3V của Arduino Nano và chân đầu ra của mô-đun cảm biến âm thanh được kết nối với chân đầu vào tương tự (A6) của Nano. Bạn có thể sử dụng bất kỳ chân analog nào, nhưng hãy đảm bảo thay đổi chân đó trong chương trình. Mô-đun rơle và máy bơm DC được cấp nguồn bởi nguồn điện 12VDC bên ngoài như trong hình. Tín hiệu đầu vào của mô-đun rơle được kết nối với chân đầu ra kỹ thuật số D10 của Nano. Đối với hiệu ứng ánh sáng, tôi đã chọn hai màu LED khác nhau và kết nối chúng với hai chân đầu ra kỹ thuật số (D12, D11) của Nano.
Ở đây Máy bơm được kết nối theo cách mà khi một xung CAO được cấp cho đầu vào của mô-đun Rơle, tiếp điểm COM của rơle được kết nối với tiếp điểm NO và dòng điện nhận được một đường dẫn mạch kín để chảy qua máy bơm. kích hoạt dòng nước. Nếu không, máy bơm sẽ vẫn TẮT. Xung CAO / THẤP được tạo ra từ Arduino Nano tùy thuộc vào âm thanh đầu vào.
Sau khi hàn mạch hoàn chỉnh trên perfboard, nó sẽ giống như dưới đây:
Ở đây chúng tôi sử dụng một hộp nhựa làm thùng chứa đài phun nước và máy bơm mini 5v để hoạt động như một đài phun nước, chúng tôi đã sử dụng máy bơm này trước đây trong robot chữa cháy:
Lập trình Arduino Nano cho Đài phun nước khiêu vũ
Chương trình hoàn chỉnh của dự án đài phun nước Arduino này được đưa ra ở cuối trang. Nhưng ở đây tôi chỉ giải thích điều đó theo từng phần để hiểu rõ hơn:
Phần đầu tiên của chương trình là khai báo các biến cần thiết để gán số pin mà chúng ta sẽ sử dụng trong các khối chương trình tiếp theo. Sau đó, xác định một REF không đổi với một giá trị là giá trị tham chiếu của mô-đun cảm biến âm thanh. Giá trị được gán 700 là giá trị tương đương byte của tín hiệu điện đầu ra của cảm biến âm thanh.
int cảm biến = A6; int redled = 12; int greenled = 11; int máy bơm = 10; #define REF 700
Trong chức năng thiết lập void, chúng tôi đã sử dụng chức năng pinMode để gán hướng dữ liệu INPUT / OUTPUT của các chân. Ở đây cảm biến được lấy làm INPUT và tất cả các thiết bị khác được sử dụng làm OUTPUT.
void setup () { pinMode (cảm biến, INPUT); pinMode (redled, OUTPUT); pinMode (xanh lục, OUTPUT); pinMode (bơm, OUTPUT); }
Bên trong vòng lặp vô hạn, hàm analogRead được gọi là hàm đọc ra giá trị analog đầu vào từ chân cảm biến và lưu trữ nó trong một sensor_value có thể thay đổi.
int sensor_value = analogRead (cảm biến);
Trong phần cuối cùng, một vòng lặp if-else được sử dụng để so sánh tín hiệu tương tự đầu vào với giá trị Tham chiếu. Nếu nó lớn hơn tham chiếu, thì tất cả các chân đầu ra được đưa ra đầu ra CAO để tất cả các đèn LED và Máy bơm được kích hoạt, nếu không mọi thứ vẫn TẮT. Ở đây chúng tôi cũng đã đưa ra độ trễ 70 Mili giây để phân biệt thời gian BẬT / TẮT của Rơle.
if (sensor_value> REF) { digitalWrite (xanh lục, CAO); digitalWrite (redled, HIGH); digitalWrite (máy bơm, CAO); chậm trễ (70); } else { digitalWrite (xanh lục, THẤP); digitalWrite (redled, LOW); digitalWrite (máy bơm, THẤP); chậm trễ (70); }
Đây là cách hoạt động của Đài phun nước được điều khiển bằng Arduino này, mã hoàn chỉnh với video hoạt động được đưa ra bên dưới.