Termometr z wyświetlaczem LCD

Termometr z wyświetlaczem LCD

Witam,

Nazywam się Rafał i chciałbym przedstawić projekt termometru z wyświetlaczem LCD z użyciem konwertera I2C. Przygodę  z Arduino zacząłem niedawno a to jest mój pierwszy artykuł, więc proszę o wyrozumiałość.

 

 

Opublikuj swój projekt i odbierz 50% rabatu do wykorzystania w sklepie Nettigo.pl

Co nam będzie potrzebne:

Arduino, w moim przypadku Uno

Konwerter I2C

Wyświetlacz LCD 2×16

Czujnik temperatury DS18B20

Przewody połączeniowe

Płytka stykowa

Rezystor 4,7KΩ

Od czego zacząć?

Ściągamy i instalujemy wszystkie potrzebne biblioteki:

  • OneWire
  • DS18B20
  • LiquidCrystal_I2C

Teraz czas złożyć nasz układ:

LCD_I2C_DS18B20

Następnie musimy sprawdzić adres konwertera I2C pod jakim widnieje nasze urządzenie->kopiujemy kod wgrywamy do naszego Arduino, w serial monitorze powinien ukazać się nasz numer(np. 0x27). Kopiujemy odczytany adres gdyż będzie potrzebny w dalszym sketchu.

Kolejnym krokiem będzie odczyt numeru seryjnego naszego czujnika, skorzystamy z gotowego sketcha który jest dostępny po wgraniu bibliotek. Dostępny jest on w Plik->Przykłady->DS18B20->search_ds18b20_addresses , jeżeli wszystko jest poprawnie podłączone, po wgraniu szkicu i uruchomieniu serial monitora powinniśmy zobacz nasz unikalny adres. Kopiujemy odczytany adres gdyż będzie potrzebny w dalszym sketchu.

Wgrywanie sketcha

Aby na wyświetlaczu zobaczyć aktualną temperaturę wgrywamy następujący szkic, pamiętając o podmianie adresu czujnika oraz adresu konwertera.

Gotowe!

IMG_20151229_173421_HDR_1451558188502

IMG_20151229_174420_HDR

Myślę, że poradnik się przyda :D

 

Ocena: 4.14/5 (głosów: 70)
Nettigo - patron działu Elektronika

Podobne posty

17 komentarzy do “Termometr z wyświetlaczem LCD

  • co może być nie tak ?

    Odpowiedz
  • znaczki zlikwidowałem ale dalej mam problem… ;-(
    jak ew. jeszcze zmodyfikować kod aby podłączyć cztery czujniki ?

    Odpowiedz
  • sketch_may11b:13: error: no matching function for call to ‚LiquidCrystal_I2C::LiquidCrystal_I2C(int, int, int, int, int, int, int, int)’

    LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);// Adres konwertera

    ^

    C:\Users\pc\Documents\Arduino\sketch_may11b\sketch_may11b.ino:13:41: note: candidates are:

    In file included from C:\Users\pc\Documents\Arduino\sketch_may11b\sketch_may11b.ino:3:0:

    C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:57:3: note: LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t, uint8_t, uint8_t)

    LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows);

    ^

    C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:57:3: note: candidate expects 3 arguments, 8 provided

    C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:55:7: note: constexpr LiquidCrystal_I2C::LiquidCrystal_I2C(const LiquidCrystal_I2C&)

    class LiquidCrystal_I2C : public Print {

    ^

    C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:55:7: note: candidate expects 1 argument, 8 provided

    C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:55:7: note: constexpr LiquidCrystal_I2C::LiquidCrystal_I2C(LiquidCrystal_I2C&&)

    C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:55:7: note: candidate expects 1 argument, 8 provided

    sketch_may11b:15: error: ‚ONEWIRE_PIN’ was not declared in this scope

    OneWire onewire(ONEWIRE_PIN);

    ^

    C:\Users\pc\Documents\Arduino\sketch_may11b\sketch_may11b.ino: In function ‚void setup()’:

    sketch_may11b:25: error: ‚class LiquidCrystal_I2C’ has no member named ‚setBacklightPin’

    lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);

    ^

    sketch_may11b:25: error: ‚BACKLIGHT_PIN’ was not declared in this scope

    lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);

    ^

    sketch_may11b:25: error: ‚POSITIVE’ was not declared in this scope

    lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);

    ^

    exit status 1
    no matching function for call to ‚LiquidCrystal_I2C::LiquidCrystal_I2C(int, int, int, int, int, int, int, int)’

    Odpowiedz
  • Ten program jest tak napisany, że co druga linia jest niepoprawna.

    Mam takie błędy:

    sketch_may28a:12: error: expected ‚,’ or ‚;’ before ‚byte’

    byte adress[8] = {0x28, 0xFF, 0x17, 0x4C, 0xA3, 0x15, 0x4, 0xF7};

    ^

    sketch_may28a:14: error: no matching function for call to ‚LiquidCrystal_I2C::LiquidCrystal_I2C(int, int, int, int, int, int, int, int)’

    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7);

    ^

    C:\Users\Kamil\AppData\Local\Temp\arduino_modified_sketch_635086\sketch_may28a.ino:14:48: note: candidates are:

    In file included from C:\Users\Kamil\AppData\Local\Temp\arduino_modified_sketch_635086\sketch_may28a.ino:4:0:

    C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:59:3: note: LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t, uint8_t, uint8_t)

    LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows);

    ^

    C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:59:3: note: candidate expects 3 arguments, 8 provided

    C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:57:7: note: constexpr LiquidCrystal_I2C::LiquidCrystal_I2C(const LiquidCrystal_I2C&)

    class LiquidCrystal_I2C : public Print {

    ^

    C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:57:7: note: candidate expects 1 argument, 8 provided

    C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:57:7: note: constexpr LiquidCrystal_I2C::LiquidCrystal_I2C(LiquidCrystal_I2C&&)

    C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:57:7: note: candidate expects 1 argument, 8 provided

    C:\Users\Kamil\AppData\Local\Temp\arduino_modified_sketch_635086\sketch_may28a.ino: In function ‚void setup()’:

    sketch_may28a:23: error: ‚adress’ was not declared in this scope

    sensors.request(adress);

    ^

    sketch_may28a:26: error: ‚class LiquidCrystal_I2C’ has no member named ‚setBacklightPin’

    lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);

    ^

    sketch_may28a:26: error: ‚POSITIVE’ was not declared in this scope

    lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);

    ^

    C:\Users\Kamil\AppData\Local\Temp\arduino_modified_sketch_635086\sketch_may28a.ino: In function ‚void loop()’:

    sketch_may28a:34: error: ‚adress’ was not declared in this scope

    temperature = sensors.readTemperature(adress);

    ^

    C:\Users\Kamil\AppData\Local\Temp\arduino_modified_sketch_635086\sketch_may28a.ino: At global scope:

    sketch_may28a:46: error: expected declaration before ‚}’ token

    }

    ^

    exit status 1
    expected ‚,’ or ‚;’ before ‚byte’

    Odpowiedz

Odpowiedz

anuluj

Termometr z wyświetlaczem LCD

Nie przegap nowych projektów!

Zapisując się na nasz Newsletter będziesz miał pewność, że nie przegapisz żadnego nowego projektu opublikowanego w Majsterkowie!

Od teraz nie przegapisz żadnego projektu!

Masz uwagi?