Сканирование адресов I2C
Найдите все устройства на шине с помощью сканера.
«Сканирование адресов I2C» — бесплатный урок Arduino & IoT Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Arduino & IoT Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Arduino & IoT Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
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. ✅
Часто задаваемые вопросы
Урок «Сканирование адресов I2C» бесплатный?
Да — полный текст урока «Сканирование адресов I2C» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Arduino & IoT Academy, подпишись на CoddyKit PRO. Курс Arduino & IoT Academy содержит 4 уроков всего.
Чему я научусь в уроке «Сканирование адресов I2C»?
Найдите все устройства на шине с помощью сканера. Ты практикуешь Arduino & IoT Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Arduino & IoT Academy?
Предыдущий опыт не требуется. Arduino & IoT Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Сканирование адресов I2C»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Arduino & IoT Academy?
Да. Каждый урок Arduino & IoT Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Как I2C обменивается данными по двум проводам
- Сканирование адресов I2C
- Как SPI быстро передаёт данные
- Запуск нескольких устройств на одной шине