создать программу для корректного вывода значений датчиков на текстовый экран
- Войдите на сайт для отправки комментариев
Сб, 12/02/2022 - 15:29
Здравствуйте! Первый раз на этом форуме, хотел бы попросить помощи у знающих людей...
Учусь в 10-ом классе и делаю проект на ардуино. Задача такова - выводить данные с датчиков на текстовый экран. Вот модели датчиков, экрана и платы ардуино:
датчик углекислого газа MQ-135 (Troyka-модуль)
датчик температуры и влажности DHT-11 (Troyka-модуль)
барометр V2 (Troyka-модуль)
LCD-дисплей MT-16S2H
вот сама программа:
пробовал разные библиотеки, эти библиотеки на такие же датчики, но не Troyka-модуль
подскажите, что где исправить, чтобы все работало, на контакт пойду
эта программа только для датчика температуры и влажности, функция dht.read делает так, что данные на экране перекрывают друг друга
Во первых вставьте код в соответствии с правилами форума!
Во вторых - этого "слона" надо есть по кусочку...
С каким кусочком проблема?
проблема с выводом данных на текстовый экран, если берем библиотеки для troyka модулей, то при добавлении dht.read данные на экране просто наслаиваются друг на друга и идут строкой, а по задумке должны стоять на месте.
первый приведенный код использует другие библиотеки, их я уже начал использовать тогда, когда уже не имел представления, что еще можно сделать. Стоит ли переписать программу на библиотеках troyka?
и, подскажите, пожалуйста, как вставить код в соответствии с правилами?
и, подскажите, пожалуйста, как вставить код в соответствии с правилами?
Вот, скажите, когда Вы пришли на форум, неужели у Вас не хватило ума, прежде, чем постить, зайти в "Песочницу"? Вы заходили туда? А если заходили, Вы правда не заметили там тему, которую я, на рисунке, обвёл красным?
Здравствуйте! Первый раз на этом форуме, хотел бы попросить помощи у знающих людей...
Учусь в 10-ом классе и делаю проект на ардуино. Задача такова - выводить данные с датчиков на текстовый экран. Вот модели датчиков, экрана и платы ардуино:
датчик углекислого газа MQ-135 (Troyka-модуль)
датчик температуры и влажности DHT-11 (Troyka-модуль)
барометр V2 (Troyka-модуль)
LCD-дисплей MT-16S2H
вот сама программа:
#include <LiquidCrystal.h> // RS, E, DB4, DB5, DB6, DB7 LiquidCrystal lcd(4, 6, 10, 11, 12, 13); #include <TroykaIMU.h> // Создаём объект для работы с акселерометром Barometer barometer; #include <TroykaDHT.h> DHT dht (4, DHT11); #include <TroykaMQ.h> // имя для пина, к которому подключен датчик #define PIN_MQ135 A0 // создаём объект для работы с датчиком и передаём ему номер пина MQ135 mq135(PIN_MQ135); void setup() { lcd.begin(16, 2); Serial.begin(9600); delay(1000); dht.begin(); Serial.begin(9600); // перед калибровкой датчика прогрейте его 60 секунд // выполняем калибровку датчика на чистом воздухе mq135.calibrate(); // при знании сопративления датчика на чистом воздухе // можно его указать вручную, допустим 160 // mq135.calibrate(160); // выводим сопротивление датчика в чистом воздухе (Ro) в serial-порт Serial.print("Ro = "); Serial.println(mq135.getRo()); Serial.println("Barometer begin"); // Инициализируем барометр barometer.begin(); // Выводим сообщение об удачной инициализации Serial.println("Initialization completed"); } void loop() { lcd.clear(); float pressureMillimetersHg = barometer.readPressureMillimetersHg(); lcd.setCursor(6,1); lcd.print("P="); lcd.print(pressureMillimetersHg); lcd.print("mmHg"); lcd.setCursor(0,0); lcd.print("H= "); int h = dht.getHumidity(); lcd.print(h); lcd.setCursor(0,1); lcd.print("T= "); int t = dht.getTemperatureC(); lcd.print(t); Serial.print("Ratio: "); Serial.print(mq135.readRatio()); // выводим значения газов в ppm lcd.setCursor(6, 0); lcd.print("CO2:"); lcd.print(mq135.readCO2()); lcd.println("ppm"); delay(2000); }#include <LiquidCrystal.h> // RS, E, DB4, DB5, DB6, DB7 LiquidCrystal lcd(4, 6, 10, 11, 12, 13); #include <TroykaDHT.h> DHT dht(4, DHT11); void setup() { lcd.begin(16, 2); Serial.begin(9600); dht.begin(); } void loop() { lcd.clear(); dht.read(); lcd.setCursor(0, 0); int t = dht.getTemperatureC(); lcd.print("T="); lcd.print(t); lcd.setCursor(0, 1); lcd.print("Hum="); int h = dht.getHumidity(); lcd.print(h); delay(1000); }Не очень ясно зачем Вы привели два скетча и к какому относится текст между ними.
Давайте так:
1. Вы приведёте ОДИН скетч (самый простой в котором видна проблема);
2. Вы приведёте фото экрана, чтобы было видно что там у Вас куда налазит;
3. Вы внятно опишете проблему.