• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sterownik do rotora 360 stopni
#21
to jest cały kod który wgrywam do mega 2560 : https://github.com/k3ng/k3ng_rotator_con...roller.ino jest za duży by go tu wkleić . Są tam nr linijek które mam zmienić i na co by ten lcd odpalił . Inne zmiany które mnie interesują są tak zamienione i to jest super . Chcę zrobić rotor AZ EL i potrzebuję sterownik . Bardzo dziękuję z poświęcenie . Zdrowych Wesołych ŚW.i mokrego Poniedziałku dla całej Rodzinki
 
Odpowiedź
#22
Typ wyświetlacza dla I2C LCD najlepiej wybrać taki:
Kod:
//Zmiana w pliku rotator_k3ngdisplay.h
// #define FEATURE_4_BIT_LCD_DISPLAY
// #define FEATURE_ADAFRUIT_I2C_LCD
// #define FEATURE_YOURDUINO_I2C_LCD
 #define FEATURE_RFROBOT_I2C_DISPLAY
// #define FEATURE_YWROBOT_I2C_DISPLAY
// #define FEATURE_SAINSMART_I2C_LCD
// #define FEATURE_ADAFRUIT_BUTTONS    


adres ustawia się tak:

Kod:
//rotator_k3ngdisplay.cpp
#if defined(FEATURE_RFROBOT_I2C_DISPLAY)
 LiquidCrystal_I2C lcd(0x27,16,2); //mnie akurat pasuje 0x27, zmień sobie na 0x3F czy jaki tam masz
 // LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#endif //FEATURE_RFROBOT_I2C_DISPLAY

//i jeszcze poprawka w funkcji inicjalizacji linia 111:
  lcd.begin();  //to dodać zamiast tego niżej

//  lcd.begin(display_columns, display_rows); //a tę  w komentarz,

parametry LCD trzeba ustawic jeszcze tu:
Kod:
//rotator_setting.h
#define LCD_COLUMNS 20 //16
#define LCD_ROWS 4 //2        //chyba że już masz 16 i 2

W pliku głównym ma być taki początek:
Kod:
#define CODE_VERSION "2018.03.14.01" //po tym doklej te trzy linie
#define FEATURE_LCD_DISPLAY 1
#define FEATURE_RFROBOT_I2C_DISPLAY 1
#define LANGUAGE_ENGLISH 1
Efekt jak na obrazku, można sobie poprzeglądać pliki i poustawiać co jak ma być  i gdzie wyświetlane, ale LCD ruszył.


Załączone pliki Miniatury
   
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#23
Super działa tą poprawkę : cyt //i jeszcze poprawka w funkcji inicjalizacji linia 111:
lcd.begin(); //to dodać zamiast tego niżej

// lcd.begin(display_columns, display_rows); //a tę w komentarz, nie zrobiłem bo jakiś błąd mi wyskakiwał i wyświetlacz był niepełny . Teraz podmienię pliki jak kolega w tym artykule . http://www.sp6.vgj.pl/articles.php?article_id=1 .
 
Odpowiedź
#24
Czy ta poprawka ma coś wspólnego z zmieniającym się napisem na lcd ?
 
Odpowiedź
#25
Nie wiem o co pytasz. W jednej bibliotece tworzysz obiekt od razu podając adres i wymiary LCD LiquidCrystal_I2C lcd(0x27,16,2) a potem inicjujesz wyświetlacz już tylko lcd.begin() bez parametrów. W drugiej, niestety identyczna nazwa, przy tworzeniu obiektu podaje się adres i piny expandera I2C (może komuś coś do czegoś to było potrzebne), dlatego przy begin dodaje się wymiar LCD. No byłoby to bez sensu, gdy znowu pisać lcd.begin(16,2) do biblioteki używanej w FEATURE_RFROBOT_I2C_DISPLAY, a nóż ktoś pomyli w jednym i będzie różnie, a to jak to jest inicjalizowane i gdzie co definiowane wymyślił twórca biblioteki, każdy inaczej. Zobacz same przykłady z LiquidCrystal_I2C. Powinieneś wgrać sobie przykład HELLO WORLD i zobaczyć czy LCD działa OK, tak z samym LCD. U mnie z kolei wyskakiwał błąd przy tej drugiej nie zakomentowanej bo nie ma takiej funkcji w LiquidCrystal_I2C. Nie włączyłeś przypadkiem dwóch na raz w pliku rotator_k3ngdisplay.h? Tam została zakomentowana biblioteka typowo używana // #define FEATURE_4_BIT_LCD_DISPLAY. Dziwne że u Ciebie wygląda inaczej, u mnie po resecie wyświetla w pierwszej linii K3NG, a w drugiej Rotor Controller, także cały LCD działa OK. A poza tym ja to robię na MEGA 2560, bo arduino ostrzega na UNO, że zostało poniżej 25% ram i mogą dziać się cuda i psikusy, tym większe im bardziej rozbudowany program, a ja go nie ogarniam. Mega ma 8kb ramu zamist 2kb.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości