Помогите новичку с TFT 128х128 SPI ST7735
- Войдите на сайт для отправки комментариев
Пнд, 22/05/2017 - 00:58
Помогите разобраться с кодом. Есть Arduino Nano и 1.8 " TFT 128х128 SPI ST7735 и датчик DHT-11.
Немогу собразить как вывести данные с датчика на экран. Вот код:
[code]
//Подключаем библиотеки для работы дисплея
#include <TFT.h>
#include <SPI.h>
#include "DHT.h"
//Определяем пины к которым подключен дисплей
//Напомню, что пин SCLK подключаем к пину 13,
// пин SDI (MOSI) к пину 11, если Вы хотите использовать
// другие пины определите их, раскомментировав код и
//поставьте свои значения.
//#define SCLK 13
//#define MOSI 11
#define cs 10
#define dc 8
#define rst 9
#define DHTPIN 2 //DHT11 на пине 2
#define DHTTYPE DHT11 // DHT 11
// Инициализируем дисплей, назовем его TFTscreen
TFT TFTscreen = TFT(cs, dc, rst);
DHT dht(DHTPIN, DHTTYPE);
//Сделаем установки микроконтроллера
void setup()
{
dht.begin();
//Запустим работу дисплея
TFTscreen.begin();
// Очистим экран дисплея, чтобы убрать случайные
//артефакты
TFTscreen.background(0, 0, 0);
}
//В основном коде программы вызовем каждую
//команду для отрисовки элементов
void loop()
{
delay(2000);
// Так как у меня дисплей 1,44 дюйма, его размеры
//124 на 124 пикселя, поэтому я отталкиваюсь
//от этих размеров
//Сначала установим цвет текста
TFTscreen.stroke(0, 0, 255);
//Установим размер текста
TFTscreen.setTextSize(2);
//Напишем на экране текст
TFTscreen.text("TEMPERATURA",10,20);
float h = dht.readHumidity();
float t = dht.readTemperature();
.....................
.....................
??????????
delay(250);
}
[/code]
:
Немогу собразить как вывести данные с датчика на экран.
Ну, Вы хоть как-то пробовали? Или даже не попытались?
Все получилось !!! Я разобрался.
Вот код может кому-то поможет:
// Example testing sketch for various DHT humidity/temperature sensors // Written by ladyada, public domain #include <SPI.h> #include <TFT.h> #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS 4 // номер пина к которому подключен DS18B20 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); #define cs 10 #define dc 8 #define rst 9 TFT TFTscreen = TFT(cs, dc, rst); #include "DHT.h" #define DHTPIN 2 // what digital pin we're connected to // Uncomment whatever type you're using! #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 //#define DHTTYPE DHT21 // DHT 21 (AM2301) // Connect pin 1 (on the left) of the sensor to +5V // NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1 // to 3.3V instead of 5V! // Connect pin 2 of the sensor to whatever your DHTPIN is // Connect pin 4 (on the right) of the sensor to GROUND // Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor // Initialize DHT sensor. // Note that older versions of this library took an optional third parameter to // tweak the timings for faster processors. This parameter is no longer needed // as the current DHT reading algorithm adjusts itself to work on faster procs. DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); Serial.println("DHTxx test!"); dht.begin(); // Start up the library DS18B20 sensors.begin(); Serial.println("Dallas Temperature IC Control Library Demo"); // put your setup code here, to run once: TFTscreen.begin(); TFTscreen.background(0, 0, 0); TFTscreen.setTextSize(3); TFTscreen.setCursor(20, 20); TFTscreen.print("WEATHER"); TFTscreen.setCursor(20, 50); TFTscreen.print("STATION"); } void loop() { // Wait a few seconds between measurements. delay(2000); // Reading temperature or humidity takes about 250 milliseconds! // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) int h = dht.readHumidity(); // Read temperature as Celsius (the default) int t = dht.readTemperature(); // Read temperature as Fahrenheit (isFahrenheit = true) int f = dht.readTemperature(true); sensors.requestTemperatures(); // put your main code here, to run repeatedly: TFTscreen.stroke(0, 255, 0); TFTscreen.setTextSize(2); // Check if any reads failed and exit early (to try again). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); return; } // Compute heat index in Fahrenheit (the default) float hif = dht.computeHeatIndex(f, h); // Compute heat index in Celsius (isFahreheit = false) float hic = dht.computeHeatIndex(t, h, false); Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t"); Serial.print("Heat index: "); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.println(" *F"); Serial.print("Temperature for the device 1 (index 0) is: "); Serial.println(sensors.getTempCByIndex(0)); // Read temperature DS18B20 as Celsius int T= sensors.getTempCByIndex(0); TFTscreen.background(0, 0, 0); TFTscreen.text(" Vlagnost ",1,2); TFTscreen.setCursor(30, 50); TFTscreen.setTextSize(5); TFTscreen.print(h); TFTscreen.print(" %"); delay(5000); TFTscreen.background(0, 0, 0); TFTscreen.setTextSize(2); TFTscreen.text("Temperatyra 1",1,2); TFTscreen.setCursor(30, 50); TFTscreen.setTextSize(5); TFTscreen.print(t); TFTscreen.print(" C"); delay(5000); TFTscreen.background(0, 0, 0); TFTscreen.setTextSize(2); TFTscreen.text("Temperatyra 2",1,2); TFTscreen.setCursor(30, 50); TFTscreen.setTextSize(5); TFTscreen.print(T); TFTscreen.print(" C"); delay(5000); }ЕвгенийП, Вы - волшебник!