Adafruit_ST7735.h
- Войдите на сайт для отправки комментариев
Ср, 26/07/2017 - 15:23
Не могу найти полный список методов и их описание, обшарил весь интернет. Нашел .pdf для Adafruit_GFX.h но немогу найти для Adafruit_ST7735.h. С подобного рода проблемой сталкиваюсь уже не первый раз. Где искать описание библиотеки?
Не могу найти полный список методов и их описание, обшарил весь интернет. Нашел .pdf для Adafruit_GFX.h но немогу найти для Adafruit_ST7735.h. С подобного рода проблемой сталкиваюсь уже не первый раз. Где искать описание библиотеки?
https://github.com/adafruit/Adafruit-ST7735-Library/blob/master/Adafruit...
Да, я там уже порылся и теперь в недоумении. GFX - базовый класс со стандартными графическими процедурами. ST7735 - библиотека для работы с LCD-контроллером TFT-экранов диагонально 1.8" и разрешением 128x160. Для работы с Adafruit_ST7735.h нужно заимпортить GFX библиотеку, я думал ST7735 ее расширяет (тогда тоже не понятно нафига импортить GFX) переопределяет некоторые методы и имеет свои. На деле же оказалось, что все методы из Adafruit_ST7735.h есть в GFX, но не все мотоды из GFX есть в ST7735. Все методы в примерах применяються к объекту класса Adafruit_ST7735. Как это понимать? Зачем она вообще тогда нужна, эта Adafruit_ST7735.h?
Может я не понимаю чего то важного, фундаментального про библиотеки? C и С++ не знаю, немного знаю Java.
Например для использования сторонних библиотек ключевое слово include а не import (как в Java), и почему перед include стоит # и не ставиться точка с запятой в конце, и этот синтаксис <>. По каким тегам погуглить об этом ибо я вообще не в курсе.
Разумеется, но это не беда, научитесь :)
Где-то include, где-то require, в джаве вот import.
Потому что это директива компилятора, точку с запятой не надо.
<> искать во всех возможных папках, "" только в папке проекта.
Спасибо. Так как работают эти битлиотеки. В GFX больше методов чем в ST7735, но создаеться именно объект класса Adafruit_ST7735. Как это понимать? ST7735 библиотека просто переоперделяет векоторые функции, чтоб те корректно работали на конкретном дисплеи и если применить к объекту класса ST7735 метод в котором его нет но есть в GFX, он просто выполнит этот метод, так как ST7735 наследует GFX? Я правильно понял?
Потому что это директива компилятора, точку с запятой не надо.
Это директива препроцессора.
https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%BF%D1%80%D0%BE%D1%86...
https://msdn.microsoft.com/ru-ru/library/36k2cdd4.aspx
Спасибо.
Да, да, естественно препроцессора, думаю одно, пишу что попало.
Да, верно, только не переопределяет, а реализует, от абстрактных функций выше в GFX, ну и заодно реализует обмен данными с физическим дисплеем.
Библиотека это просто графический движок.https://github.com/adafruit/Adafruit-GFX-Library/blob/master/Adafruit_GFX.h
Я бы даже сказал виртуальный. Сам по себе класс ничего не может, потому что в нем нет буфера данных в котором он может рисовать. Краски есть, мольберт есть, а вот бумагу (полотно) не завезли. Но есть возможность подключить внешний метод.
Вот это и есть главный узел который подключает краски к бумаге.
ПС: И да не иделизируйте Adafruit_GFX.h . библиотека немного недописана. Это как работающий черновик.
Спасибо, действительно. Теперь пазл сложился, сила комьюнити)
Здравствуйте! Помогите не могу разобраться что делаю не так компилятор ругаеться на любые действия
#include <Adafruit_GFX.h> #include <Adafruit_ST7735.h> #include <SPI.h> #include <HX711.h> HX711 scale(A1, A0); // Указываем в какие пины подключен АЦП hx711 (DT(DOUT) - pin A1, SCK - pin A0) #define TFT_CS 9 // TFT CS pin is connected to arduino pin 9 #define TFT_DC 10 // TFT DC pin is connected to arduino pin 10 Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC); float myScale; // Инициализируем переменную в которой будем хранить текущий вес void setup() { tft.initR(INITR_BLACKTAB); // initialize a ST7735S chip, black tab tft.fillScreen(ST7735_BLACK); draw_text(16, 81, "0.00", 2, ST7735_WHITE); scale.set_scale(467.48); // Устанавливаем калибровочный коэффициент scale.tare(); // Сбрасываем весы на 0 myScale = round(scale.get_units(10)); // Запоминаем среднее значение без груза, но с учетом тары } void draw_text(x_pos, y_pos, char *text, text_size, text_color) { tft.setCursor(x_pos, y_pos); tft.setTextSize(text_size); tft.setTextColor(text_color, ST7735_WHITE); tft.print(text); } void loop() { scale.power_up(); // Отключаем энергосберегающий режим hx711 if (round(scale.get_units(10)) != myScale) { // Условие выполняется, если округленный до граммов вес отличается от последнего myScale = scale.get_units(20); // Запоминаем текущий вес tft.fillScreen(ST7735_BLACK); if (myScale > 0.5) // Если вес не ничтожно мал draw_text(16, 81, String(myScale), 2, ST7735_WHITE); // то выводим его else // иначе draw_text(16, 81, "0.00", 2, ST7735_WHITE); // выводим нули tft.fillScreen(ST7735_BLACK); myScale = round(myScale); // Запоминаем округленный текущий вес (для сравнения) } scale.power_down(); // Включаем энергосберегающий режим hx711 delay(500); // Пауза на половину сек. }http://arduino.ru/forum/obshchii/pesochnitsa-dlya-vsekh-novichkov
вставка кода