Skocz do zawartości

Jaka biblioteka do znaków specjalnych


koragreg

Pomocna odpowiedź

Cześć

poniżej umieszczam kod programu, nie skończony, ale wyskakuje mi błąd który będzie pod kodem, niby nie zadeklarowałem znaków -linia 67,68 no i tu jest kwestia (tak sądzę) biblioteki jaka musi być wgrana??

#include <OneWire.h>      //biblioteka komunikacji
#include <DallasTemperature.h>    //biblioteka czujników firmy DAllas
#include <LiquidCrystal.h>        //biblioteka wyświetlaczy LCD
#include "ClickButton.h" //przywołaj bibloteke clickbutton.h
int temperatura;
const byte HIS = 5; //ustawienie histerezy na stałym poziomie
 
#define ONE_WIRE_BUS 8      //przypisanie wej.8 do czujników
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int deviceCount = 0;

// przyciski konfiguracja
const int
	COplus_BTN_PIN = 22,
	COminus_BTN_PIN = 24,
	CWUplus_BTN_PIN = 26,
 	CWUminus_BTN_PIN = 28;

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;   //przypisanie wyjsc do wyświetlacza
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

// konfiguracja wyjść ledy
const int
	zarCO = 30,
	zarCWU = 32;

void setup(void)
{
  Serial.begin(9600);   //prędkość komunikacji
  sensors.begin();
  lcd.begin(20, 4);   //ilość lini i znaków
  Serial.print("setup()\n");

  // przyciski
  pinMode(COplus_BTN_PIN, INPUT);
  pinMode(COminus_BTN_PIN, INPUT);
  pinMode(CWUplus_BTN_PIN, INPUT);
  pinMode(CWUminus_BTN_PIN, INPUT);
  Serial.print("\tButtons initialized\n");

  // Temperature Controllers
  pinMode(zarCO, OUTPUT);
  pinMode(zarCWU, OUTPUT);
  Serial.print("setup() DONE\n");
      
}

void loop(void){ 
  Serial.print("loop()\n");

  // Read Button State
  bool COplusTarget = digitalRead(COplus_BTN_PIN);
  bool COminusTarget = digitalRead(COminus_BTN_PIN);
    bool CWUplusTarget = digitalRead(CWUplus_BTN_PIN);
  bool CWUminusTarget = digitalRead(CWUminus_BTN_PIN);
  bool wait = COplusTarget || COminusTarget || CWUplusTarget || CWUminusTarget;

  
  int CWUzad;
CWUzad=max(20,100);  
int COzad;
COzad=max(20,100);

// Read Sensor Data
Serial.print(
		"\t" + String(temperatura) + "°" + symbol +
		", Relative Humidity " + String(humidity) +
		"% \n");

  lcd.setCursor(0, 0);
  sensors.requestTemperatures();
  temperatura = 10 * (sensors.getTempCByIndex(0) +0.4);
  temperatura = abs(temperatura);
  lcd.setCursor(0, 0);
  lcd.print("TempCWU");
  lcd.setCursor(9, 0);
  lcd.print(int(temperatura) / 10, 9);

  

   sensors.requestTemperatures();
  temperatura = 10 * (sensors.getTempCByIndex(1) +0.4);
  temperatura = abs(temperatura);
  lcd.setCursor(0, 1);
  lcd.print("TempCO");
  lcd.setCursor(9, 1);
  lcd.print(int(temperatura) / 10, 9);
  
  

  lcd.setCursor(0, 2);
  lcd.print("CWUzad");
  lcd.setCursor(10, 2);

  lcd.setCursor(9, 2);
  lcd.print("XX");
  lcd.setCursor(9, 2);
  
lcd.setCursor(0, 4);
  lcd.print("COzad");
  lcd.setCursor(10, 4);

  lcd.setCursor(9, 4);
  lcd.print("X1");
  lcd.setCursor(9, 4);

delay(1000);
}

  
  
 

błędy

