Arduino nano не работает i2c

Arduino.ru

LCD I2C arduino не могу подключить

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

попробовать опредилить адрес заливаю его а мне только показывает Scanning. и дальше ничего. Что подскажете сделать?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

а почему дисплей подключен сразу к 3,3 В и к 5 В?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

там просто плохо видно он подключен к 5 и к земле

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Все вы правильно делаете. Ищите контакт со стороны UNO, попробуйте разъемы SCL и SDA на UNO рядом с кварцем.

Можете рассмотреть чип на переходнике. Маркировка PCF8574T даст I2C адрес по умолчанию 0x27, PCF8574AT — адрес 0x3F.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Я это все уже пробовал к сожалению ничего не помогло, а маркировка ida8574p n2k0h5

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

сканер I2C какой адрес выдает?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

в том и дело что сканер ничего не выдает пишет что началось сканирование и все ничего более не происходит

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Код сканера корректно обрабатывает ситуации, когда вообще никакое устройство не подключено к I2C. Был неправ, дело не в контакте. Что-то у вас с программной средой.

Маркировкой чипа адаптера сильно озадачили. Но дело все равно не в этом.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

и что посоветуете сделать? уже куча всего перепробовал

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

прописать ноги Ардуины как входы, дальше сделать пустой бесконеный цикл и посмотреть тестером наряжение на ногах, т.е. проверка на наличие подтягивающих резисторов к +5В

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Ну подсказал же уже. Железо тут вообще ни при чем, этот код работает на пустой плате. Далек от среды ардуино, но специально запустил приведенный вами код на такой же плате, что и на фотографии. Библиотека Wire работает хорошо и не зависает, мне не удалось найти в ее коде возможные причины зависания при неподключенном устройстве.

Если правильно вас понял, вы видите в окне терминала слово Scanning. и на этом все заканчивается. Но чудес не бывает (только если очень редко). Из цикла for вы не выходите, зависнуть там можно только при входе в Wire (ну или в twi.h, которая под ней), никто из них не зависает (у меня, специально мучил).

Какой вывод? Разбирайтесь со средой, с ее установками или что там. Вообще что-нибудь, не требующее перефирии, запускается?

И вам спасибо. Благодаря вам посмотрел библиотеки, twi.h забавно написана, хорошо.

Источник

Arduino.ru

Подключение по I2C почему зависает?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Подключил к Arduino NANO BMP280, RTS_DS3231 и Oled SD1306.

Проверил, всё по отдельности — работает. Скомпоновал код на все 3 модуля, Ардуино виснет на процедуре Setup при инициализации 3 модуля.

Пробовал различные комбинации кода для работы по парно, т.е. часы с экраном, экран с BMP, BMP с часами. Попарно тоже все работает, а все вместе зависает на инициализации любого 3-го модуля.

Толи питания не хватает, толи нужно ставить какие-то подтягивающие резисторы?

Это мои первые шаги в освоении ардуино, так что не судите строго.

Схема подключения:

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

в каких то девайсах мне приходилось инициализацию дисплея вынести вперед

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

в каких то девайсах мне приходилось инициализацию дисплея вынести вперед

Неа, не помогает. Кстати, зависает именно на модуле экрана.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Резисторы подтяжки проверь.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Я не ставил ни одного резистора. Все как на схеме. Я и обратился сюда, чтоб подсказали, куда их ставить?

Какие номиналом и самое главное понять почему?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Да вроде хватает. Компилятор выдает:

Кстати, отсюда, попутно, еще один вопрос — это, что так мало памяти?! я еще планировал в этот проект подключить УЗ датчик, модуль SD карты и GSM модуль, а уже 90% памяти занято

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Это называется проектированием. Рисуем схему с модулями. Пишем сколько кому надо тока, памяти и прочих ресурсов. Суммируем. Выбираем МК, который справится с задачей. С Вашей задачей нана не справится. Нужен контроллер мощнее. Или урезать хотелки. Например взять экран не так сильно жрущий память.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Это называется проектированием. Рисуем схему с модулями. Пишем сколько кому надо тока, памяти и прочих ресурсов. Суммируем. Выбираем МК, который справится с задачей.

Блин, ну понятно, что проектировать надо. Это первые шаги.

По току то можно прикинуть:

BMP280 — 2,7мкА, RTS_DS3231 -250мкА, Oled SSD1306 — 16мА. Арпдуино нано выдает 40мА, должно хватать. По ходу прикрутки остальных модулей, проблему можно решить с внешним питанием.

А вот как быть с расчетом памяти заранее, не понимаю? Просветите.

Да я понимаю, но принять не могу. Ну, не мегу же ставить! Или придется 2-3 нано использовать?

Может я ошибаюсь, но в сравнении с BMP280 и часиками, экран памяти хавает, не так уж и сильно. Без него 58% памяти, т.е. 32% а 58% другие два датчика! Я в шоке конечно пребываю, и все это можно сказать только примеры использование. А когда начнешь еще и свой код ваять, там вообще ничего не остается. Вроде всякие проекты в интернете видел, как они все это умещают в памяти?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Используют только то что необходимо программе, а не сыпят всё в подряд что есть в библиотеках. Компилятор конечно помогает что то лишнее выкинуть но много и остается. Это тоже к проектированию относится — составить необходимый минимум подпрограмм. Проще конечно взять библиотеку и не думая впихнуть. Оно заработает. Однако на форуме много тем типа считываем данные без библиотеки и т.п. Есть тема про 13 тиньку там памяти мало и нужно как то впихивать программы. Страниц в теме много, но если бегло почитать, то можно найти много советов как уменьшить размер программы.

P.S. Компилировал — Скетч использует 17254 байт (56%) памяти устройства. Всего доступно 30720 байт.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Используют только то что необходимо программе, а не сыпят всё в подряд что есть в библиотеках. Компилятор конечно помогает что то лишнее выкинуть но много и остается. Это тоже к проектированию относится — составить необходимый минимум подпрограмм. Проще конечно взять библиотеку и не думая впихнуть. Оно заработает. Однако на форуме много тем типа считываем данные без библиотеки и т.п. Есть тема про 13 тиньку там памяти мало и нужно как то впихивать программы. Страниц в теме много, но если бегло почитать, то можно найти много советов как уменьшить размер программы.

Благодарю за ссылку, да, есть, что там по изучать.

Все таки хотелось вернуться к главному вопросу, почему не работает 3 модуля вместе и как это исправить?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Чем спорить, можете принять или не можете, лучше поставьте резисторы как Вам сказали (два штуки по 4,7к от пинов A4 и A5 ардуины на питание)

и вставьте после строки №24

Отпишитесь, что получилось с обязательным выкладыванием актуальной схемы и актуального скетча.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

float, Serial, шрифты для OLED — основные загрязнители. От первого не избавитесь в ближайшем будущем, от второго — легко, для экрана взять u2glib — такие рекомендации можно дать.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Я не ставил ни одного резистора. Все как на схеме.

На схеме они уже есть. Причем, по два экземпляра каждого, потому что они имеются в каждом из модулей (в этом и есть опасность сборки схему из готовых модулей, а не из деталей россыпью). Вам нужно проверить, что при параллельном включении итоговое сопротивление не окажется меньше 2 кОм.

А вот как быть с расчетом памяти заранее, не понимаю? Просветите.

Что значит «заранее»?

Переменная типа char занимает 1 байт, типа int — два байта, типа long или flot — 4 байта. Если массив на 100 элементов — в 100 раз больше. А дальше — просто сложение. Арифметику в школе изучали?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

почему не работает 3 модуля вместе и как это исправить?

На это может быть 1001 причина.

Как исправить — зависит от причины.

Другими словами, прежде, чем пытаться лечить, следует поставить диагноз.

Диагностику следует начинать с поверки, что разные библиотеки на «дерутся» за одни и те же ресурсы. В качестве ресурсов следует рассматривать оперативную и постоянную память, пины контроллера, таймеры и прерывания. Ну и еще — время: в программе, которая работает с несколькими разными устройствами, как правило, не должно быть задержек типа delay().

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Чем спорить, можете принять или не можете, лучше поставьте резисторы как Вам сказали (два штуки по 4,7к от пинов A4 и A5 ардуины на питание)

и вставьте после строки №24

Отпишитесь, что получилось с обязательным выкладыванием актуальной схемы и актуального скетча.

Отписываюсь. Кошмар какой то. Ардуино — это какой то бред недоделанный. Я думал все гораздо проще будет. Подключил модуль, подключил библиотеку и работай. А тут такое мракобесие. Как уже только не переделывал и схему и код, но толи лыжи не едут, толи китайцы враги русского народа.

Подключил в эту схему подтягивающие резисторы, как и советовал на 4,7кОм
, добавил делей на 24 строчке кода. Запустил, не работает.

Ну ладно, думаю. начнем все сначала, как будет работать все по отдельности с этими резюками. Начал с датчика температуры. Оп, не работает. Колдовал и так и сяк, убрал резюки. Не работает. Пересобрал всю схему. Подключил только BMP. Танцы с бубном, все заработал. Подтянул SDA и SDL резисторами. Работает, изменений нет. Добавляю модуль Oled. Работает.

Добавляю часы. Програмно отключаю дисплей. Все работает.

Отключаю БМП, подключаю дисплей и часы. Работает, но перестал работать *.print ни в сом порт, ни в экран, причем как то выборочно, как это возможно.

Хрен с этими датчиками, там да ну может конфликтовать библиотеки, какие ни будь помехи, но когда один код глючит, я всю голову сломал. Почему один Serial.print(«get_time»); работает, а следом за ним Serial.print(timeT); не работает

Источник

Решаем проблему не рабочей I2C связи для LCD 1602

Дисплеи Winstar на контроллере hd44780 довольно популярны, но их стандартное подключение к контроллеру по 16-и линиям не совсем удобно — масса проводов занимает драгоценные пины.

В данной ситуации есть выход — модуль I2C переходника. Подключается он всего по двум проводам. Но есть небольшие проблемы.

Сначала нужно скачать и установить библиотеку для работы с I2C дисплеем LiquidCrystal_I2C. Далее нужно задать адрес дисплея, указывается он в этой строке:

Адрес 0x27 стандартен для большинства модулей, но бывают и исключения из этого правила. Иногда он определяется как стандартный, но дисплей с ним не работает. Проверить адрес можно довольно просто, загрузив нижеприведенную программу (I2Cscanner) в плату Arduino:

Далее нужно открыть Serial Monitor и посмотреть считанный адрес. Но, как и говорилось ранее, иногда модуль по какой-то причине не работает с адресом 0x27. Что же делать?

В таком случае на плате модуля I2C существуют перемычки для переключения на другой адрес. На рисунке они обозначены как A0, A1, A2:

Замыкая какую либо из них, мы получаем новый адрес и все начинает работать. Например, замкнем A0. Загрузим скетч сканера на плату получим следующее:

Прописываем адрес в программу загружаем и видим, что всё работает нормально:

Источник

Ардуино нано не работает i2c

Ардуино нано не работает i2c

Maybe it is because many of the pinout diagrams for the Nano have SCL and SDA on the wrong pins.

You probably think (as I did and as the guys laying out the pinout diagrams) that these would be on digital pins, but they are not. They are on analog pins.

Once you wire it up correctly, this arduino I2C scanner will let you know you have proper connectivity and the address for the device:

Jump to Pinout for:

Here is a correct Nano pin out diagram:

And while I’m at it, here is one for an Uno:

Share this:

Like this:

28 Responses to Can’t Get I2C to Work on an Arduino Nano? (Pinout Diagrams)

Thanks for posting the pinouts! I was going to tediously go through the whole thing and map them out myself but no need now.

Saved on the hard drive for later reference

These pictures are awesome – I wish you had provided a key as to what the labels means. I’ve deduced most of them on the Nano (EG. wiggly line means PWM enabled on one of three timers and pale-blue is a type of serial IO) but others (EG. Yellow circle and white square) ellude me

A more detailed Nano pin out with a legend can be seen here: http://pighixxx.com/nanopdf.pdf

That’s fantastic! Many thanks.

Awesome thanks mate and keep up the excellent work! – saving us lots of frustration 🙂

This is amazing ! Beautifull & usefull pinout diagrams .

what software it was used to do all of them, by example Arduino Mega’s?
you know it?
I want to do it myself 🙂
thanks!

Good for quick reference! 😉

Great job. very useful. LIKE !!

WOW, that is what I am looking for! Awesome overview! THANKS!

This helped me out. Thanks a lot

I think you are misreading. The arduino doc you mention indicates interrupts on pins 2, 3, 18, 19, 20, 21.

If you look at the IDE pins in the diagram (kind of a pink color), you’ll see interrupts 0-5 are assigned to pins 2, 3, 18, 19, 20, 21.

If that is wrong, please explain. Thanks.

Hi Dan,
I checked what ARD2560 said about the interrupt pins and he appears to be correct. You have them marked in the wrong order. It should be:
Pin2 – Int0
Pin3 – Int1
Pin18 – Int5
Pin19 – Int4
Pin20 – Int3
Pin21 – Int2

OK, I at least see the original complaint now – the reference you are looking at says Pin 2 should be interrupt 0. I don’t have time to try this myself, so I tried to find additional sources that agree. Unfortunately I can only find the original diagram I posted, the arduino.cc reference you mention, and this pin mapping diagram (https://www.arduino.cc/en/Hacking/PinMapping2560) which agrees with the picture not the reference. Have you tried using interrupt 0 on Pin2 on a mega and can verify the reference is correct and not the diagram or pin mapping diagram?

It’s not my diagram so I can’t (well won’t) change it, but if it is correct I will stick some commentary before it.

Источник

Arduino.ru

Подключение по I2C почему зависает?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Подключил к Arduino NANO BMP280, RTS_DS3231 и Oled SD1306.

Проверил, всё по отдельности — работает. Скомпоновал код на все 3 модуля, Ардуино виснет на процедуре Setup при инициализации 3 модуля.

Пробовал различные комбинации кода для работы по парно, т.е. часы с экраном, экран с BMP, BMP с часами. Попарно тоже все работает, а все вместе зависает на инициализации любого 3-го модуля.

Толи питания не хватает, толи нужно ставить какие-то подтягивающие резисторы?

Это мои первые шаги в освоении ардуино, так что не судите строго.

Схема подключения:

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

в каких то девайсах мне приходилось инициализацию дисплея вынести вперед

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

в каких то девайсах мне приходилось инициализацию дисплея вынести вперед

Неа, не помогает. Кстати, зависает именно на модуле экрана.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Резисторы подтяжки проверь.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Я не ставил ни одного резистора. Все как на схеме. Я и обратился сюда, чтоб подсказали, куда их ставить?

Какие номиналом и самое главное понять почему?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Да вроде хватает. Компилятор выдает:

Кстати, отсюда, попутно, еще один вопрос — это, что так мало памяти?! я еще планировал в этот проект подключить УЗ датчик, модуль SD карты и GSM модуль, а уже 90% памяти занято

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Это называется проектированием. Рисуем схему с модулями. Пишем сколько кому надо тока, памяти и прочих ресурсов. Суммируем. Выбираем МК, который справится с задачей. С Вашей задачей нана не справится. Нужен контроллер мощнее. Или урезать хотелки. Например взять экран не так сильно жрущий память.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Это называется проектированием. Рисуем схему с модулями. Пишем сколько кому надо тока, памяти и прочих ресурсов. Суммируем. Выбираем МК, который справится с задачей.

Блин, ну понятно, что проектировать надо. Это первые шаги.

По току то можно прикинуть:

BMP280 — 2,7мкА, RTS_DS3231 -250мкА, Oled SSD1306 — 16мА. Арпдуино нано выдает 40мА, должно хватать. По ходу прикрутки остальных модулей, проблему можно решить с внешним питанием.

А вот как быть с расчетом памяти заранее, не понимаю? Просветите.

Да я понимаю, но принять не могу. Ну, не мегу же ставить! Или придется 2-3 нано использовать?

Может я ошибаюсь, но в сравнении с BMP280 и часиками, экран памяти хавает, не так уж и сильно. Без него 58% памяти, т.е. 32% а 58% другие два датчика! Я в шоке конечно пребываю, и все это можно сказать только примеры использование. А когда начнешь еще и свой код ваять, там вообще ничего не остается. Вроде всякие проекты в интернете видел, как они все это умещают в памяти?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Используют только то что необходимо программе, а не сыпят всё в подряд что есть в библиотеках. Компилятор конечно помогает что то лишнее выкинуть но много и остается. Это тоже к проектированию относится — составить необходимый минимум подпрограмм. Проще конечно взять библиотеку и не думая впихнуть. Оно заработает. Однако на форуме много тем типа считываем данные без библиотеки и т.п. Есть тема про 13 тиньку там памяти мало и нужно как то впихивать программы. Страниц в теме много, но если бегло почитать, то можно найти много советов как уменьшить размер программы.

P.S. Компилировал — Скетч использует 17254 байт (56%) памяти устройства. Всего доступно 30720 байт.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Используют только то что необходимо программе, а не сыпят всё в подряд что есть в библиотеках. Компилятор конечно помогает что то лишнее выкинуть но много и остается. Это тоже к проектированию относится — составить необходимый минимум подпрограмм. Проще конечно взять библиотеку и не думая впихнуть. Оно заработает. Однако на форуме много тем типа считываем данные без библиотеки и т.п. Есть тема про 13 тиньку там памяти мало и нужно как то впихивать программы. Страниц в теме много, но если бегло почитать, то можно найти много советов как уменьшить размер программы.

Благодарю за ссылку, да, есть, что там по изучать.

Все таки хотелось вернуться к главному вопросу, почему не работает 3 модуля вместе и как это исправить?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Чем спорить, можете принять или не можете, лучше поставьте резисторы как Вам сказали (два штуки по 4,7к от пинов A4 и A5 ардуины на питание)

и вставьте после строки №24

Отпишитесь, что получилось с обязательным выкладыванием актуальной схемы и актуального скетча.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

float, Serial, шрифты для OLED — основные загрязнители. От первого не избавитесь в ближайшем будущем, от второго — легко, для экрана взять u2glib — такие рекомендации можно дать.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Я не ставил ни одного резистора. Все как на схеме.

На схеме они уже есть. Причем, по два экземпляра каждого, потому что они имеются в каждом из модулей (в этом и есть опасность сборки схему из готовых модулей, а не из деталей россыпью). Вам нужно проверить, что при параллельном включении итоговое сопротивление не окажется меньше 2 кОм.

А вот как быть с расчетом памяти заранее, не понимаю? Просветите.

Что значит «заранее»?

Переменная типа char занимает 1 байт, типа int — два байта, типа long или flot — 4 байта. Если массив на 100 элементов — в 100 раз больше. А дальше — просто сложение. Арифметику в школе изучали?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

почему не работает 3 модуля вместе и как это исправить?

На это может быть 1001 причина.

Как исправить — зависит от причины.

Другими словами, прежде, чем пытаться лечить, следует поставить диагноз.

Диагностику следует начинать с поверки, что разные библиотеки на «дерутся» за одни и те же ресурсы. В качестве ресурсов следует рассматривать оперативную и постоянную память, пины контроллера, таймеры и прерывания. Ну и еще — время: в программе, которая работает с несколькими разными устройствами, как правило, не должно быть задержек типа delay().

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Чем спорить, можете принять или не можете, лучше поставьте резисторы как Вам сказали (два штуки по 4,7к от пинов A4 и A5 ардуины на питание)

и вставьте после строки №24

Отпишитесь, что получилось с обязательным выкладыванием актуальной схемы и актуального скетча.

Отписываюсь. Кошмар какой то. Ардуино — это какой то бред недоделанный. Я думал все гораздо проще будет. Подключил модуль, подключил библиотеку и работай. А тут такое мракобесие. Как уже только не переделывал и схему и код, но толи лыжи не едут, толи китайцы враги русского народа.

Подключил в эту схему подтягивающие резисторы, как и советовал на 4,7кОм
, добавил делей на 24 строчке кода. Запустил, не работает.

Ну ладно, думаю. начнем все сначала, как будет работать все по отдельности с этими резюками. Начал с датчика температуры. Оп, не работает. Колдовал и так и сяк, убрал резюки. Не работает. Пересобрал всю схему. Подключил только BMP. Танцы с бубном, все заработал. Подтянул SDA и SDL резисторами. Работает, изменений нет. Добавляю модуль Oled. Работает.

Добавляю часы. Програмно отключаю дисплей. Все работает.

Отключаю БМП, подключаю дисплей и часы. Работает, но перестал работать *.print ни в сом порт, ни в экран, причем как то выборочно, как это возможно.

Хрен с этими датчиками, там да ну может конфликтовать библиотеки, какие ни будь помехи, но когда один код глючит, я всю голову сломал. Почему один Serial.print(«get_time»); работает, а следом за ним Serial.print(timeT); не работает

Источник

Решаем проблему не рабочей I2C связи для LCD 1602

Дисплеи Winstar на контроллере hd44780 довольно популярны, но их стандартное подключение к контроллеру по 16-и линиям не совсем удобно — масса проводов занимает драгоценные пины.

В данной ситуации есть выход — модуль I2C переходника. Подключается он всего по двум проводам. Но есть небольшие проблемы.

Сначала нужно скачать и установить библиотеку для работы с I2C дисплеем LiquidCrystal_I2C. Далее нужно задать адрес дисплея, указывается он в этой строке:

Адрес 0x27 стандартен для большинства модулей, но бывают и исключения из этого правила. Иногда он определяется как стандартный, но дисплей с ним не работает. Проверить адрес можно довольно просто, загрузив нижеприведенную программу (I2Cscanner) в плату Arduino:

Далее нужно открыть Serial Monitor и посмотреть считанный адрес. Но, как и говорилось ранее, иногда модуль по какой-то причине не работает с адресом 0x27. Что же делать?

В таком случае на плате модуля I2C существуют перемычки для переключения на другой адрес. На рисунке они обозначены как A0, A1, A2:

Замыкая какую либо из них, мы получаем новый адрес и все начинает работать. Например, замкнем A0. Загрузим скетч сканера на плату получим следующее:

Прописываем адрес в программу загружаем и видим, что всё работает нормально:

Источник

Adblock
detector