Skanowanie adresów I2C
Znajdować każde urządzenie na magistrali za pomocą skanera.
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. ✅
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
- Jak I2C komunikuje się za pomocą dwóch przewodów
- Skanowanie adresów I2C
- Jak SPI szybko przesyła dane
- Uruchamianie wielu urządzeń na jednej magistrali