Сборка схемы из модулей

Сборка схемы из модулей Инструменты
Содержание
  1. Как использовать SPI на микроконтроллере STM32
  2. Подготовка к проекту
  3. Использование LCD дисплея с Arduino
  4. Программирование на языке C++
  5. Важная информация
  6. Персональный опыт
  7. ВПЧ и его лечение
  8. Процедуры и результаты
  9. Результаты и рекомендации
  10. Сборка схемы из модулей
  11. Электронный модуль
  12. Макетная плата
  13. Макетные платы: удобный способ создания электронных макетов
  14. “Простые” модули
  15. Аналоговые
  16. Смешанные
  17. KY-модули
  18. Пины модулей
  19. Описание модулей
  20. Интерфейсные модули
  21. Примеры интерфейсных модулей
  22. Подключение
  23. Распиновка Arduino Nano и Wemos Mini
  24. UART
  25. SPI
  26. Полезные страницы
  27. Выводы
  28. Расположение пинов SPI на Arduino Uno
  29. Пример кода для Arduino Uno (Slave)
  30. Библиотека LiquidCrystal_I2C.h для LCD дисплея
  31. Скетч. Описание библиотеки LiquidCrystal_I2C.h
  32. Расположение пинов SPI на STM32 Blue Pill
  33. Как подключить к Arduino LCD без I2C
  34. Скетч. Ардуино и LCD 1602 без I2C модуля
  35. Скетч для жк дисплея QAPASS 1602 I2C
  36. Скетч. Подключение нескольких LCD 1602 к шине i2c
  37. Пояснения к коду
  38. Схема подключения
  39. Пример кода для STM32F103C8T6 (Master)

Как использовать SPI на микроконтроллере STM32

Изображение

В этом уроке мы будем использовать микроконтроллер STM32F103C8 для обмена данными с платой Arduino через интерфейс SPI. Мы настроим Arduino UNO в качестве ведомого устройства (Slave), а STM32F103C8 будет выступать в качестве управляющего устройства (Master).

Подготовка к проекту

К каждому контроллеру мы подключим дисплеи 16X2 LCD. Кроме того, к выводам PA0 на STM32 и A0 на Arduino будут подключены два потенциометра для определения значений в диапазоне от 0 до 255. Эти значения будут передаваться от мастера к слейву и обратно при изменении положения потенциометра.

Использование LCD дисплея с Arduino

LCD дисплей Arduino позволяет визуально отображать данные с датчиков. Мы расскажем, как правильно подключить модуль QAPASS LCD к Arduino по шине I2C и рассмотрим основные команды инициализации и управления LCD 1602.

Читайте также:  Очки для пайки с подсветкой и дополнительными линзами

Программирование на языке C++

Также мы рассмотрим различные функции в языке программирования C++, для вывода текстовой информации на дисплее, который часто требуется использовать в проектах Arduino.

Важная информация

Пожалуйста, обратите внимание на то, что некоторая информация предоставлена внутри текста фото.

Персональный опыт

В феврале 2022 года мне было предложено сдать анализы на ВПЧ, и на один из типов был получен положительный результат. Столкнувшись с этим, начала искать информацию о возможных методах лечения.

На основе своего опыта и поисков в интернете, я решила попробовать препарат Изопринозин для лечения ВПЧ. После применения препарата и последующего анализа, обнаружилось, что мой вирусный тип изменился.

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

## Использование SPI на микроконтроллере STM32

![Изображение](https://voltiq.ru/wp-content/uploads/how-to-use-spi-on-stm32-mcu-03.jpg)  

В этом уроке мы будем использовать микроконтроллер STM32F103C8 для обмена данными с платой Arduino через интерфейс SPI. Мы настроим Arduino UNO в качестве ведомого устройства (Slave), а STM32F103C8 будет выступать в качестве управляющего устройства (Master). 

## Подготовка к проекту

К каждому контроллеру мы подключим дисплеи 16X2 LCD. Кроме того, к выводам PA0 на STM32 и A0 на Arduino будут подключены два потенциометра для определения значений в диапазоне от 0 до 255. Эти значения будут передаваться от мастера к слейву и обратно при изменении положения потенциометра.

## Использование LCD дисплея с Arduino

LCD дисплей Arduino позволяет визуально отображать данные с датчиков. Мы расскажем, как правильно подключить модуль QAPASS LCD к Arduino по шине I2C и рассмотрим основные команды инициализации и управления LCD 1602. 

## Программирование на языке C++

Также мы рассмотрим различные функции в языке программирования C++, для вывода текстовой информации на дисплее, который часто требуется использовать в проектах Arduino.

## Важная информация

Пожалуйста, обратите внимание на то, что некоторая информация предоставлена внутри текста фото.

## Персональный опыт

В феврале 2022 года мне было предложено сдать анализы на ВПЧ, и на один из типов был получен положительный результат. Столкнувшись с этим, начала искать информацию о возможных методах лечения. 

На основе своего опыта и поисков в интернете, я решила попробовать препарат Изопринозин для лечения ВПЧ. После применения препарата и последующего анализа, обнаружилось, что мой вирусный тип изменился. 

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

Я приуныла, через несколько месяцев чтения отзывов нашла другого врача и она рассказала мне интересную инфу.

ВПЧ и его лечение

ВПЧ любит базироваться на шейке матки, там материал ей наиболее подходящий. Нужно сделать видеокольпоскопию с окраской шейки йодом, увидеть йоднегативную зону — в ней ВПЧ. Далее, если зона небольшая, то биопсией под местной анестезией удаляется этот участок, дополнительно отправляется на анализ клеток. Через месяц — осмотр заживления шейки. После биопсии через 3 месяца — тест на ВПЧ, далее повторные через 6 месяцев.

Процедуры и результаты

Сделала видеокольпоскопию. Вот так она выглядит:

Сборка схемы из модулей

Моя влагалищна изнутри.

На нижней правой фотке видно белую область, в ней ВПЧ. Треугольная штука на левых фотках справа от шейки матки — это не кандиломмы, а остатки плевы (это я уточнила у гинеколога). Кандиломм уже не было. То, что картинки разных цветов — это фото через разные цветные стекла. По самой процедуре — не болезненна абсолютно, сидишь в кресле с зеркалом, снаружи штука как телескоп, которая транслирует твою влагалищну на монитор сбоку.

Через неделю записалась на биопсию. Вот она уже была кошмарной, проходила в операционной и хоть и ставили анестезию, но электрогоагуляция была очень болезненной, длилась секунд 5. Удалили участок 0,5 кв.см с глубиной 0,5 см. После неё — день с марлевым тампоном, месяц без секса, спорта и сауны. Негативных последствий не было, ощущений тоже.

Результаты и рекомендации

После этой манипуляции прошло уже 1,5 года — все остальные тесты на ВПЧ (теперь сдаю на 14 типов без типирования) были отрицательными, последний сдавала 2 недели назад.

В инете как-то маловато инфы, а если и есть фото шейки матки с ВПЧ — то там аж страшно становится. Поэтому решила написать этот пост, может кому-то и пригодится. Что делать, если вдруг биопсия покажет атипичные клетки или после биопсии ВПЧ покажет + — я не уточнила (или забыла). Почти все лечение впихнула в ДМС, но даже если делать платно, то цены: прием врача 2к, видеокольпоскопия 2,5к, биопсия 2-3к, тесты на ВПЧ 2к + 2к+ 1к+1к. Итого: 2к+2,5к+3к+6к=13,5к. (изопринозин учитывать в расходах не будем 🙂

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

Сборка схемы из модулей

Сборка схемы из модулей

Электронный модуль

Модуль – это специальная удобная плата на базе какой-то микросхемы или электронного компонента. Модуль может быть датчиком, драйвером, интерфейсом, памятью, дисплеем и так далее. Зачем использовать модуль, почему не взять конкретный компонент? Если вы хотите делать электронное устройство на печатной плате – конечно же лучше собирать его из голых компонентов, а не из модулей, потому что в большинстве случаев это выйдет дешевле, а также изготовление такой платы можно заказать вместе со сборкой на производстве (например на JLCPCB). Но мы с вами собираемся сначала научиться программировать, поэтому модули имеют неоспоримые преимущества.

Макетная плата

Макетные платы: удобный способ создания электронных макетов

Макетная плата, она же макетка или брэдборд (breadboard) – самый удобный способ создания электронных макетов. Отверстия расположены со стандартным шагом 2.54мм, внутри каждого – пружинная клемма. Это позволяет вставлять в плату любые Arduino-модули, а также микросхемы в DIP корпусах.

Для соединения отверстий в пределах макетки используются провода штырёк-штырёк, рекомендую вариант с цилиндрическими штекерами (я пользуюсь одним комплектом на протяжении уже 5-ти лет). Также существуют провода с квадратными штекерами, они есть в вариантах гнездо-гнездо, гнездо-штырёк и штырёк-штырёк. Эти провода менее качественные, но вариант гнездо-штырёк позволяет подключить модуль к макетке, не втыкая модуль в макетку:

Сборка схемы из модулей

“Простые” модули

Простые цифровые модули имеют два пина питания и пин с логическим выходом, он может быть подписан как OUT, S, D или DO. Плата таких модулей имеет синий цвет и содержит типовую схему – крутилка (синий корпус) и операционный усилитель (чёрная микросхема рядом с крутилкой). Такой модуль выдаёт только два состояния: датчик “сработал” и “не сработал”, на цифровом выходе появляется соответственно VCC (напряжение питания) или 0 Вольт, т.е. высокий и низкий цифровой сигнал. Крутилка на плате позволяет настроить порог срабатывания. Такие датчики подключаются к питанию и любому цифровому пину (GPIO). Опрашиваются стандартными средствами Arduino.

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

Сборка схемы из модулей

Аналоговые

У аналоговых модулей помимо питания есть аналоговый выход, может быть маркирован как OUT, S, A или AO. Такие модули выдают аналоговый сигнал, пропорциональный показанию датчика. Подключаются к питанию и любому аналоговому пину (ADC) и опрашиваются стандартными средствами Arduino.

Примеры на картинке ниже: датчик звука, уровня жидкости, индуктивный датчик влажности почвы, обычный датчик влажности почвы, потенциометр (просто крутилка).

Сборка схемы из модулей

Смешанные

Некоторые модули имеют цифровой и аналоговый выходы одновременно, пины у них обычно подписаны как DO – цифровой выход и AO – аналоговый. Крутилка на плате настраивает порог срабатывания у цифрового выхода, а аналоговый просто выдаёт “сырой” сигнал с датчика. Опрашиваются как цифровые и аналоговые датчики соответственно.

Общая схема для всех перечисленных выше типов модулей:

Сборка схемы из модулей

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

Сборка схемы из модулей

KY-модули

Существует целое семейство модулей с названием KY-цифра, это самые дешевые модули на черных платах. Среди них есть цифровые, аналоговые, интерфейсные датчики, а также индикация (светодиоды, пищалки) и реле.

Пины модулей

Пины почти у всех плат подписаны одинаково. Сигнал может быть как исходящий из датчика цифровой или аналоговый сигнал, так и цифровой сигнал управления, который нужно подать на модуль с микроконтроллера.

Пины модулей

Описание модулей

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

KY-модули

Интерфейсные модули

Некоторые модули имеют один или несколько логических выходов и передают данные по цифровому интерфейсу связи. Сигнальные пины таких датчиков могут быть подписаны как SCK, SDA, SCL, MISO, MOSI, SS и прочими аббревиатурами.

Примеры интерфейсных модулей

Примеры таких модулей:

Интерфейсные модули

Подключение

Такие модули подключаются к пинам интерфейсов на плате и опрашиваются при помощи сторонних библиотек. Для работы с ними нужно найти статью с описанием и примерами в интернете.

Распиновка Arduino Nano и Wemos Mini

Давайте вкратце рассмотрим распиновку плат Arduino Nano и Wemos Mini:

Arduino Nano

Wemos Mini

UART

Пример интерфейса UART:

UART

SPI

Пример интерфейса SPI:

SPI

Полезные страницы

  • Дело рук начинающего радиолюбителя
  • Почему все именно так и причем тут Ардуино

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

Так же из доступных технологий изготовления печатных плат, на момент начала этой истории, был доступен популярный до сих пор Sprint Layout и ЛУТ. Первый порой вызывал потоки витиеватых выражений, второй же несколько расстраивал домашних, следами от своего пребывания на кухне или в ванной.

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

Получив наборы и потратив несколько вечеров на сборку конструкций, я вспомнил начало своего радиолюбительского пути и те радиоконструкторы, которые я собирал в детстве. Так же оказалось, что платы с металлизацией отверстий паять значительно приятнее, да и внешний вид таких печатных плат, отличается от моего самосверленого на гетинаксе ЛУТ, в лучшую сторону. А тут еще и китайские программисты допилили онлайн редактор EasyEDA до приемлемого состояния. Ну и я кинулся во все тяжкие.

Ввязываясь в этот проект, мне хотелось не только сделать что‑то именно для себя, а получить такие же радиоконструкторы, которые я мог бы вручить из рук в руки или отправить местной почтой другим радиолюбителям. В этом случае доставка не приводила к катастрофическому увеличению стоимости радиоконструктора. Проект не является коммерческим и все радиоконструкторы предоставлялись практически по стоимости комплектующих.

Первым устройством в серии моих радиоконструкторов, решено было взять конструкцию электронного ключа от K3NG, с открытым исходным кодом, реализованного на Ардуино.

Первый вариант конструкции

Микроконтроллер в виде Ардуино Нано был использован по причине самодостаточности изделия и возможности замены прошивки, путем использования просто USB‑шнура, без танцев с бубном в поисках программатора. Так же такой форм‑фактор микроконтроллера, в отличии от Ардуино УНО, имеет небольшие габариты и замечательно устанавливается на печатную плату.

Так как это был первый мой опыт заказа печатных плат «на стороне» и проектирования их в чем то похожем на серьезный инструмент, получилось так себе. Но мне тогда казалось, что платы вышли хорошие и все было замечательно. Но в ходе эксплуатации выявились некоторые недостатки, вызванные отсутствием опыта.

Первым недостатком стало то, что перед проектированием, я не удосужился прочитать инструкцию и заложил в устройство «типовую схему», в которой отсутствовала индикация перехода устройства в командный режим.

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

Ну и третьим упущением, стало то, что устройство делалось как «сферическое и в вакууме», это было просто устройство. Про корпус я тогда просто не подумал.

Но не смотря на эти недостатки, коллегами были собраны несколько таких устройств.

Второй вариант устройства

Второй вариант был сделан более компактным и по ширине был рассчитан на установку в корпус из китайского профиля, шириной 97 мм. Но отверстия нужно было размечать самому, как и сверлить их. Что в общем то далеко не всегда оказывается простой задачей и порой, вроде ровно размеченные отверстия, получаются далеко не на одной линии.

Так же во втором варианте устройства, были предусмотрены дополнительные контактные площадки, для доработки устройства радиолюбителем под свои нужды.

Набор для сборки устройства предоставлялся уже с запрограммированным микроконтроллером и от радиолюбителя требовалось все только запаять на свои места. Устройство начинало работать сразу после сборки.

Одним из радиолюбителей, как альтернативный вариант, был нарисован корпус для распечатки на 3Д‑принтере. Проект размещен в открытом доступе на Thingiverse.

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

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

Отверстия для разметки обозначены белыми окружностями

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

Но к сожалению возможность разметки не избавила от некоторого разброса при сверлении не очень прямыми руками, да и напечатанные передняя и задняя панели не прибавили эстетики устройству. Хотя функционально все уже работало вполне самодостаточно.

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

Тот же корпус, но уже с панелями из печатных плат.

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

Последний вариант устройства в корпусе произвольной длины.

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

В течении длительного периода времени, мной предлагалось еще несколько наборов для сборки, но интереса с самостоятельной пайке устройств, чрезвычайно мало. Стоимость пересылки в другие государства напрочь убивает всю бюджетность таких наборов для начинающих, а локально они оказались не востребованными. Причина в том, что начинающих радиолюбителей в наших краях практически нет, а опытные «сами лучше знают», что и из чего собирать.

Выводы

Первый — если вы беретесь за разработку какого‑либо устройства, то в первую очередь подумайте, в каком корпусе оно будет размещаться. При этом очень желательно, чтобы этот корпус был не в единичном экземпляре у вас, а доступен всем желающим в онлайн или офлайн магазинах.

Второй — прежде чем что‑то проектировать, подумайте, как вы этим устройством будете пользоваться в реальной жизни. Как будут подключаться кабели, где удобно будет нажимать кнопки. Где у вас на столе это устройство будет располагаться.

Я не профессиональный электронщик, это просто мое хобби, а история для тех, кто начинает входить в радиоконструирование и возможно чему то научится на моих ошибках.

Со всеми вышеперечисленными стадиями этого и других устройств, более детально можно ознакомиться в моем профиле на Open Source Hardware Lab. Там есть совсем бестолково нарисованные конструкции и они оказываются кому‑то полезными. Но это уже совсем другая история.

На КДПВ прототип почти того же устройства, но с большей функциональностью, за счет более емкого микроконтроллера.

Расположение пинов SPI на Arduino Uno

Сборка схемы из модулей

Пример кода для Arduino Uno (Slave)

// Пины подключения к LCD// Устанавливаем MISO (Master In Slave Out) как выход// Начинаем последовательную связь с битрейтом 9600// Инициализируем LCD в режиме 16×2// Очищаем дисплей LCD// Подключаем прерывание к SPI// Получаем данные от мастера через SPI// Считываем аналоговое значение с пина A0// Преобразуем значение в диапазон от 0 до 255// Отправляем данные мастеру через SPI// Отображаем значение, полученное от мастера, на LCD"Master STM32 to Slave Arduino"// Выводим значение в монитор последовательного порта// Очищаем дисплей LCD

Этот пример может служить отличным стартовым пунктом для тех, кто интересуется взаимодействием микроконтроллеров через SPI и созданием разнообразных проектов, использующих этот протокол связи. С обретенными знаниями вы сможете более эффективно проектировать и разрабатывать системы, требующие связи между различными устройствами в вашем электронном арсенале!

Вольтик — это слаженная команда амбициозных и заядлых инженеров. Мы создали этот проект с целью вовлечения вас, талантливых и начинающих профессионалов, в увлекательный мир мейкерской микроэлектроники!

Библиотека LiquidCrystal_I2C.h для LCD дисплея

В следующем примере разберем сразу несколько возможностей, которая дает библиотека LiquidCrystal_I2C Arduino (на самом деле мы взяли команды из стандартной библиотеки). Продемонстрируем вывод мигающего курсора, как убрать надпись с экрана на некоторое время без удаления и, как управлять подсветкой дисплея из кода программы. Для этого загрузите в Ардуино следующий код программы.

Скетч. Описание библиотеки LiquidCrystal_I2C.h

Заключение: Используя программы Ардуино для lcd 1602a из этой записи и схему подключения lcd 1602 к Ардуино по i2c вы сможете применять данный дисплей в проектах Ардуино с LCD и в различных примерах. Если у вас остались вопросы по использованию монитора 1602 i2c Arduino — оставляйте их в комментариях на этой странице. Возможно, то что вы ищете уже решено и есть в ответах.

Расположение пинов SPI на STM32 Blue Pill

Сборка схемы из модулей

SPI 1 SPI 2 STM32F103C8

MOSI1 MOSI2 PA7 / PB15

MISO1 MISO2 PA6 / PB14

SCK1 SCK2 PA5 / PB13

SS1 SS2 PA4 / PB12

Как подключить к Arduino LCD без I2C

Текстовый экран 16×2 используется для вывода информации с датчиков, отображения меню или подсказок. На экране выводятся черные символы размером 5×8 пикселей. Встроенная подсветка включается подачей питания на пины модуля. Текстовый дисплей 16×2 без модуля IIC подключается к микроконтроллеру через 16 контактов. Распиновка экрана с примером подключения размещена ниже.

Для этого занятия потребуется:

Сборка схемы из модулей

Схема подключения текстового экрана 16×2 к Ардуино

LCD 1602 i2cArduino UnoArduino NanoArduino Mega

Жидкокристаллический дисплей имеет 2 ряда по 16 символов, отсюда и его название LCD 1602. В память устройства встроено 192 знака, еще 8 знаков может определить сам пользователь. При подключении дисплея без IIC модуля потребуется использовать 6 портов общего назначения у микроконтроллера Arduino, не считая питания. Соберите схему, как на картинке выше и загрузите следующую программу в плату.

Скетч. Ардуино и LCD 1602 без I2C модуля

Жидкокристаллический дисплей 1602 с I2C модулем подключается к плате Ардуино всего 4 проводами — 2 провода данных и 2 провода питания. Подключение QAPASS 1602a к Arduino проводится стандартно для шины I2C: вывод SDA подключается к порту A4, вывод SCL – к порту A5. Питание LCD дисплея осуществляется от порта +5V. Смотрите подробнее схему подключения жк монитора 1602 на фото ниже.

Сборка схемы из модулей

Подключение модуля LCD 16×2 к Arduino UNO через I²C

Скетч для жк дисплея QAPASS 1602 I2C

По умолчанию у всех дисплеев 1602 с модулем I2C адрес — «0x27», но можно изменить адрес текстового экрана и узнать его через сканер iic шины. Таким образом, если у вас есть необходимость подключить к одному микроконтроллеру несколько дисплеев 1602, то следует изменить адреса устройств, что бы не было совпадений. Давайте рассмотрим, каким образом изменить IIC адрес жидкокристаллического дисплея.

Сборка схемы из модулей

Текстовый дисплей 16×2 с модулем I2C

Если перевернуть дисплей и посмотреть на IIC модуль (смотри фото выше), то там можно заметить контакты, обозначенные, как «A0», «A1» и «A2». Если по умолчанию LCD имеет адрес «0x27» на шине IIC, то замкнув перемычку «A0», адрес дисплея сменится на «0x26». Таким образом, к одной шине можно подключить несколько дисплеев, не забыв указать их адреса в скетче — смотри следующий пример кода.

Скетч. Подключение нескольких LCD 1602 к шине i2c

Сборка схемы из модулей

Подключение к Ардуино двух дисплеев 16×2 по I2C

Перед загрузкой следующего скетча, сначала соберите схему с двумя дисплеями и просканируйте шину IIC. Это необходимо сделать, чтобы убедится в том, что плата Arduino «видит» оба устройства на шине. А также перепроверить правильность адресов. После этого можно загружать следующий код, который позволит управлять сразу двумя дисплеями с модулями IIC от одного микроконтроллера Arduino Uno.

Пояснения к коду

I2C — последовательная двухпроводная шина для связи интегральных схем внутри электронных приборов, известна, как I²C или IIC (англ. Inter-Integrated Circuit). I²C была разработана фирмой Philips в начале 1980-х годов, как простая 8-битная шина для внутренней связи между схемами в управляющей электронике (например, в компьютерах на материнских платах, в мобильных телефонах и т.д.).

Сборка схемы из модулей

Схема i2c интерфейса для подключения lcd16x2

В простой системе I²C может быть несколько ведомых устройств и одно ведущее устройство, которое инициирует передачу данных и синхронизирует сигнал. К линиям SDA (линия данных) и SCL (линия синхронизации) можно подключить несколько ведомых устройств. Часто ведущим устройством является контроллер Ардуино, а ведомыми устройствами: часы реального времени или LCD Display.

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

Для сборки схемы вам понадобятся следующие компоненты:

Сборка схемы из модулей

Таблица подключения для обмена данными по SPI между микроконтроллером STM32 и Arduino.

Таблица подключения LCD16x2 к микроконтроллерам STM32F103C8 и Arduino Uno.

V0 Центральный пин потенциометра (для настройки контраста) Центральный пин потенциометра (для настройки контраста)

Не забудьте соединить GND на Arduino и GND на STM32F103C8 вместе!

Пример кода для STM32F103C8T6 (Master)

#define CS PA4 // Chip select pin// Объявление имен и номеров пинов для lcd// Устанавливаем пин CS как выход// Начинаем последовательную связь с битрейтом 9600// Инициализируем lcd в режиме 16×2// Очищаем дисплей lcd// Инициализируем SPI// Устанавливаем делитель тактовой частоты SPI на 16 (72/16=4.5МГц)// Устанавливаем SlaveSelect в HIGH (чтобы мастер не соединялся со слейвом)// Считываем аналоговое значение с потенциометра на пине PA0// Преобразуем значение потенциометра в диапазоне от 0 до 255 из диапазона 0 до 4096// Начинаем общение с подключенным к мастеру слейвом// Отправляем значение от мастера к слейву и получаем ответное значение от слейва"Slave Arduino to Master STM32"// Выводим сообщение в монитор последовательного порта// Выводим принятое значение в монитор последовательного порта// Выводим принятое значение от слейва на дисплей lcd// Снова устанавливаем линию CS в HIGH, чтобы не происходило связи со слейвом// Очищаем дисплей

Оцените статью
Про пайку
Добавить комментарий