fbpixel
Etiquetas: ,
4
(1)

É possível ativar um sistema, tal como um alarme, ao se detectar a presença de uma pessoa com um sensor de movimento PIR. Na automação doméstica, é comum ativar dispositivos quando alguém entra num cômodo. Isso é possível graças a sensores de movimento, como o sensor de infravermelho passivo ou PIR (Passive Infared Sensor). Veremos neste tutorial como gerir o sensor PIR com um microcontrolador Arduino.

Material

  • Computador
  • Arduino UNO
  • Cabo USB A Macho/B Macho
  • Sensor de movimento PIR

Princípio de funcionamento

Qualquer objeto com uma temperatura acima de zero absoluto emite radiação infravermelha, como se pode ver nas imagens de câmeras térmicas. O sensor PIR é equipado com duas células sensíveis ao infravermelho que detectam os raios infravermelhos refletidos ou emitidos por um objeto.
Quando não há movimento, o nível de infravermelho recebido é o mesmo para ambas as células. Quando um objeto passa, a emissão dos raios é modificada em uma célula e depois na outra, permitindo que o movimento seja detectado.
A cobertura branca que normalmente cobre e protege o sensor é uma lente Fresnel com várias facetas, que permite a concentração da radiação infravermelha e, em alguns casos, a filtragem nas células.

Esquema

O módulo PIR pode ser alimentado diretamente pelo microcontrolador e, como ele devolve um estado, a saída do sensor é ligada a uma entrada digital.

Código

O sensor PIR retorna um estado alto (HIGH) quando detecta um movimento e um estado baixo (LOW) quando nada é detectado. Desse modo, ele será gerido como entrada digital, com a função digitalRead() do Arduino.

//Parameters
const int pirPin  = 2;

//Variables
bool pirStatus  = false;

void setup() {
  //Init Serial USB
  Serial.begin(9600);
  Serial.println(F("Initialize System"));
  //Init digital input
  pinMode(pirPin, INPUT);
}

void loop() {
  readPIR();
}

void readPIR( ) { /* function readPIR */
  ////Test routine for PIR
  pirStatus = digitalRead(pirPin);
  Serial.print(F("Sensor status")); Serial.println(pirStatus);
  if (pirStatus) {
    Serial.print(F("----> Detection"));
    delay(500);
  }
  delay(100);
}

Aplicações

  • Acender uma luz quando movimentos são detectados
  • Ativar um alarme quando uma pessoa entra

Fontes

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

How useful was this post?

Click on a star to rate it!

Average rating 4 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?