• 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
Problem z "SoftwareSerial" oraz biblioteką "LINBus_stack"
#1
Cześć.

Mam Arduino IDE 2.3.4 świeżo zainstalowane na komputerze. Wcześniej miałem starszą wersję 2.2.x. Z Arduino korzystałem do tej pory bardzo rzadko. Mam kilka pytań.

1. Potrzebuję użyć "SoftwareSerial" z tego co wyczytałem to biblioteka ta powinna być już dostarczona razem z IDE, tak? Gdy w edytorze podczas tworzenia sketcha wpiszę #include <SoftwareSerial.h> to podczas próby komplilacji otrzym fail z informacją, że nie znaleziono takiej biblioteki. SoftwareSerial trzeba doinstalować? Jeśli tak to skąd go wziąźć?

2. Doinstalowałem bibliotekę "LINBus_stack by Blaz Pongrac ver 3.1.3" (dostępna w Library Manager). Ta biblioteka powstała z tego co widzę z innej bliblioteki (ktoś przerobił po prostu). Tylko, że przykłady "example" pozostały ze starej i są bezużytezne. Wiem, że proszę o dużo, ale czy ktoś mógłby mi wytłumaczyć jak jej użyć? Nie chcę aby ktoś mi napisał jakiś program, ale tylko wytłumaczył jak używać tego, jak "zainicjować" port bo tego nie ogarniam.
 
Odpowiedź
#2
Niestety nie mam tej wersji, ciągle mam wersję 1.8.19 , zawsze możesz sobie ściągnąć Arduino w wersji zip, rozpakuj gdzieś i korzystaj, softwareserial u mnie jest wbudowany, możesz sobie ściągnąć i wrzucić do katalogu bibliotek.
LINBus_stack nie używałem, zainstalowałem , faktycznie rzuca się o brak biblioteki, bo ta ściągnięta ma nazwę LINBus_stack.h , wystarczy to wkleić zamiast brakującej , zamienić też obiekt tworzony niżej na LINBus_stack, ale dalej się burzy, zajrzałem do pliku h, tam jest konstruktor, który wymaga podania HardwareSerial i baudrate, to mu dopisałem LINBus_stack LIN2(Serial, 19200); // Creating LIN Stack objects, 2 - second channel
i się skompilowało, przykład master. Ale softserial i tak nie akceptuje.
Na pewno nie ma żadnych przykładów użycia tej biblioteki w Google? Ewentualnie użyj płytki MICRO lub LEONARDO, jest wiele innych modułów, które maja więcej sprzętowych seriali.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
(16-12-2024, 21:40)kaczakat napisał(a): Niestety nie mam tej wersji, ciągle mam wersję 1.8.19 , zawsze możesz sobie ściągnąć Arduino w wersji zip, rozpakuj gdzieś i korzystaj, softwareserial  u mnie jest wbudowany, możesz sobie ściągnąć i wrzucić do katalogu bibliotek.
LINBus_stack nie używałem, zainstalowałem , faktycznie rzuca się o brak biblioteki, bo ta ściągnięta ma nazwę LINBus_stack.h , wystarczy to wkleić zamiast brakującej , zamienić też obiekt tworzony niżej na LINBus_stack, ale dalej się burzy, zajrzałem do pliku h, tam jest konstruktor, który wymaga podania HardwareSerial i baudrate, to mu dopisałem LINBus_stack LIN2(Serial, 19200); // Creating LIN Stack objects, 2 - second channel
i się skompilowało, przykład master. Ale softserial i tak nie akceptuje.
Na pewno nie ma żadnych przykładów użycia tej biblioteki w Google? Ewentualnie użyj płytki MICRO lub LEONARDO, jest wiele innych modułów, które maja więcej sprzętowych seriali.


Dziękuję za wskazówki Smile 
Faktycznie "LINBus_stack LIN2(Serial, 19200);" działa prawidłowo. Zastanawiam się czy da się jakoś przed tym "przekazaniem" tego "Serial" wykonać Serial.setPins(RxD, TxD)? Tak aby ustawić Serial na odpowiednich pinach procesora i dopiero przekazać go do bilbioteki LIN? Czy raczej nie jest to możliwe?
 
Odpowiedź
#4
Zależy jaki uC, w UNO serial sprzętowy jest na pinach 0 i 1, nie zmienisz tego, na innych uC można czasami przemapować. Zresztą ta biblioteka jest niestety tak napisana, używa sprzętowych uart, znalazłem tą pierwotną wersję chyba https://github.com/macchina/LIN i tu na sztywno były odwołania do Serial1lub Serial2, a to znaczy, że program zadziała na płytkach które mają trzy uart. Ten nowy możesz spokojnie odpalić na płytce z UNO ale wydruk jakiś danych do PC musiałbyś zrobić przez soft serial, możesz użyć MICRO z Serial1, albo MEGA, które ma 4 UART.
Tu jest inna biblioteka do LIN, obsługuje więcej typów płytek https://docs.arduino.cc/libraries/lin-ma...-operation
Tam jest jakiś rejestr przestawiany do obsługi LIN, więc musi być sprzętowy.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości