Knock

Bu eğitici, titreşimi, bu durumda bir kapı, masa veya diğer katı yüzeyleri vurmak için bir Piezo elemanının nasıl kullanılacağını gösterir.

Piezo , bir titreşim, ses dalgası veya mekanik zorlanma ile fiziksel olarak deforme olduğunda voltaj üreten elektronik bir cihazdır. Benzer şekilde, bir piezoya bir voltaj koyduğunuzda titreşir ve bir ton oluşturur. Piezos hem tonları çalmak hem de tonları tespit etmek için kullanılabilir.

Çizim, analogdan dijitale dönüştürme veya ADC olarak adlandırılan bir işlemde 0 ila 5 volttan 0 ila 1023 arasındaki bir voltaj aralığını 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 port üzerinden bilgisayara bağlayın.

Bu metni görmek için seri monitörü açın.

Gerekli Donanım

  • Arduino veya Genuino Kurulu
  • Piezo elektrikli disk
  • 1 Megohm direnç
  • katı yüzey

Devre

Piezos polarize edilir , yani voltaj bunlardan (veya onlardan) belirli bir yönde geçer. Siyah kabloyu (düşük voltaj) toprağa ve kırmızı kabloyu (yüksek voltaj) analog pim 0'a bağlayın. Ek olarak, 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ını 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.

büyütmek için resme tıklayın

Şematik

büyütmek için resme tıklayın

1 Megohm direnç ile analog pime 0 takılı bir Piezo

Kod

Aşağıdaki kodda, gelen piezo verileri kullanıcı tarafından ayarlanan bir eşik değeri ile karşılaştırılır. Sensörünüzün genel hassasiyetini artırmak için bu değeri yükseltmeyi veya düşürmeyi deneyin.


/*
  Knock Sensor

  This sketch reads a piezo element to detect a knocking sound.
  It reads an analog pin and compares the result to a set threshold.
  If the result is greater than the threshold, it writes "knock" to the serial
  port, and toggles the LED on pin 13.

  The circuit:
	- positive connection of the piezo attached to analog in 0
	- negative connection of the piezo attached to ground
	- 1 megohm resistor attached from analog in 0 to ground

  created 25 Mar 2007
  by David Cuartielles 
  modified 30 Aug 2011
  by Tom Igoe

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/Knock
*/


// these constants won't change:
const int ledPin = 13;      // LED connected to digital pin 13
const int knockSensor = A0; // the piezo is connected to analog pin 0
const int threshold = 100;  // threshold value to decide when the detected sound is a knock or not


// these variables will change:
int sensorReading = 0;      // variable to store the value read from the sensor pin
int ledState = LOW;         // variable used to store the last LED status, to toggle the light

void setup() {
  pinMode(ledPin, OUTPUT); // declare the ledPin as as OUTPUT
  Serial.begin(9600);       // use the serial port
}

void loop() {
  // read the sensor and store it in the variable sensorReading:
  sensorReading = analogRead(knockSensor);

  // if the sensor reading is greater than the threshold:
  if (sensorReading >= threshold) {
    // toggle the status of the ledPin:
    ledState = !ledState;
    // update the LED pin itself:
    digitalWrite(ledPin, ledState);
    // send the string "Knock!" back to the computer, followed by newline
    Serial.println("Knock!");
  }
  delay(100);  // delay to avoid overloading the serial port buffer
}

See Also