Присвоение перменной значения с датчика
- Войдите на сайт для отправки комментариев
Чт, 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
Благодарочка :)