O Tech-Portugal apresenta este artigo para facilitar a vida as leitores que são fãs de Arduino ou Genuinos para instrumentação. Este artigo brinda os interessados a ter o cuidado quando estão a fazer medições físicas, com as placas da Arduino/Genuino. Este cuidado trata-se da calibração de sensores com a placa em questão. E para isso vamos apresentar um exemplo standard. Toda a explicação será apresentada ao longo do código, recorrendo a linhas de comentários.
Antes de apresentar o código, fazemos uma chamada de atenção para a resolução das placas Arduino/Genuino e dos sensores utilizados. Este parâmetro, é um parâmetro crucial para fazer uma óptima aquisição de dados, tipicamente chamados de número de bits.
Um exemplo de aquisição de dados é mostrado abaixo:
Nesta ilustração foi usado um LED ligado no pino 9 (PWM), com uma resistência de 220 ohm em série e uma foto resistência (resistência sensível à intensidade luminosa), ligada em série com uma resistência de 10 K, estando esta ligado à terra-ground.
Esta foto resistência é o sensor, que serve para exemplificar o cuidado de método de calibração.
/* Calibração de sensores */ // Inicialização das variáveis do tipo inteiro dedicadas à leitura do sensor int sensorValue = 0; // Valor do sensor lido actual int sensorMin = 1023; // Valor mínimo lido do sensor int sensorMax = 0; // Valor máximo lido do sensor int sensorPin = 0 ; int ledPin = 13; void setup() { // Ligar o LED indicador para início do período para a executar a calibração pinMode(13, OUTPUT); digitalWrite(13, HIGH); // Calibrar durante os primeiros cinco segundos: 5000 milisegundos while (millis() < 5000) { sensorValue = analogRead(sensorPin); // Grava o valor máximo do valor lido do sensor if (sensorValue > sensorMax) { sensorMax = sensorValue; } // Grava o valor mínimo lido do sensor if (sensorValue < sensorMin) { sensorMin = sensorValue; } } // Desligar o LED indicador da calibração digitalWrite(13, LOW); } void loop() { // Ler os valores vindos do sensor sensorValue = analogRead(sensorPin); // Aplicar o método de calibração aos valores provenientes do sensor sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255); // Caso os valores do sensor estarem fora da gama de valores definida durante a calibração sensorValue = constrain(sensorValue, 0, 255); // Atenuar a intensidade do LED usando os valores de calibrados analogWrite(ledPin, sensorValue); }