//http://compcar.ru
#define PIN 5 //номер аналогового порта
#define LIMIT 6 //предел погрешности сопротивления
byte bytes[2];
int res_dt1;
byte idx=0;
unsigned long math_time,old_time,real_time;
void setup()
{
Serial.begin(115200); // настроить скорость com порта
}
void loop()
{
old_time = real_time;
math_time = 0;
res_dt1 = analogRead(PIN); // прочитать данные АЦП
while(math_time < 500 && analogRead(PIN)>res_dt1-LIMIT && analogRead(PIN) < res_dt1+LIMIT && res_dt1 != 1023)
{
real_time = millis(); //получить реальное время
math_time = real_time - old_time; //считаем длительность паузы
}
if(math_time > 30 && res_dt1 != 1023) //если нет дребезга
{
if (idx==1 && math_time < 500){ res_dt1 = 1023; idx=0; }
else if(math_time > 499){ res_dt1 |= 1024; idx=1; }
bytes[0] = res_dt1 & 255; // преобразовать в 2-байта
bytes[1] = (res_dt1 & 1792) >> 8;
Serial.write( bytes,2); // отправить прочитаное значение компьютеру
} else idx=0;
}