Любая функциональная библиотека DS2482 I2C to 1-Wire bridge?

Пожалуйста, дайте мне знать, если вы знаете какую-либо хорошую библиотеку для DS2482 I2C к 1-проводному мосту. Я пытался использовать https://github.com/cybergibbons/DS2482_OneWire библиотека, но я получил ошибки, когда пытался запустить примеры библиотек (Read_temp_sensors и Scan_1Wire_Bus):

Ошибка для Read_temp_sensors:
Read_temp_sensors:2:10: фатальная ошибка: DallasTemperature.h: Нет такого файла или каталога

Ошибка для Scan_1Wire_Bus:
Scan_1Wire_Bus C:\Users\myuser\Documents\Arduino\libraries\DS2482_OneWire-master\OneWire.cpp: In функция-член 'uint8_t OneWire::waitOnBusy()': C:\Users\myuser\Documents\Arduino\libraries\DS2482_OneWire-master\OneWire.cpp:121:3: ошибка: "delayMicroseconds" не было объявлено в этой области delayMicroseconds(20); ^~~~~~~~~~~~~~~~~ состояние выхода 1 Ошибка компиляции для платы Arduino Nano.

Спасибо

, 👍0

Обсуждение

Пожалуйста, взгляните на эту библиотеку, https://github.com/mikaelpatel/Arduino-OWI... Он обрабатывает как DS2482, так и реализацию GPIO. https://github.com/mikaelpatel/Arduino-OWI/blob/master/examples/DS2482/DS18B20/DS18B20.ino, @Mikael Patel

Документацию можно найти здесь, https://mikaelpatel.github.io/Arduino-OWI/dc/dfe/Hardware_2OWI_8h.html и https://mikaelpatel.github.io/Arduino-TWI/d4/d53/classDS2482.html, @Mikael Patel

Большое спасибо!, @Marian Tudor


1 ответ


0

Я думаю, что для решения первой ошибки вам также нужна эта библиотека, содержащая файл DallasTemperature.h. Файл get включен, но не содержится в библиотеке DS2482. К сожалению, для этого нет ключа во мне в библиотеке. Автор ничего не совершал с 2014 года, поэтому развитие библиотеки можно считать мертвым с этой стороны. Хотя некоторые люди разветвляли библиотеку, чтобы внести небольшие изменения.

И решение второй ошибки описано в этом выпуске библиотеки DS2482 (просто добавьте элемент "Arduino.h" в OneWire.cpp файл).

,

Здравствуйте @chrisl, спасибо за ваш быстрый ответ. Я не знаю, как это реализовать: "// Конструктор без параметров для совместимости с библиотекой OneWire OneWire::OneWire()"... ecc " Я все еще получаю ошибку по второму вопросу: bool isAllZeros(const uint8_t* const блокнот, длина const size_t = 9); ^~~~~~~~~~ Может быть, ты все еще можешь мне помочь..., @Marian Tudor

Пожалуйста, включите свой текущий код в свой вопрос, тогда я смогу проверить это сам, @chrisl

Привет @chrisl. Еще раз спасибо за потраченное время. Во-первых, я просто хочу запустить примеры, включенные в библиотеку. Таким образом, последняя ошибка, представленная ранее, была связана с Scan_1Wire_Bus. Пожалуйста, дайте мне знать, сможете ли вы запустить все файлы ex. Спасибо, @Marian Tudor

Я загрузил библиотеку DS2482, а также библиотеку управления температурой Arduino, как описано в моем ответе. После добавления " включить "Arduino.h" в начало OneWire.cpp Я мог бы успешно скомпилировать пример скетча " Scan_1Wire_Bus.ino` из библиотеки DS2482 для Arduino Nano. Я использую Arduino IDE 1.8.9, @chrisl

Привет @chrisl.К сожалению,для меня это все еще не работает.Если я установлю только 2 библиотеки, которые вы рекомендуете, прежде чем я получу ошибки при использовании #include <DallasTemperature.h>.Если я установлю библиотеку OneWire непосредственно из библиотеки управления, я не буду получать ошибки для включения "DallasTemperature.h": но я получаю новые ошибки, я думаю, потому что обе библиотеки (DS2482/OneWire) имеют одинаковое имя "OneWire ".Из-за этого объект, определенный в DS2482, больше не виден (класс OneWire 'не имеет члена с именем'checkPresence') Пожалуйста, дайте мне знать, если я сейчас делаю что-то не так . Спасибо, @Marian Tudor

Тогда у вас есть 2 варианта: Вы можете удалить библиотеку OneWire и сохранить только библиотеку DS2482. Или вы можете переименовать класс DS2482 OneWire в другое имя. Для второго варианта вам нужно будет переименовать его как в OneWire.h, так и в OneWire.cpp, @chrisl