Непонятная ошибка в скетче.

Genri5
Offline
Зарегистрирован: 31.05.2016



Приветствую участников форума. 
Нашел скетч, который меня впоне бы устроил, но он выдает ошибку. Может подскажет кто в чем проблема?
 [code]
 

#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <Adafruit_BME280.h>
#include <Wire.h>

Adafruit_BME280 bme; // I2C
// SDA - A4 (D18)
// SCL - A5 (D19)

Adafruit_PCD8544 lcd = Adafruit_PCD8544(7, 6, 5, 4, 3);
// D7 - Serial clock out (CLK)
// D6 - Serial data out (DIN)
// D5 - Data/Command select (DC)
// D4 - LCD chip select (CE)
// D3 - LCD reset (RST)

void setup() {
  lcd.begin();
  lcd.setContrast(60);
  lcd.clearDisplay();
  Wire.begin();
  delay(1000);
  bme.begin();
}          
void loop(void) { 
  lcd.setTextSize(2);
  lcd.setCursor(8,1);
  lcd.print(bme.readPressure()/133.3);
  lcd.setCursor(8,17);
  lcd.print(bme.readTemperature(),1);
  lcd.setCursor(58,14);
  lcd.print((char)9);
  set_text(69,17,"C",BLACK);
  lcd.setCursor(8,34);
  lcd.print(bme.readHumidity());
  set_text(69,34,"%",BLACK);
  lcd.clearDisplay();
  delay(50000);
}
void set_text(int x,int y,String text,int color){
  lcd.setTextColor(color);
  lcd.setCursor(x,y);
  lcd.println(text);
  lcd.display();
}
[/code]

 

Genri5
Offline
Зарегистрирован: 31.05.2016

Ругается на 38 строку:  set_text(69,17,"C",BLACK);

Gr5
Offline
Зарегистрирован: 26.03.2015

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

MagicianT
Offline
Зарегистрирован: 03.10.2015

Set_text нету, вместо неё выбирайте:

    drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color,
      uint16_t bg, uint8_t size),
    setCursor(int16_t x, int16_t y),
    setTextColor(uint16_t c),
    setTextColor(uint16_t c, uint16_t bg),
    setTextSize(uint8_t s),
    setTextWrap(boolean w),
    setRotation(uint8_t r);

Посмотреть здесь: Adafruit_GFX.h

Да, и lcd. перед вызовом подфункции обязательна.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

MagicianT пишет:

Set_text нету, вместо неё выбирайте:

Да, и lcd. перед вызовом подфункции обязательна.

set_text  есть,  это  45 ( сорок пятая)  строка .....

Genri5
Offline
Зарегистрирован: 31.05.2016

Пишет -"Set_text" was not declared in this skope.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

set_text  или  Set_text   ? 

Araris
Offline
Зарегистрирован: 09.11.2012

Перенесите строки 45-50 в начало скетча, там где строка 21.

Genri5
Offline
Зарегистрирован: 31.05.2016

set_text, но я пробывал менять на  Set_text - ошибка таже.

Genri5
Offline
Зарегистрирован: 31.05.2016

Перенес- 



[code]
 

#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <Adafruit_BME280.h>
#include <Wire.h>

Adafruit_BME280 bme; // I2C
// SDA - A4 (D18)
// SCL - A5 (D19)

Adafruit_PCD8544 lcd = Adafruit_PCD8544(7, 6, 5, 4, 3);
// D7 - Serial clock out (CLK)
// D6 - Serial data out (DIN)
// D5 - Data/Command select (DC)
// D4 - LCD chip select (CE)
// D3 - LCD reset (RST)
  void set_text(int x,int y,String text,int color)
  {
  lcd.setTextColor(color);
  lcd.setCursor(x,y);
  lcd.println(text);
  lcd.display();
}
void setup() {
  lcd.begin();
  lcd.setContrast(60);
  lcd.clearDisplay();
  Wire.begin();
  delay(1000);
  bme.begin();
}          
void loop(void) { 
  lcd.setTextSize(2);
  lcd.setCursor(8,1);
  lcd.print(bme.readPressure()/133.3);
  lcd.setCursor(8,17);
  lcd.print(bme.readTemperature(),1);
  lcd.setCursor(58,14);
  lcd.print((char)9);
  Set_text(69,17,"C",BLACK);
  lcd.setCursor(8,34);
  lcd.print(bme.readHumidity());
  set_text(69,34,"%",BLACK);
  lcd.clearDisplay();
  delay(50000);
}

[/code]

ошика таже.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Ваш пример ( правда с закомментированным барометром, лень искать библиотеку) прекрасно скомпилился......
Вот, проверьте у себя.....



#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
//#include <Adafruit_BME280.h>
#include <Wire.h>

// Adafruit_BME280 bme; // I2C
// SDA - A4 (D18)
// SCL - A5 (D19)

Adafruit_PCD8544 lcd = Adafruit_PCD8544(7, 6, 5, 4, 3);
// D7 - Serial clock out (CLK)
// D6 - Serial data out (DIN)
// D5 - Data/Command select (DC)
// D4 - LCD chip select (CE)
// D3 - LCD reset (RST)

void setup() {
  lcd.begin();
  lcd.setContrast(60);
  lcd.clearDisplay();
  Wire.begin();
  delay(1000);
 // bme.begin();
}          
void loop(void) { 
  lcd.setTextSize(2);
  lcd.setCursor(8,1);
  //lcd.print(bme.readPressure()/133.3);
  lcd.setCursor(8,17);
 // lcd.print(bme.readTemperature(),1);
  lcd.setCursor(58,14);
  lcd.print((char)9);
  set_text(69,17,"C",BLACK);
  lcd.setCursor(8,34);
  //lcd.print(bme.readHumidity());
  set_text(69,34,"%",BLACK);
  lcd.clearDisplay();
  delay(50000);
}
void set_text(int x,int y,String text,int color){
  lcd.setTextColor(color);
  lcd.setCursor(x,y);
  lcd.println(text);
  lcd.display();
}

Sketch uses 9,314 bytes (30%) of program storage space. Maximum is 30,720 bytes.
Global variables use 838 bytes (40%) of dynamic memory, leaving 1,210 bytes for local variables. Maximum is 2,048 bytes.

Araris
Offline
Зарегистрирован: 09.11.2012

Ругается на строку 42 ? Set_text и set_text - разные функции, имейте в виду.

Genri5
Offline
Зарегистрирован: 31.05.2016

А у меня почему-то ошибка таже. Наверное проблема в Arduino IDE.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

1.6.9 у меня.....

Genri5
Offline
Зарегистрирован: 31.05.2016

Попробывать скачать превью и от туда запустить или это ничего не даст?

Genri5
Offline
Зарегистрирован: 31.05.2016

Я так и думал, что нужно убирать все хвосты из IDE. И устанавливать по новой, наверное.