- Библиотеки
- Операторы
- Sketch
- Управляющие операторы
- Синтаксис
- Арифметические операторы
- Операторы сравнения
- Логические операторы
- Указатели доступа
- Битовые операторы
- Составные операторы
- Данные
- Типы данных
- Преобразование типов данных
- Область видимости переменных и квалификаторы
- Утилиты
- Функции
- Цифровой ввод/вывод
- Аналоговый вход/выход
- Расширенный ввод/вывод
- Время
- Математические функции
- Тригонометрические функции
- Символы
- Случайные числа
- Биты и байты
- Внешние Прерывания
- Прерывания
- Функции передачи данных
- Функции
- Сканер I²C
Сканер I²C
Когда нет возможности найти документацию на микросхему или микросхема имеет адрес, отличный от документации (такое то же бывало), тогда поможет данный скетч. Интерфейс I²C работает только на определенные выводах (в 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);
}
Если адрес устройства найден, в монитор порта выводится список найденных устройств.
Если же нет подключенных устройств, или устройство не работает, или же не правильно подключено, выведет надпись: