вручную. когда вы используете модуль расширения, то вы же не напрямую обращаетесь к пинам.
вместо этого вы посылаете I2C команды в плату-расширитель, которая , соответственно, подключает нужные пины к пинам ардуины.
попробуйте вынескти ваше устройство, которое работает через библиотеку на физические пины, а остальную мелочевку - через экстендер.
тогда вам не нужно ничего менять в библиотеке.
второй вариант (сложнее) состоит в том, чтобы переписать digitalRead и digitalWrite, научив эти две функции работать с пинами через экстендер.
третий вариант состоит в том, чтобы исправить библиотеку: найти в ней все вызовы digitalRead и digitalWrite и исправить код так, чтобы вместо прямой записи\чтения вызывались ваши digitalReadEx() и digitalWriteEx(). Обе эти функции вам придется написать: код в них простой - если обращение к физическому пину, то просто вызываем digitalRead/digitalWrite. Если пин “виртуальный“ (за платой-расширителем), тогда отсылаем I2C команды нужные.
Если бы это делал я, то я бы использовал второй вариант, заменив системные digitalRead и digitalWrite на свои, которые умеют работать через экстендер: это автоматически сделает ваши “внешние“ пины доступными всем библиотекам. Добавил бы пины, скажем #100, 101, 102, 103…. И внутри digitalRead()/digitalWrite() смотрел бы к какому пину обращаются. Если <100, то по-старинке, а если больше 99, то через экстендер.
@Andrey_dv, я тут посмотрел Ваше “досье”. Вы на форуме три года. За это время написали 28 сообщений. Из них ни одного по тематике форума – все 28 это “воспитание старожилов”. Вы не задали ни одного вопроса, никому ни на один вопрос не ответили, не привели описание своей разработки, не обсудили разработки других – Вы только воспитываете старожилов! Вы по жизни воспитатель? Или что Вы здесь делаете? Пытаетесь улучшить мир за счёт воспитания нас – грешных?
Я задал Вам вопрос «Что Вы здесь делаете?» и надеялся услышать такой ответ, которому Вы учили всех нас:
Но, вместо этого, получил открытое хамство. Ну, видать, «такой Вы Сухов», и такова цена всему Вашему морализаторству. В общем, я снимаю свой вопрос. Ответ мне больше не нужен. Мне всё равно, чем Вы тут занимаетесь.
Я теряюсь.
Где ещё можно найти форум, в котором без тени сомнения спрашивают: “Что Вы здесь делаете?”
Тот, кто желает получить на это ответ (а не быть посланным), должен сначала представиться. Тем более, что ваш аватар может ввести собеседника в искушение.
Представляются так: “С вами говорит лейтенант полиции нравов Иванов”. Или - “Я старший по подъезду Петров. Что вы здесь делаете?”.
Попробуйте, у вас может получиться.
И тогда состоится содержательная беседа.
честно говоря вы не похожи на хищника)))
и в вашем случае наверное делать все возможное, что бы вас не съели))))
это не только для форума, но вообще, для реала в том числе, но может мне кажется…
в любом случае не принимайте слова близко, на заборе тоже много чего пишут)))
Конкретно - SIM800 - подключен к пинам МК, а в экстендере из библиотечных остался только DHT11, вот эту библиотеку и поправил. Правда я сделал канонически дурное решение: передал в библиотеку объект расширителя и все вызовы dR/dW вызывал на этом объекте. Знаю, что это нарушение парадигмы, но поджимало время, поэтому пришлось сделать “костыли”.