Bật tắt đèn bằng tiếng vỗ tay sử dụng Arduino

19 Tháng 02 2020 | Đăng bởi: Cao Thanh Hùng

 

Tiếp tục chủ đề tự học Arduino dành cho người mới bắt đầu, trong nội dung bài viết hôm nay mình sẽ hướng dẫn cho các bạn cách làm một dự án Bật tắt đèn bằng tiếng vỗ tay sử dụng cảm biến âm thanh một dự án thật thú vị cho những người đam mê ngành điện tử.

Để hiểu hơn về cấu tạo và cách hoạt động của tất cả cảm biến có trong dự án .Các bạn có thể tìm đọc bài viết về Arduino miễn phí dành cho người mới nhập môn.

Cảm biến âm thanh

Cảm biến âm thanh giúp nhận biết và phát hiện cường độ âm thanh của môi trường xung quanh. Thích hợp để làm các ứng dụng cơ bản về nhận biết, giám sát các tiếng động của môi trường xung quanh, và nhiều ứng dụng thú vị khác. Độ nhạy có thể được điều chỉnh bằng chiết áp trên module để phù hợp với từng nhu cầu ứng dụng.

Nó sử dụng một microphone, mạch khuếch đại tín hiệu, máy dò biên độ và bộ đệm. Khi phát hiện âm thanh nó sẽ qua mạch khuếch đại để khuếch đại tín hiệu rồi gửi tín hiệu digital qua chân “OUT”.

cam-bien-am-thanh-arduino

Cảm biến âm thanh arduino

Thông số kỹ thuật

  • Điện áp hoạt động: 3.3V - 5V
  • Xuất ra kiểu tín hiệu: digital (0 hoặc 1)
  • Kích thước: 3.4cm * 1.6cm

 

Sơ đồ đấu nối

Sơ đồ đấu nối mạch

 

Các linh kiện cần thiết cho dự án

Tên linh kiện Số lượng
Arduino Nano 1
Relay 1
Bóng đèn 1
Cảm biến âm thanh 1

Code cảm biến âm thanh Arduino

int sound_sensor = 7;
int relay = 4;

int clap = 0;
long detection_range_start = 0;
long detection_range = 0;
boolean status_lights = false;
 
void setup() {
  pinMode(sound_sensor, INPUT);
  pinMode(relay, OUTPUT);
}
 
void loop() {
  int status_sensor = digitalRead(sound_sensor);
  if (status_sensor == 0)
  {
    if (clap == 0)
    {
      detection_range_start = detection_range = millis();
      clap++;
    }
    else if (clap > 0 && millis()-detection_range >= 50)
    {
      detection_range = millis();
      clap++;
    }
  }
  if (millis()-detection_range_start >= 400)
  {
    if (clap == 2)
    {
      if (!status_lights)
        {
          status_lights = true;
          digitalWrite(relay, HIGH);
        }
        else if (status_lights)
        {
          status_lights = false;
          digitalWrite(relay, LOW);
        }
    }
    clap = 0;
  }
}

Bài viết liên quan

 

 

 

Viết bình luận: