Skocz do zawartości

Podłączanie paru dwóch czujników do I2C


Stokrotka

Pomocna odpowiedź

Cześć!


1. czy konieczne jest stosowanie rezystorów pull-up w przypadku gdy mam moduły czujników (pytam bo w paru tutorialach widziałam, jak podłączali od razu do płytki i się zastanawiam czy może są już one wbudowane w moduł jakoś 😕 )
2. Skoro mam dwa wejścia (nie wiem czy można tak powiedzieć 😅 ) do magistrali I2C to czy mogę do jednego wejścia ( A4 i A5 na płytce) podłączyć jeden czujnik a do drugiego ( piny SCL i SDA) drugi i po prostu jakoś wybierać z którego korzystam? 

Link do komentarza
Share on other sites

Wiem, że nie mam dwóch wejść do wóch oddzielnych magistrali - bardziej chodziło mi o to, że są oznaczone piny SDL SDA na płytce i piny A4 i A5 i czy można je potraktować jako dwa wejścia do jednej magistrali 😕 

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

Okej, już rozumiem i rezystory też dodać. A czy mógłbyś mi wytłumaczyć o co chodzi z tymi rejestrami i jak je zaimplementować w kodzie ? Bo czytam te artykuły różne, ale nie bardzo wiem jak to ma działać. Albo może poleciłbyś mi coś do przeczytania ? Bo to co ja znalazłam to jest chyba zbyt mądrze wytłumaczone 😞

Link do komentarza
Share on other sites

2 godziny temu, Stokrotka napisał:

Okej, już rozumiem i rezystory też dodać

To juz zalezy...czesto gotowe moduly maja swoje rezystory wiec nie trzeba dodawac swoich...

 

2 godziny temu, Stokrotka napisał:

A czy mógłbyś mi wytłumaczyć o co chodzi z tymi rejestrami i jak je zaimplementować w kodzie ? 

Nie martwil bym sie o to na twoim miejscu...wiekszosc modulow ma swoje biblioteki i to one dbaja o rejestry, wiec taka wiedza na poczatku Ci nie jest potrzebna...(chociaz sam musze sie wkoncu wziasc za te tematy😜)

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


void setup() {
  pinMode(8, OUTPUT); //Dioda jako wyjście
  pinMode(7, INPUT_PULLUP); //Przycisk jako wejście
  digitalWrite(8, LOW); //Wyłączenie diody
}
 

Kawałek programu z kursu forbota. Czy jeśli zaznacze w programie A4, A5 pullup i tak samo scl i sda pullup to będzie dobrze? 
Czemu ludzie podłączają fizycznie rezystory jeśli w arduino jest taka funkcja? Jest jakaś gorsza czy coś ? 😕

 

 
image.thumb.png.13bd534d0b9e0dc2280c54687c78a7a4.png

A tutaj kawałek grafiki z dokumentacji jednego z czujników. Bo myślałam, żeby zacząć szukać w dokumentacji czy dany moduł czujnika wymaga tych rezystorków czy nie. Ale czy to to ? 

Czy stałoby się coś gdyby te rezystory nie były potrzebne a bym je podłączyła? Obniżyło by się napięcie na czujnikach i jeśli by było za małe to by mogły nie zadziałać ? 🤨

Link do komentarza
Share on other sites

Przed chwilą, Stokrotka napisał:

Jest jakaś gorsza czy coś ?

Właśnie jest gorsza - rezystory mają zbyt dużą wartość dla I2C i nie zawsze działają prawidłowo. Zresztą - np. w Pro Mini już takiej funkcji nie ma i trzeba rezystory podłączać samemu.

2 minuty temu, Stokrotka napisał:

A tutaj kawałek grafiki z dokumentacji jednego z czujników.

Gdzie wyraźnie jest napisane, że ten kawałek nie dotyczy linii SDA i SCL, prawda?

4 minuty temu, Stokrotka napisał:

Czy stałoby się coś gdyby te rezystory nie były potrzebne a bym je podłączyła

Prawdopodobnie nic strasznego - układ działałby dalej. Problemem może być sytuacja, kiedy podłączasz większą ilość urządzeń (np. czujników) do magistrali, każde z nich ma własne rezystory i wypadkowa rezystancja jest za mała. Ale tu faktycznie trzeba zajrzeć do schematu czujnika.

Jeśli nie jesteś pewna są dwa wyjścia:

  1. nic nie sprawdzasz, podłączasz rezystory 10kΩ i cieszysz się działaniem
  2. nie podłączasz rezystorów, uruchamiasz skaner I2C (masz w przykładach) i sprawdzasz, czy Arduino widzi czujniki; jeśli nie - podłączasz rezystory i cieszysz się działaniem.

Ja osobiście wybieram wariant 1 - mniej roboty 🙂

Tak przy okazji - z tego, co mi się przewinęło przez ręce tylko jeden moduł (konwerter I2C do LCD) nie miał wbudowanych rezystorów (i na to się kiedyś nabrałem). Oczywiście mówię tu o modułach, a nie "gołych" scalakach.

 

 

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

1 godzinę temu, ethanak napisał:

Zresztą - np. w Pro Mini już takiej funkcji nie ma i trzeba rezystory podłączać samemu.

Jak to? Pro mini nie ma funkcji podciagania rezystorow wewnetrznych  na A4/5?? Czy ja cos zle zrozumialem..

Link do komentarza
Share on other sites

1 godzinę temu, farmaceuta napisał:

Pro mini nie ma funkcji podciagania rezystorow wewnetrznych  na A4/5?

Ma, ale nie włącza ich przy inicjalizacji twi (a przynajmniej w czasach kiedy próbowałem tego użyć nie miał zamiaru włączać, nawet w źródłach to znalazłem, ale teraz jakoś nie widzę - czyżby się to zmieniło?)

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

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.