Используя контроллер Arduino, микрофон и твёрдотельное реле можно собрать устройство, которое услышав громкий звук работы циркулярной пилы — автоматически включит систему фильтрации воздуха (для удаления древестной пыли).
Система AudioBot работает очень просто: используя микрофон (в виде модуля детектирования звука), она реагирует на громкий шум (который указывает на включение пилы) и через твёрдотельное реле (Single Phase DC 3-32V to AC 24-380VAC SSR-40DA 40A Solid State Relay Module), включит систему фильтрации воздуха (на два часа), чтобы очистить воздух от пыли.
Программа (скетч) для Arduino
#include <Wire.h> #include <LiquidCrystal_PCF8574.h> LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2 line display int relayPin = 2; //fan relay control int sensorPin = 3; //sound sensor int onPin = 4; //on button int offPin = 5; //off button int ledPin = 13; //onboard led boolean val = 0; int show; int hours = 0; // start hours int minutes = 0; //start min int seconds = 30; //start seconds void setup() { Serial.begin (9600); pinMode(relayPin, OUTPUT); pinMode(sensorPin, INPUT); pinMode(onPin, INPUT); pinMode(offPin, INPUT); pinMode(ledPin, OUTPUT); digitalWrite(relayPin, LOW); //relay off digitalWrite(sensorPin, LOW); //microphone digitalWrite(onPin, HIGH); //on button digitalWrite(offPin, HIGH); //off button int error; Wire.begin(); Wire.beginTransmission(0x27); //Your LCD Address error = Wire.endTransmission(); if (error == 0) { Serial.println(": LCD found."); } else { Serial.println(": LCD not found."); } lcd.begin(16, 2); // initialize the lcd show = 0; } // setup() void loop() { //microphone sound detection val = digitalRead(sensorPin); if (val == HIGH) //sound detected { hours = 2; minutes = 0; seconds = 0; } else //silence { } //button on val = digitalRead(onPin); if (val == LOW) //button pushed { hours += 1; } else //no push { } //button off val = digitalRead(offPin); if (val == HIGH) //button pushed { hours = 0; //stop time minutes = 0; //stop time seconds = 0; //stop time } else //no push { } //time countdown if (seconds > 0) { seconds -= 1; } else { if (minutes > 0) { seconds = 59; minutes -= 1; } else { if (hours > 0) { seconds = 59; minutes = 59; hours -= 1; } } } //fan power if (hours + minutes + seconds > 0) { digitalWrite(relayPin, HIGH); //turn the fan on lcd.setBacklight(200); lcd.clear(); lcd.setCursor(0, 0); if ( (seconds % 2) == 0) { lcd.print("FANBOY ACTIVE *"); digitalWrite(ledPin, HIGH); //led on } else { lcd.print("FANBOY ACTIVE * "); digitalWrite(ledPin, LOW); //led off } lcd.setCursor(0, 1); lcd.print(" H:"); lcd.print(hours); lcd.print(" M:"); lcd.print(minutes); lcd.print(" S:"); lcd.print(seconds); } else { digitalWrite(relayPin, LOW); //turn the fan off lcd.clear(); lcd.setBacklight(0); } delay(1000); //Serial.print("Hours: "); //Serial.print(hours); //Serial.print(" Minutes: "); //Serial.print(minutes); //Serial.print(" Seconds: "); //Serial.print(seconds); //Serial.print(" OnPin: "); //Serial.print(val = digitalRead(onPin)); //Serial.print(" OffPin: "); //Serial.println(val = digitalRead(offPin)); } // loop()
Ссылки
The AudioBot system
По теме
Обжарка кофейных зёрен при помощи Arduino
Автоматизация стола IKEA SKARSTA при помощи Arduino
Автоматизация токарного станка при помощи Arduino
Система уведомления о готовности кофе на Arduino
Станок для нарезки кабеля на базе Arduino
Arduino
Ардуино что это и зачем?
Arduino, термины, начало работы
КМБ для начинающих ардуинщиков
Состав стартера (точка входа для начинающих ардуинщиков)