Если пытаться считывать сигнал с аналогового датчика и выводить его на экран получается "дрожание" сигнала, т.е. сигнал не устойчиво меняется на +- 4.
Например, подключила к дисплею потенциометр, чтобы определить его значение.
Со стандартной программой: считал - вывел идет постоянное обновление дисплея и значения бегают.
Выравнивание показателя основано на замере предыдущего значения показателя и текущего, если расхождения сильного нет, то выводится на экран.
Исключает ненужные обновления экрана.
/*
Исключение дрожания цифр на дисплее
при считывании с аналогового датчика
*/
// Подключаем стандартную библиотеку LiquidCrystal
#include <LiquidCrystal.h>
// Инициализируем объект-экран, передаём использованные
// для подключения контакты на Arduino в порядке:
// RS, E, DB5, DB6, DB7, DB8
LiquidCrystal lcd(4, 5, 10, 11, 12, 13);
#define POT A5
int pot_num_old = 0;
int pot_num = 0;
void setup()
{
pinMode(POT, INPUT);
// устанавливаем размер (количество столбцов и строк) экрана
lcd.begin(16, 2);
}
void loop()
{
// опрашиваем потенциометр
pot_num = analogRead(POT);
// если дрожание значения не превышает 5х, то выводим значение
// потенциометра, в противном случае, очищаем экран и записываем
// новое значение
if (abs(pot_num - pot_num_old)<5) {
lcd.setCursor(0, 0);
lcd.print(pot_num_old);
} else {
lcd.clear();
pot_num_old = pot_num;
}
}
Комментариев нет:
Отправить комментарий