Зачастую при работе с датчиками их необходимо сначала откалибровать. В данном проекте мы рассмотрим, как откалибровать датчик уровня воды.

Для начала подключим датчик к Arduino. Подключите контакт VCC датчика воды к контакту 5V на плате Arduino. Подключите контакт GND датчика воды к контакту GND на плате Arduino. Подключите сигнальный контакт датчика воды к одному из аналоговых входных контактов на плате Arduino (например, A0). Используйте перемычку для каждого соединения и макетную плату, чтобы упростить подключение.

Далее загрузите следующий код в Arduino.
const int analogInPin = A0;
const int analogOutPin = 9;
int sensorValue = 0;
int outputValue = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, 1023, 0, 255);
analogWrite(analogOutPin, outputValue);
Serial.print("sensor = ");
Serial.print(sensorValue);
Serial.print("\t output = ");
Serial.println(outputValue);
delay(2);
}
После успешной загрузки кода откройте последовательный монитор. Установите скорость передачи данных на 9600 (такую же, как в коде). Погрузите датчик воды в емкость, наполненную водой, убедившись, что датчик полностью погружен в воду. Наблюдайте за значениями, выводимыми в монитор. Запишите аналоговые показания. Вы увидите, что аналоговые значения начинаются с 0 и заканчиваются примерно 700.



Теперь, когда вы собрали данные калибровки, пришло время откалибровать датчик в коде. В нашем случае код после калибровки будет выглядеть следующим образом.
int sensorval = 0;
int sensorpin = A0;
void setup() {
Serial.begin(9600);
pinMode(sensorpin, INPUT);
}
void loop() {
sensorval = analogRead(sensorpin);
if (sensorval<=200)
{
Serial.println("Water Level: Empty");
}
else if (sensorval>=200 && sensorval<=450)
{
Serial.println("Water Level: Low");
}
else if (sensorval>=450 && sensorval<=620)
{
Serial.println("Water Level: Medium");
}
else if (sensorval>620)
{
Serial.println("Water Level: High");
}
delay(1000);
}
Загрузите измененный код в Arduino. Откройте последовательный монитор и наблюдайте за показаниями. Уровень воды теперь должен отображаться точно.
© digitrode.ru