Ви не увійшли.
Сторінки 1
Здравствуйте.
Написал такой скетч для отображения температур с датчиков DS18B20 на OLED дисплея 128X64. Можно как-то его уменьшить чтобы уместить в mega8. Я только начал по немного разбираться в программировании. Можно уменьшить за счет шрифтов но как удалить не нужные буквы со шрифта я не могу понять. Отказаться от DallasTemperature.h не могу так как использую поиск и задание датчиков.
Помогите. Кто что посоветует.
#include <U8glib.h>
//U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9
//U8GLIB_SH1106_128X64 u8g(4, 5, 6, 7); // SW SPI Com: SCK = 4, MOSI = 5, CS = 6, A0 = 7 (new blue HalTec OLED)
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI
//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI
//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); // Display which does not send ACK
#include <rus8x13.h>
#include <rus10x20.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 3 // вывод, к которому подключён DS18B20
#define TEMPERATURE_PRECISION 12 // точность измерений (9 ... 12)
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensor(&oneWire);
DeviceAddress Thermometer1;
DeviceAddress Thermometer2;
float temp1 = 0.0; // текущее значение температуры
float temp2 = 0.0; // текущее значение температуры
void setup() {
sensor.begin(); // инициализация DS18B20
sensor.getAddress(Thermometer1, 0); // адрес DS18B20 (поиск по индексу)
sensor.getAddress(Thermometer2, 1);
sensor.setResolution(Thermometer1, TEMPERATURE_PRECISION);// установка точности измерения 9...12 разрядов
sensor.setResolution(Thermometer2, TEMPERATURE_PRECISION);
}
//void draw(void) {
void loop(void) {
sensor.requestTemperatures(); // считывание значение температуры
temp1 = sensor.getTempC(Thermometer1); // температура в градусах Цельсия
temp2 = sensor.getTempC(Thermometer2);
u8g.firstPage();
do {
//u8g.setColorIndex(1);
u8g.setFont(rus8x13);
u8g.setPrintPos(38,13); u8g.print("Салон");
u8g.setFont(rus10x20);
u8g.setPrintPos(10,32); u8g.print(temp1);
u8g.drawCircle(85,16,2);
u8g.setPrintPos(89,32); u8g.print("C");
u8g.setFont(rus8x13);
u8g.setPrintPos(38,44); u8g.print("Улица");
u8g.setFont(rus10x20);
u8g.setPrintPos(10,64); u8g.print(temp2);
u8g.drawCircle(85,48,3);
u8g.setPrintPos(89,64); u8g.print("C");
} while (u8g.nextPage());
}
Сторінки 1