OneWire

Шина 1-Wire предназначена для взаимодействия на больших расстояниях. Устройства подключаются двумя проводами — Vcc и Gnd, при этом передача данных осуществляется по линии Vcc.

Пример работы с шиной и датчиком температуры DS18B20:

// Новый экземпляр шины 1-Wire на пине P3
var oneWire = new OneWire(P3);
 
// Находим подключенные устройства на шине 1-Wire и отображаем массив
var devices = oneWire.search();
print(devices);
 
// Все дальнейшие дейстия осуществляем с первым найденным 
// на шине устройством devices[0];
 
// Сброс, выбор устройства и передача команды на получение температуры
oneWire.reset();
oneWire.select(devices[0]);
oneWire.write(0x44);
 
// Сброс, выбор устройства и передача команды на считывание регистров
oneWire.reset();
oneWire.select(devices[0]);
oneWire.write(0xBE);
 
// Считываем 9-ть регистров  и отображаем его
var regs = oneWire.read(9);
print(regs);

OneWire(pin)

Возвращает объект, для работы с протоколом 1-Wire на пине pin.

OneWire.reset()

Отправляет сигнал сброса на все устройства. При обнаружении хотя бы одного устройства возвращает true, в противном случае — false.

OneWire.search([command])

Осуществляет поиск устройств и возвращает массив, где каждый элемент — 64-х битный адрес ROM. Для поиска используется команда command. Если параметр command не передан или равен 0x00 — используется команда 0xF0.

OneWire.select(rom);

Выбирает устройство для последующего обмена данными. Параметр rom — 64-х битный адрес ROM.

OneWire.write(data, [power])

Передает по протоколу 1-Wire один или несколько (массив) байт. Если необходимо запитать устройства — передается параметр true в качестве значения параметра power.

OneWire.read([count])

Возвращает полученные по протоколу 1-Wire данные. Если параметр count не передан, функция возвращает один байт, иначе — Uint8Array.