C:\Users\GREG\Desktop\pawel\aktualne\DS18B20_2szt_LCD_Arduino10\DS18B20_2szt_LCD_Arduino10.ino: In function 'void loop()':
C:\Users\GREG\Desktop\pawel\aktualne\DS18B20_2szt_LCD_Arduino10\DS18B20_2szt_LCD_Arduino10.ino:67:39: error: 'symbol' was not declared in this scope
   "\t" + String(temperatura) + "°" + symbol +
                                       ^~~~~~
C:\Users\GREG\Desktop\pawel\aktualne\DS18B20_2szt_LCD_Arduino10\DS18B20_2szt_LCD_Arduino10.ino:67:39: note: suggested alternative: 'strtol'
   "\t" + String(temperatura) + "°" + symbol +
                                       ^~~~~~
                                       strtol
C:\Users\GREG\Desktop\pawel\aktualne\DS18B20_2szt_LCD_Arduino10\DS18B20_2szt_LCD_Arduino10.ino:68:35: error: 'humidity' was not declared in this scope
   ", Relative Humidity " + String(humidity) +
                                   ^~~~~~~~
Znaleziono wiele bibliotek w "LiquidCrystal.h"
  Wykorzystane: C:\Users\GREG\Documents\Arduino\libraries\LiquidCrystal
  Niewykorzystane: C:\Users\GREG\AppData\Local\Arduino15\libraries\LiquidCrystal
exit status 1

Compilation error: 'symbol' was not declared in this scope

  • Lubię! 1
Link do komentarza
Share on other sites

@koragreg 
1) Cytując fragment kodu zadbaj o to, aby kod był prawidłowo sformatowany (Uwaga: w plikach źródłowych nigdy nie używamy znaków tabulacji! W opcjach edytora / IDE itp. należy ustawić wstawianie spacji zamiast znaku TAB!). Zagnieżdżenia w składni każdego języka programowania są warunkiem absolutnie koniecznym, aby ktokolwiek był w stanie na fragment kodu "rzucić okiem". 

2) Jeśli cytujesz jakieś błędy kompilacji, to podaj informacje, jak mamy te błędy powiązać z fragmentem Twojego kodu? Nie znamy numerów linii w pliku źródłowym, ani nie wiemy jakim poleceniem wywołano kompilację, etc.

  • Lubię! 1
Link do komentarza
Share on other sites

Serial.write(176)

wyrzuci znak stopnia, a przynajmniej powinien - nie testowane w Arduino IDE (jeśli odbiornik traktuje strumień przychodzący jako UTF-8). Teraz tylko wkomponować to pomiędzy

Serial.print();

W C coś typu:

printf("%c", 176);

zadziała. Ale chyba nie w tym problem 😄 - chociaż w temacie znaków specjalnych.

Po prostu "temperatura" i "humidity" nie są zdefiniowane. "humidity" nie ma w ogóle, a temperatura jest "pusta". "symbol" też nieobecny. Zanim wydrukujesz, musisz mieć co drukować, kolejność. Serial po obliczeniu w przypisaniu "humidity" i "temperatura".

Edytowano przez matsobdev
  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Nie brakuje Ci żadnych symboli czy bibliotek, to co wypisało w błędach to brak zmiennych o nazwie symbol i humidity, jedna tekstowa, druga liczbowa, za mało pousuwałeś z pierwotnego projektu, z dodanych bibliotek widać, że "brakuje" czegoś do wilgotności.

Na ekranie LCD można wziąć gotowy symbol stopnia, można sobie testowo druknąć wszystkie znaki i go znaleźć, są też w Internecie tablice znaków dla LCD ze sterownikiem hd44780, ale lepiej wydrukować wszystkie, bo może być jakiś chiński wynalazek, nic nie jest pewne.

image.thumb.png.c270439973b865a5f3baf74560e8027d.png

Ja kojarzę ten zestaw znaków po lewej powyższego obrazka. Ale jak się zmruży oczy to i apostrof dobrze to udaje.

  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.