Arduino & IoT Academy · Lekcja

Skanowanie adresów I2C

Znajdować każde urządzenie na magistrali za pomocą skanera.

Lekcja 2 z 413 kroki

Skanowanie adresów I2C to bezpłatna lekcja Arduino & IoT Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Arduino & IoT Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Arduino & IoT Academy zawiera 4 lekcji w sumie.

Sprawdź, co jest podłączone

Zanim napiszesz kod dla czujnika, potrzebujesz jego adresu. Szkic skanera I2C znajdzie za Ciebie każde urządzenie na magistrali. 🔍

Dlaczego adresy mają znaczenie

Dwa urządzenia o tym samym adresie będą ze sobą kolidować na magistrali. Wcześniejsze skanowanie pokazuje, co jest podłączone, i ostrzega o konfliktach.

Dokumentacja może wprowadzać w błąd

Dokumentacja techniczna podaje domyślny adres, ale zworki lutownicze mogą go zmienić. Skanowanie za każdym razem podaje rzeczywistą, aktualną wartość.

Jak działa skanowanie

Skaner sprawdza każdy adres od 1 do 127 i kontroluje, które urządzenie odpowiada. Każda odpowiedź oznacza, że pod danym adresem znajduje się działające urządzenie.

Rozpocznij transmisję

Aby sprawdzić jeden adres, rozpocznij komunikat za pomocą beginTransmission. Wskaże ono urządzenie, ale jeszcze nie wyśle rzeczywistych danych.

Wire.beginTransmission(addr);

Zakończ i odczytaj wynik

Wywołanie endTransmission zwraca 0, jeśli urządzenie potwierdziło odbiór. Każda inna liczba oznacza, że żadne urządzenie nie odpowiedziało pod tym adresem.

byte error = Wire.endTransmission();

Przejdź przez adresy

Umieść test w pętli, która przechodzi od 1 do 127, sprawdzając każdy adres raz i odnotowując te, które odpowiadają.

for (byte a = 1; a < 127; a++) {
  Wire.beginTransmission(a);
}

Wyświetl znalezione urządzenia

Gdy urządzenie potwierdzi odbiór, wyświetl jego adres w Serial Monitor, aby można było bezpośrednio skopiować go do właściwego szkicu.

Serial.print("Found device at 0x");
Serial.println(a, HEX);

Odczytuj adresy w systemie szesnastkowym

Adresy I2C są zwykle wyświetlane w systemie szesnastkowym, na przykład 0x27 lub 0x3C. Wyświetlanie za pomocą HEX odpowiada formatowi oczekiwanemu przez biblioteki.

Nie znaleziono urządzeń?

Pusty wynik skanowania zwykle oznacza brak rezystorów podciągających, zamienione miejscami SDA i SCL albo brak zasilania. Sprawdź okablowanie i spróbuj ponownie.

Pierwszy krok za każdym razem

Wyrób sobie nawyk skanowania. Potwierdza ono poprawność okablowania i podaje dokładny adres, zanim napiszesz kod czujnika. 🛠️

Szybkie sprawdzenie

Co oznacza zwrócenie wartości 0 przez endTransmission podczas skanowania?

Podsumowanie

Można już skanować magistralę, przechodzić przez adresy od 1 do 127 i wyświetlać szesnastkowy adres każdego urządzenia przed napisaniem właściwego kodu. ✅

Bezpłatny start

Ucz się C++ dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Skanowanie adresów I2C” jest bezpłatna?

Tak — pełny tekst „Skanowanie adresów I2C” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Arduino & IoT Academy, przejdź na CoddyKit PRO. Kurs Arduino & IoT Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Skanowanie adresów I2C”?

Znajdować każde urządzenie na magistrali za pomocą skanera. Ćwiczysz Arduino & IoT Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Arduino & IoT Academy?

Nie wymagamy żadnego doświadczenia. Arduino & IoT Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Skanowanie adresów I2C”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Arduino & IoT Academy?

Tak. Każda lekcja Arduino & IoT Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Jak I2C komunikuje się za pomocą dwóch przewodów
  2. Skanowanie adresów I2C
  3. Jak SPI szybko przesyła dane
  4. Uruchamianie wielu urządzeń na jednej magistrali
← Powrót do Arduino & IoT Academy