Arduino Polska Forum
I2c wzmocnienie sygnału - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino)
+--- Wątek: I2c wzmocnienie sygnału (/watek-i2c-wzmocnienie-sygna%C5%82u)



I2c wzmocnienie sygnału - pitraszek1 - 25-11-2021

Witam zaproggramowalem Arduino Uno i aduino mega 2560 które przesyłają między sobą dane wszystko działa super ale gdy oddalę je na 10 M to po włączeniu Arduino zawiesza się z tego co wyczytałem okazało się że to działa tylko na bliskich odległościach czego nie przemyślałem czy mogę użyć takiego expandera aby to  działało   https://botland.com.pl/czujniki/18234-extenderactive-terminator-ltc4311-wzmacniacz-sygnalu-i2c-adafruit-4756.html?gclid=Cj0KCQiAhf2MBhDNARIsAKXU5GSsBpvzg7UXvICmcGIUK7I9ywIHKt38qk-zseRlW7uxkGwVRnrn02EaAv93EALw_wcB


RE: I2c wzmocnienie sygnału - kaczakat - 25-11-2021

Czasami może zadziałać jako przedłużenie, ale co do zasady to są magistrale do kilkudziesięciu cm, jak ekspander to podwoi to i tak daleko do 10m. Używanie na siłę zaprzęgu konnego do latania może nie być dobrym pomysłem. UART z małymi prędkościami powinien działać na te 10m, a jak chcesz mieć pewność działania to są układy RS485.


RE: I2c wzmocnienie sygnału - MadMrQ - 01-12-2021

(25-11-2021, 22:14)kaczakat napisał(a): Czasami może zadziałać jako przedłużenie, ale co do zasady to są magistrale do kilkudziesięciu cm, jak ekspander to podwoi to i tak daleko do 10m. Używanie na siłę zaprzęgu konnego do latania może nie być dobrym pomysłem. UART z małymi prędkościami powinien działać na te 10m, a jak chcesz mieć pewność działania to są układy RS485.
Zgadzam się. 10m jest mocno wątpliwe, jeżeli znasz angielski na stronie Adafruit jest informacja jakie odległości możesz osiągać.

Moje Uno i Mega w odległości 5m od siebie spokojnie, bez problemu radzą sobie na połączeniu UART. Tylko pamiętamy o masach

Wysłane z mojego POCOPHONE F1 przy użyciu Tapatalka


RE: I2c wzmocnienie sygnału - pitraszek1 - 03-12-2021

kupiłem taki konwenter https://abc-rc.pl/product-pol-9572-Konwerter-RS422-TTL-na-MAX490-Modul-do-komunikacji-na-dalekie-odleglosci-1km-Arduino.html
tylko nie wiem czy dobrze go podłączyłem złącza TXD i RXD podłączyłem do pinów w arduino tylko nie wiem jak podłączyć wyjścia ARK bo ja podłączyłem :
A do Y
B do Z
Z do B
Y do A
a kod w arduino jest taki
zmienne które zczytuje i wysyła
Kod:
if (zapis.available()) {

  Serial.println(ar);
  Serial.println(h);
Serial.println (den_gora);
  Serial.println(den_dol);
  Serial.println(przekladnia_gora);
  Serial.println(przekladnia_dol);
  Serial.println(klapa_gora);
  Serial.println(klapa_dol);
  Serial.println(koncowa_przekladnia);
  Serial.println(koncowa_den);
  Serial.println(silownik3);
zapis.restart();
  }
i drugi które je odbiera
 
 
Kod PHP:
if (odczyt.available()) {
 
if (
Serial.available() > 0) {
    // slave may send less than requested
    ar Serial.read();
    h Serial.read();
    den_gora Serial.read();
    den_dol Serial.read();
    przekladnia_gora Serial.read();
    przekladnia_dol =Serial.read();
    klapa_gora =Serial.read();
    klapa_dol Serial.read();
    koncowa_przekladnia =Serial.read();
    koncowa_den Serial.read();


}
    odczyt.restart(); 
czy to jest dobrze zrobione bo nie odczytuje mi jak wchodzę w port szeregowy to dane sie nie zgadzają


RE: I2c wzmocnienie sygnału - Jarewa0606 - 03-12-2021

Komunikacja trwa wolniej niż odczytujesz , wiec wszystko będzie się mieszać. Druga sprawa Serial.read() odczytuje tylko jeden bajt a po tym co wstawiłeś nie widać co wysyłasz. Czy zmienna "ar" z wysyłki to char/byte? czy większa? bo jak większa to całkiem nie tak to ma wyglądać. Większe zmienne wysyłają więcej bajtów a twój program odbiorczy tego nie obejmuje

Albo wysyłaj jakiś znak na początku i dopiero od niego odczytuj, a jeszcze lepiej z potwierdzeniem końca danych.