Arduino Darbe/Titreşim Algılama
Arduino Darbe/Titreşim Algılama. Bu eğitici, titreşimi algılamak için bir Piezo elemanının nasıl kullanılacağını, bu durumda kapı, masa veya diğer katı yüzeylerin nasıl çalıştığını gösterir.
Bir piezo , bir titreşim, ses dalgası veya mekanik zorlanma ile fiziksel olarak deforme olduğunda bir voltaj üreten elektronik bir cihazdır. Benzer şekilde, bir piezo üzerine bir voltaj koyduğunuzda, titreşir ve bir ses çıkarır. Piezolar hem tonları çalmak hem de tonları algılamak için kullanılabilir.
Çizim, analog-dijital dönüştürme veya ADC olarak adlandırılan bir işlemde 0 ila 5 volt arasındaki bir voltaj aralığını 0 ila 1023 arasında kodlayan analogRead()
komutunu kullanarak piezo çıkışını okur.
Sensör çıkışı belirli bir eşikten daha güçlü ise, kartınız “Knock!” Dizesini gönderir. Seri bağlantı noktası üzerinden bilgisayara.
Bu metni görmek için seri monitörü açın.
Arduino Darbe/Titreşim Algılama
Donanım
- Arduino veya Genuino
- Piezo elektrik diski
- 1 Megohm direnç
- katı yüzey
Devre
Piezoslar polarize edilir , yani voltajın içinden (ya da dışına) belirli bir yönde geçtiği anlamına gelir. Siyah kabloyu (alt voltajı) toprağa ve kırmızı kabloyu (yüksek voltaj) analog pim 0’a bağlayın. Ayrıca, piezo tarafından üretilen voltajı ve akımı sınırlamak için Piezo elemanına paralel bir 1-megohm direnç bağlayın ve Analog girişi korumak için.
Plastik bir muhafaza olmadan piezo elemanlar elde etmek mümkündür. Bunlar metalik bir disk gibi görünür ve giriş sensörleri olarak kullanımı daha kolaydır. PIezo sensörleri, algılama yüzeylerine sıkıca bastırıldığında, bantlandığında veya yapıştırıldığında en iyi sonucu verir.
Kod
Aşağıdaki kodda, gelen piezo verileri, kullanıcı tarafından ayarlanan bir eşik değeri ile karşılaştırılmaktadır. Sensörünüzün genel hassasiyetini artırmak için bu değeri yükseltmeyi veya azaltmayı deneyin.
/* Vuruş sensörü Bu taslak, çalma sesini algılamak için bir piezo elemanı okur. Bir analog pin okur ve sonucu ayarlanmış bir eşikle karşılaştırır. Sonuç eşikten daha büyükse, seriye "vur" yazıyor portu ve pim 13 üzerinde LED'i değiştirir. Devre: - 0'da analog bağlı piezo'nun pozitif bağlantısı - zemine bağlı piezo'nun negatif bağlantısı - 0'da analogdan toprağa bağlanan 1 megohm direnç oluşturuldu 25 Mar 2007 David Cuartielles tarafından <http://www.0j0.org> değiştirildi 30 Ağu 2011 Tom Igoe tarafından Bu örnek kod kamu malıdır. http://www.arduino.cc/en/Tutorial/Knock */ // bu sabitler değişmeyecek: const int ledPin = 13; // Dijital pime bağlı LED 13 const int knockSensor = A0; // piezo analog pin'e bağlanır 0 const int threshold = 100; // algılanan sesin bir vuruntu olup olmadığına karar vermek için // eşik değeri // bu değişkenler değişecek: int sensorReading = 0; // sensör pininden okunan değeri saklamak için değişken int ledState = LOW; // LED ışığı, ışığı değiştirmek için son LED durumunu saklamak için kullanılır void setup() { pinMode(ledPin, OUTPUT); // ledPin'i OUTPUT olarak bildirir Serial.begin(9600); // seri bağlantı noktasını kullan } void loop() { // sensörü oku ve değişken sensörde sakla: sensorReading = analogRead(knockSensor); // sensör okuması eşikten daha büyükse: if (sensorReading >= threshold) { // ledPin'in durumunu değiştir: ledState = !ledState; // LED piminin kendisini güncelleyin: digitalWrite(ledPin, ledState); // "Knock!" dizesini gönder. bilgisayara dön, ardından yeni satır Serial.println("Knock!"); } delay(100); // seri port tamponunu aşırı yüklemekten kaçınmak için gecikme }
Kaynak:arduino.cc