Ви не увійшли.
Где взять библиотеку "Barometer.h" ?
Для Вашего проекта хорошо бы вписался звуковой модуль с качественными готовыми словами http://cybervoice.inf.ua/prod_16d.html
ShowInfo ()
у вас там куча делеев
У меня в другом проекте нет делеев. А что с ShowInfo ()?
ShowInfo ()
у вас там куча делеев
избавьтесь от делеев в функции
Был один в надписи заставки, закомментировал, не помогло.
избавьтесь от делеев в функции
Подскажите пожалуйста, как побороть мигания экрана при tft.fillScreen(ST7735_BLACK); или tft.fillRect (0,0, 160, 128,ST7735_BLACK);
20
20
BMP180 ST7735 Arduino
Для создания небольшой домашней метеостанции был использован датчик давления и температуры BMP180, для вывода информации использовался дисплей TFT ST7735 и Arduino Mini Pro. Само устройство было помещено в коробочку для визиток из оргстекла.
В примере кода, который идет ниже по тексту, использовались следующие коммутации:
Дисплей подключен к пинам Ардуино так (cs к пину 10, dc к пину 9, rst к 8, gnd и power (3В!!!) дисплея к сответствующим выводам питания).
/**********************************************************
Bosch Pressure Sensor BMP085 / BMP180 readout routine
for the Arduino platform.
Compiled by Leo Nutz
[url=http://www.ALTDuino.de]www.ALTDuino.de[/url]
**********************************************************/
// 0.0075006375541921
#include <Wire.h>
#include "Barometer.h"
#include <Adafruit_GFX.h> // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library
#include <SPI.h>
float temperature;
float pressure;
float atm;
float altitude;
Barometer myBarometer;
#define cs 10
#define dc 9
#define rst 8 // you can also connect this to the Arduino reset
Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);
void setup()
{
Wire.begin(); // Activate I2C
Serial.begin(9600); // Set up serial port
myBarometer.init(); // Initialize baro sensor variables
delay(100);
tft.initR(INITR_BLACKTAB); // initialize a ST7735S chip, black tab
tft.fillScreen(ST7735_BLACK);
tft.setRotation(3);
}
void loop()
{
ShowInfo ();
}
void ShowInfo ()
{
temperature = myBarometer.bmp085GetTemperature(myBarometer.bmp085ReadUT()); //Get the temperature, bmp085ReadUT MUST be called first
pressure = myBarometer.bmp085GetPressure(myBarometer.bmp085ReadUP())*0.0075006375541921;//Get the pressure
altitude = myBarometer.calcAltitude(pressure); //Uncompensated caculation - in Meters
atm = pressure / 101325;
Serial.print("Temperature: ");
Serial.print(temperature, 2); //display 2 decimal places
Serial.println("deg C");
Serial.print("Pressure: ");
Serial.print(pressure, 0); //whole number only.
Serial.println(" mmHg");
Serial.print("Ralated Atmosphere: ");
Serial.println(atm, 4); //display 4 decimal places
Serial.print("Altitude: ");
Serial.print(altitude, 2); //display 2 decimal places
Serial.println(" m");
Serial.println();
delay(1000); //wait a second and get values again.
tft.fillRect (0,0, 160, 128,ST7735_BLACK);
tft.setTextWrap(true);
tft.setTextColor(ST7735_RED);
tft.setTextSize(3);
tft.setCursor(0, 0);
tft.println("Hello!");
tft.setTextColor(ST7735_BLUE);
tft.setTextSize(2);
tft.println("Temperature:");
tft.setTextSize(2);
tft.setTextColor(ST7735_YELLOW);
tft.print(temperature, 2);
tft.println(" C");
tft.setTextColor(ST7735_GREEN);
tft.setTextSize(2);
tft.println("Pressure: ");
tft.setTextColor(ST7735_CYAN);
tft.setTextSize(2);
tft.print(pressure, 2);
tft.println(" mmHg");
delay(5000);
// Delay between each readout
tft.setTextColor(ST7735_GREEN);
tft.setCursor(0, 20);
tft.setTextSize(12);
tft.fillRect (0,0, 160, 128,ST7735_BLACK);
tft.println(temperature, 0);
delay(2000);
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(8);
tft.setCursor(0, 40);
tft.fillRect (0,0, 160, 128,ST7735_BLACK);
tft.println(pressure, 0);
delay(2000);
testfillcircles(5, ST7735_BLUE);
testdrawcircles(5, ST7735_WHITE);
delay(1000);
}
void testfillcircles(uint8_t radius, uint16_t color) {
for (int16_t x=radius; x < tft.width(); x+=radius*2) {
for (int16_t y=radius; y < tft.height(); y+=radius*2) {
tft.fillCircle(x, y, radius, color);
}
}
}
void testdrawcircles(uint8_t radius, uint16_t color) {
for (int16_t x=0; x < tft.width()+radius; x+=radius*2) {
for (int16_t y=0; y < tft.height()+radius; y+=radius*2) {
tft.drawCircle(x, y, radius, color);
}
}
}