Por Filipe Caetano | MagicKey para o PPLWARE Depois do nosso primeiro artigo sobre Arduino (ver aqui), hoje vamos desenvolver um pequeno programa que avisa se a temperatura está abaixo dos 0 graus Célsius. Para quem não sabe, o Arduino é uma plataforma extremamente útil para quem quer começar a dar os primeiros passos no mundo da electrónica, mas que ainda não tem grandes conhecimentos nesta área.
Esta ferramenta disponibiliza já diversas placas tendo todas elas como base microcontroladores da Atmel. É ainda disponibilizado um muito útil e intuitivo IDE para que se possam fazer e carregar programas de forma simples e rápida.
O IDE disponibiliza desde logo exemplos que podem ser muito úteis nos primeiros contactos com está ferramenta.
Partindo de um programa exemplo fornecidos no IDE 21 (ver parte de donwload no final do artigo), construiu-se um pequeno programa que avisa que a temperatura está abaixo dos 0 graus Célsius, e que assim poderá haver gelo na estrada.
Após abrir o exemplo apresentado para entradas analógicas (AnalogInput), basta apenas tratar o valor recebido da entrada analógica.
Código do exemplo: | Código adaptado: |
int sensorPin = A0; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LED
int sensorValue = 0; // variable to store the value coming from the sensor void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); } void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); // turn the ledPin on digitalWrite(ledPin, HIGH); // stop the program for <sensorValue> milliseconds: delay(sensorValue); // turn the ledPin off: digitalWrite(ledPin, LOW); // stop the program for for <sensorValue> milliseconds: delay(sensorValue); |
int sensorPin = A0; // select the input sensorint ledPin = 13; // select the pin for the LED or buzer
int sensorValue = 0; // variable to store the value coming from the sensor void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); } void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); if(sensorValue<75) { // turn the ledPin on digitalWrite(ledPin, HIGH); } else if(sensorValue>77) { // turn the ledPin off: digitalWrite(ledPin, LOW); } // stop the program 1000 milliseconds: delay(1000); } |
Podemos então verificar que no código adaptado foi apenas necessário verificar se o valor obtido da entrada analógica é inferior a 75, se sim é porque a temperatura está abaixo de 0 graus logo liga um led para avisar, se pelo contrário o valor obtido for superior a 77 a temperatura já não representa perigo, desliga o led.
O valor 75 surge da calibragem do sensor, ou seja, submeteu-se a montagem a zero graus Célsius e o valor obtido do sensor era de 75.
Utilizando uma placa Arduino Duemilanove (ou Arduino Uno) desenvolveu-se o cenário apresentado na imagem seguinte.
Podemos ver a ligação de um termistor (T) com um dos seus terminais ligados aos 5volts enquanto o outro terminal liga directamente a porta analógica 0.
Se apenas ligarmos o termistor(10KΩ) à porta analógica, este fornece uma tensão constante muito elevada, o que faz com que o valor recebido da porta analógica 0 do Arduino é sempre 1023 (valor máximo da ADC deste microcontrolador). É então necessário ligar uma resistência com um terminal à porta analógica 0 e o outro ao GND, fazendo assim com que haja uma diminuição da tensão de entrada na porta analógica.
A resistência (R) utilizada foi de 1KΩ, no entanto outra poderá ser usada.
O uso de uma resistência diferente faz com que o valor de referência para os 0 graus se altere, desta forma deixara de ser de 75 e será necessário refazer a calibragem.
A indicação de perigo é dada pelo led (L), ou seja quando este está ligado é porque a temperatura se encontra abaixo dos zero graus Célsius havendo assim a possibilidade de formação de gelo na estrada.
Em nome do pplware, quero agradecer a disponibilidade do Filipe Caetano por este excelente artigo. Aproveito ainda para dar mais uma vez os parabéns à equipa do projecto MagicKey, pelo excelente trabalho realizado.
Artigos relacionados