Присвоение перменной значения с датчика
- Войдите на сайт для отправки комментариев
Чт, 23/05/2019 - 20:00
Доброго времени суток.
Недавно обращался с таким вопросом. Думал, что понял, но оказывается, что ничего не понял.
Мне надо присвоить одной переменной (t) лишь первое значение, которые выводит датчик, то есть у меня датчик температуры, показания идут потоком и мне надо взять только самое первое
#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 4
int a, t, b;
void setup(){
Serial.begin(9600);
Serial.println("DHT TEST PROGRAM ");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT11LIB_VERSION);
Serial.println();
Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
pinMode (2, OUTPUT);
}
void loop(){
int chk;
Serial.print("DHT11, \t");
chk = DHT.read(DHT11_PIN); // READ DATA
switch (chk){
case DHTLIB_OK:
Serial.print("OK,\t");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.print("Checksum error,\t");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.print("Time out error,\t");
break;
default:
Serial.print("Unknown error,\t");
break;
}
Serial.print(DHT.humidity,1);
Serial.print(",\t");
a=DHT.temperature;
Serial.println(a,1);
delay(1000);
b=0;
if (a!=b) {
t=a;
b=a;
}
Serial.println(t);
}
Код до присвоения переменной "а" значение температуры вроде бы правильный, в любом случае, он функционирует.
Но переменная t присваивает не только первое значение, ее значения, как бы идут тоже потоком.
(то значение, что в красном квадрате, ведь должно дублироваться в синие, даже при изменении значения, как в зеленых)

Надеюсь, понятно объяснил
Буду крайне благодарен за помощь
Считайте первое значение в сетапе и запомните в специальной переменной, а в цикле считывайте все остальные показания.
например a0=DHT.temperature и в "синем квадрате" Малевича печатаете a0
Благодарочка :)