OLED LCD 0,96 128x64 помогите настроить

TovBender
Offline
Зарегистрирован: 12.04.2015

Помогите настроить . Скетч. для маленького  дисплея OLED LCD 0,96 128x64.

скетч долен выводить температуры на экран.

выдает ошибку . 

C:\Documents and Settings\Admin\Мои документы\Arduino\libraries\libraries\Adafruit_SSD1306\Adafruit_SSD1306.cpp:433:6: error: prototype for 'void Adafruit_SSD1306::dim(boolean)' does not match any in class 'Adafruit_SSD1306'
 void Adafruit_SSD1306::dim(boolean dim) {
      ^
In file included from C:\Documents and Settings\Admin\Мои документы\Arduino\libraries\libraries\Adafruit_SSD1306\Adafruit_SSD1306.cpp:28:0:
C:\Documents and Settings\Admin\Мои документы\Arduino\libraries\libraries\Adafruit_SSD1306\Adafruit_SSD1306.h:152:8: error: candidate is: void Adafruit_SSD1306::dim(uint8_t)
   void dim(uint8_t contrast);

        ^
Ошибка компиляции.

пробовал разные библиотеки Adafruit SSD1306, с разных сайтов. не помогает. в одном случае выдает что памяти мало, хотя скетч занял 20%. а вдругом uint8_t.

подскажите что не так.

Сам Скетч.

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4

Adafruit_SSD1306 display(OLED_RESET);

          
#include <OneWire.h>  
OneWire ds(7);  // работаем через пин 7
 
void setup(){  
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  
  display.clearDisplay();

}
 
void loop() {
 
                  //Работа датчика температуры
  byte i;
  byte present = 0;
  byte data[12];
  byte addr[8];

  if ( !ds.search(addr)) {
      Serial.print("\n");
      ds.reset_search();
      return;
  }

  ds.reset();
  ds.select(addr);
  ds.write(0x44,1);        
  delay(1000);    

  ds.reset();
  ds.select(addr);    
  ds.write(0xBE);         // чтение показаний датчика

  for ( i = 0; i < 9; i++) {          
    data[i] = ds.read();
   }
  
  Serial.print(" CRC="); //Вроде должно исправлять ошибки вычисления
  Serial.print( OneWire::crc8( data, 8), HEX);
  Serial.println();
   float Tc_100;
  Tc_100 = (data[1]*256. + data[0])/16.;
    Serial.print(Tc_100);
   
          //   Работа Дисплея
  display.clearDisplay();
  display.setCursor(5,5);
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.println("ENGINE"); //Надпись сверху дисплея
  display.setCursor(90,5);
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.println("T"); //Знак температуры
  display.setCursor(109,5);
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.println("O"); //Импровезированный знак градуса
  display.setCursor(115,5);
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.println("C"); //Импровезированный знак Цельсия
  display.setCursor(30,38);
  display.setTextSize(3);
  display.setTextColor(WHITE);
  display.print(Tc_100,1); //Выводим переменную на дисплей
  display.display();
  delay(1000);
}

 

 

TovBender
Offline
Зарегистрирован: 12.04.2015

может кто подскажет как в другой библиотеке  <OLED_I2C.h>

можно вывести температуру на экран ,,??????

slava_mib
Offline
Зарегистрирован: 22.04.2015

Просто отредактируйте эту либу (хидер-файл Adafruit_SSD1306.h ), замените в нём

void dim(uint8_t contrast);

на

void dim(boolean contrast);

и всё соберётся.

 

PSLeon
Offline
Зарегистрирован: 05.08.2015

Помогите, таже ошибка, не компилируется. пишет слишком большой после исправления хидера

zugni
Offline
Зарегистрирован: 14.06.2015

Может он поможет он четка обьясняет все .

 

http://www.youtube.com/watch?v=niA3aPu3-dQ

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Может стоит рабочие либы брать, у которых примеры компилятся?

Я бы рекомендовал u8glib потому что она мне больше понравилась.

Joiner
Offline
Зарегистрирован: 04.09.2014

zugni пишет:

Может он поможет он четка обьясняет все .

 

http://www.youtube.com/watch?v=niA3aPu3-dQ

Я сделал как он учит, но у меня что-то не компилируется

Объясните,пожалуйста, что компилятору не нравится?

А в другом ролике, человек порекомендовал библиотеку OLED_I2C. Попробовал.... компилится, заливается и работает. Решил пользовать ее....Но

С другими библиотеками что не так? Почему у Осипова работают, а у меня нет. Брал их и из другого источника, таже самая шняга "Ошибка компиляции".

Gres
Gres аватар
Offline
Зарегистрирован: 26.03.2013

Может Вам стоит прочитать что пишет компилятор и что написано тремя постами выше?

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Да там "солянка" из библиотек - не понятно какой файл от какой(хедер от одной исходник от другой).  Наведите порядок в файлах...

Joiner
Offline
Зарегистрирован: 04.09.2014

Попробую. Спасибо.

zugni
Offline
Зарегистрирован: 14.06.2015

Если не чего не получилость вот такую библиотеку нашел у меня все Ок)

 

https://github.com/adafruit/Adafruit_SSD1306

Joiner
Offline
Зарегистрирован: 04.09.2014

NeiroN пишет:

Может стоит рабочие либы брать, у которых примеры компилятся?

Я бы рекомендовал u8glib потому что она мне больше понравилась.

Спасибо. Интересная библиотека. Там куча всяких мониторчиков. Куча примерчиков.

Класс!