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.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Find What Is Connected
Before coding a sensor you need its address. An I2C scanner sketch finds every device on the bus for you. 🔍
Why Addresses Matter
Two devices with the same address will clash on the bus. Scanning first tells you what is there and warns of conflicts.
The Datasheet Can Lie
A datasheet lists a default address, but solder jumpers can change it. Scanning gives you the real, current value every time.
How a Scan Works
The scanner tries every address from 1 to 127 and checks who answers. Each reply means a live device sits at that spot.
Start a Transmission
To test one address you open a message with beginTransmission. It targets the device without sending real data yet.
Wire.beginTransmission(addr);End and Read the Result
Calling endTransmission returns 0 if a device acknowledged. Any other number means nobody answered at that address.
byte error = Wire.endTransmission();Loop Through Addresses
Wrap the test in a loop that walks from 1 to 127, checking each address once and noting which ones reply.
for (byte a = 1; a < 127; a++) {
Wire.beginTransmission(a);
}Print Found Devices
When a device acknowledges, print its address to the Serial Monitor so you can copy it straight into your real sketch.
Serial.print("Found device at 0x");
Serial.println(a, HEX);Read Addresses in Hex
I2C addresses are usually shown in hex, like 0x27 or 0x3C. Printing with HEX matches the format libraries expect.
No Devices Found?
An empty scan usually means missing pull-ups, swapped SDA and SCL, or no power. Check the wiring and try again.
Your First Step Every Time
Make scanning a habit. It confirms wiring works and hands you the exact address before you write any sensor code. 🛠️
Quick Check
What does endTransmission returning 0 mean during a scan?
Recap
You can now scan the bus, walk addresses 1 to 127, and print the hex address of every device before writing real code. ✅
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