- Библиотеки
- Операторы
- Sketch
- Управляющие операторы
- Синтаксис
- Арифметические операторы
- Операторы сравнения
- Логические операторы
- Указатели доступа
- Битовые операторы
- Составные операторы
- Данные
- Типы данных
- Преобразование типов данных
- Область видимости переменных и квалификаторы
- Утилиты
- Функции
- Цифровой ввод/вывод
- Аналоговый вход/выход
- Расширенный ввод/вывод
- Время
- Математические функции
- Тригонометрические функции
- Символы
- Случайные числа
- Биты и байты
- Внешние Прерывания
- Прерывания
- Функции передачи данных
- Функции
- Сканер I²C
Сканер I²C
Когда нет возможности найти документацию на микросхему или микросхема имеет адрес, отличный от документации (такое то же бывало), тогда поможет данный скетч. Интерфейс I2C работает только на определенные выводах (в arduino UNO это A4 и A5).
#include <Wire.h>
void setup(){
Wire.begin();
Serial.begin(9600);
while (!Serial);
Serial.println("\n I²C Сканнер");
}
void loop(){
byte error, address;
int nDevices;
Serial.println("Сканирование...");
nDevices = 0;
for(address = 8; address < 127; address++ ){
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0){
Serial.print("Найден девайс I²C с адресом 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4) {
Serial.print("Неизвестная ошибка по адресу 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("Девайсы I²C не найдены\n");
else
Serial.println("Ок\n");
delay(5000);
}
Если адрес устройства найден, в монитор порта выводится список найденных устройств.
Если же нет подключенных устройств, или устройство не работает, или же не правильно подключено, выведет надпись: