Tutorial: como utilizar o elemento piezo com Arduino

Adquira estes componentes na Loja do Lab de Garagem

Neste tutorial, vamos falar sobre o elemento piezo e como utilizá-lo com Arduino. Elementos piezo podem ser utilizados quando você precisa detectar a vibração ou a uma batida. Como por exemplo, torneira ou sensores de detonação. Eles também podem ser utilizados para transdutor de áudio, como uma campainha.


Para utilizar com Arduino é necessário um resistor de 1Mega Ohm em paralelo com o elemento piezo e ligá-lo na porta analógica do Arduino. As ligações estão demonstradas abaixo:

Feito as ligações, vamos a programação exemplo tirada da página: http://www.arduino.cc/en/Tutorial/Knock

/* 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:
* + connection of the piezo attached to analog in 0
* - connection of the piezo attached to ground
* 1-megohm resistor attached from analog in 0 to ground

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

created 25 Mar 2007
by David Cuartielles a href="http://www.0j0.org%3E">http://www.0j0.org>;
modified 30 Aug 2011
by Tom Igoe

This example code is in the public domain.

*/

// 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
}

Agora, selecione a sua versão da sua placa Arduino (UNO, Duemilanove, etc), selecione a porta em que o Arduino está conectado (COMx, ttyUSBx, ttyACMx, etc) e faça UPLOAD.

Na programação acima, ao dar uma batida no elemento piezo, o arduino faz a leitura pela porta analógica A0 e se a leitura for maior que o threshold (>100), ele mostra no Serial Monitor a palavra "Knock!".

E é isso!! Muito simples!! Se você tiver dúvidas sobre o assunto, poste aqui mesmo no blog. Se tiver sugestões para tutoriais, você pode postar aqui! Você pode ver outros tutoriais feitos clicando aqui e se quiser ver projetos abertos disponibilizados, clique aqui! Até a próxima!

Referências:

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

http://www.sparkfun.com/products/10293

Exibições: 33363

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Francisco Marques em 3 junho 2015 às 7:54

ola, mas eu queria que o numero de vibraçoes aparece se num lcd, preciso de fazer alguma conta especial? ou o proprio piezo ja me da os valores da vibraçoes em m/s^2?

Comentário de Luís Felipe Cardozo em 27 maio 2015 às 11:10

olá, estou com um tcc, no qual uma parte dele é detectar uma pessoa sentada num banco de carro. Eu e meu grupo estamos pensando em usar um sensores piezoelétricos no assento do banco. Gostaria de que alguém me desse uma ideia de como colocar o piezoelétrico no banco e se esse sensor é o mais recomendado pra situação. Desde já agradeço!

Comentário de gilvan felix da silva filho em 13 junho 2014 às 13:35

alguem de vocês podem me ajudar com um circito com capsula piezoeletrica, eu quero que ele detecte uma vibração bem pequena de uma linha de tecido correndo em "alta velocidade" por dentro de um "tubinho" que ficará encostado na capsula, a capsula por sua vez deve detectar esta pequena vibração e o positivo dela eu quero ligar na base de um transistor para manter tipo um rele acionado, eu já cheguei perto de conseguir mas nã consegui uma sensibilidade suficiente na capsula, eu preciso que ela detecte uma pressão ou vibração bem pequena do "tubinho", se alguem puder me ajudar eu ficaria eternamente grato, porque já tentei de todo jeito! um abraço, companheiros, fiquem com DEUS.

Comentário de Jefferson Decom em 28 junho 2013 às 2:35

Bom Dia  Gostaria de achar umaloja no Brasil para comprar este componente, pois não estou achando.

Comentário de Leonardo Barichello em 3 outubro 2012 às 14:58

Fiz a montagem aqui e precisei do resistor de 1 mega ohm mesmo, senão detecta sempre 0.

O problema é que a placa pecisa ter uma certa mobilidade para que detecte o impacto. Se ficar encostada em uma superfície, por exemplo, o funcionamento fica ruim.

Comentário de Luciano González em 18 setembro 2012 às 14:11

Precisa mesmo de um resistor de 1 MEGAOhm?

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço