Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Раздел 1. Работа в среде имитационного моделирования Tinkercad Circuits Arduino

Поиск

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ. 5

РАЗДЕЛ 1. РАБОТА В СРЕДЕ ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ TINKERCAD CIRCUITS ARDUINO.. 6

1.1 Общие сведения о работе эмулятора tinkercad circuits arduino.. 6

1.2 Управление светодиодом в среде arduino.. 20

1.3 Работа с кнопочным переключателем.. 27

1.4 Работа с пьезоизлучателем.. 32

1.5 Изучение работы сервопривода. 38

1.6 Управление текстовым дисплеем.. 43

РАЗДЕЛ 2. РАБОТА СО СТЕНДОМ АРД-1. 51

2.1 Знакомство с лабораторным стендом ард -1. Управление портами вывода микроконтроллера. 51

2.2 Управление портами вывода микроконтроллера с помощью шим – модуляции 64

2.3 Управление портами ввода микроконтроллера с помощью                      тактовых  кнопок. 71

2.4 Управление семисегментным индикатором.. 74

2.5 Управление светодиодной матрицей.. 81

ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ.. 85

ЗАКЛЮЧЕНИЕ.. 89

ПРИЛОЖЕНИЕ.. 90

 

Введение

Arduino — семейство программируемых микроконтроллеров для быстрого прототипирования электронных устройств. Arduino имеет полностью открытую  архитектуру. Первые представители семейства этих микроконтроллеров были разработаны в Италии. Позже производство появилось и в Китае, что сделало Arduino более доступным и распространенным. Arduino — это электронный конструктор, который позволяет любому человеку создавать разнообразные электро-механические устройства. Для того что бы начать нужен только сам микроконтроллер и компьютер с USB портом.

Arduino обладает рядом преимуществ:

1. Низкая стоимость. Программное обеспечение ардуино обладает кроссплатформенностью (поддержкой нескольких операционных систем).

2. Arduino IDE. Это очень простая в освоении и удобная в использовании среда разработки.

3. Открытый исходный код.

Микроконтроллер Arduino - простой в использовании, но мощный одноплатный компьютер. В данном руководстве приведены материалы для изучения платы Arduino Uno.  Плата Arduino Uno включает микроконтроллер Atmel ATmega328, который работает на напряжении в 5 V с 2 Kb RAM, 32 Kb флэш-памятью для хранения программ и 1 Kb EEPROM для хранения параметров. Тактовая частота составляет 16 МГц, что означает возможность выполнять до 300 000 строк исходного кода «C» в секунду. Панель имеет 14 цифровых входов и 6 аналоговых. В плате также есть разъем USB для подключения к компьютеру и разъем питания постоянного тока для подключения внешнего источника питания в 6-20 В, например, батареи 9 В при запуске программы, чтобы подключиться к компьютеру. Язык программирования Arduino является упрощенной версией C/C++.


Раздел 1. Работа в среде имитационного моделирования Tinkercad Circuits Arduino

Общие сведения о работе эмулятора Tinkercad Circuits Arduino

Тинкеркад (Tinkercad Circuits Arduino) – простой и одновременно мощный эмулятор Arduino, с которого можно начинать обучение электронике и робототехнике. Он предоставляет очень удобную онлайн среду для изучения особенностей работы с микропроцессорной техникой.

Возможности эмулятора Tinkercad для разработчика Arduino:

· Онлайн платформа;

· Удобный графический редактор для визуального построения электронных схем;

· Предустановленный набор моделей большинства популярных электронных компонентов, отсортированный по типам компонентов;

· Симулятор электронных схем, с помощью которого можно подключить созданное виртуальное устройство к виртуальному источнику питания и проследить, как оно будет работать;

· Симуляторы датчиков и инструментов внешнего воздействия. Можно менять показания датчиков, следя за тем, как на них реагирует система;

· Встроенный редактор Arduino с монитором порта и возможностью пошаговой отладки;

· Готовые проекты Arduino со схемами и кодом;

· Визуальный редактор кода Arduino.

Регистрация онлайн

Для начала работы необходимо зарегистрировать аккаунт Autocad. Для этого необходимо зайти на сайт https://www.tinkercad.com/ и выполнить простые шаги в соответствии с рисунком 2.

Рис. 2 - Регистрация в Tinkercad

Рис.3 - Создание учетной записи

 

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

 

Второй шаг. Подготовка электронной схемы

Возможные действия при создании схемы:

· Выбор нужных компонентов из библиотеки компонентов внизу экрана и размещение их в поле редактора.

· Соединение компонентов с помощью проводов.

· Редактирование параметров компонентов (например, величина сопротивления у резисторов или цвет проводов).

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

Рис. 9 - Список компонентов

    Для работы доступно множество уже готовых элементов (представлены на рисунке 9). Для удобства навигации все элементы разбиты на три  группы:

· Basic Components. Основные компоненты.

· Allcomponents. Все доступные компоненты.

· Starters. Готовые предустановленные схемы.

Рис. 10 - Интерфейс программы Tinkercad. Обзор базовых элементов

    Стоит уделить внимание третьей группе элементов  Starters. Создатели сервиса подготовили несколько готовых схем, которые можно сразу же подгрузить в проект.

Рис. 11 - Интерфейс программы Tinkercad. Закладка Starters

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

Рис.12 - Схема трехкнопочного пьезоэлектрический излучателя

    Если схема не помещается на экране, возможно выполнить масштабирование (кнопка масштаба на панели инструментов).

    Для соединение отдельных элементов между собой с помощью проводов нужно выполнить следующие действия. Наведите курсором мыши на узел (вход или выход) устройства, далее нажмите левую кнопку мыши и доведите линию до узла с которым хотите соединить, нажатие левой кнопки мыши соединит узлы проводом.

Рис.13 – Внешний вид Монтаж платы

    Углы провода скругляются, есть возможность выравнивать провод по вертикали или горизонтали (появление синих линий подскажет вертикаль и горизонт соответственно). Для отмены установки провода нужно нажать на Esc или мышкой нажать на соответствующую иконку на панели инструментов.

    Нажав на компонент, можно отредактировать его свойства.

Рис.14 - Редактирование свойств компонента

Цель работы

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

 

Теоретическая справка

Светодиод — это устройство, которое представляет собой полупроводниковый прибор, способный излучать свет при пропускании через него электрического тока в прямом направлении (от анода к катоду). Ниже приведена схема типичного светодиода с линзой (см. Рис.23а). Существуют 2-х цветные и 3-х цветные (см. Рис. 24б) светодиоды. Трёхцветный светодиод или RGB-светодиод — это совмещённые в одном корпусе светодиоды красного, зелёного и синего цветов.

Светодиод имеет 4 ноги. 3 ноги — аноды, соответствующие отдельным цветам и одна — общий катод. Подавая сигнал на один из анодов, можно добиться свечения одним из цветов. Используя широтно-импульсную модуляцию для всех анодов одновременно, можно получить свечение произвольным цветом.

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

1) Анод светодиода имеет более длинный проводник.
2) Со стороны катода, корпус светодиода немного срезан.

а)                                                                   б)

Рис. 23 - а) Схема светодиода б) Внешний вид RGB светодиода

 

В современной микроэлектронике применяются миниатюрные светодиоды для поверхностного монтажа. Такие индикаторы, например, имеются на Arduino UNO для информирования пользователя о состоянии системы.

 

Ход выполнения работы

    Для начала необходимо пройти по ссылке https://www.tinkercad.com в раздел «Circuits» и создать новую электрическую цепь нажатием на кнопку «Создать цепь».

Рис.24 Создание цепи

    Приступить к созданию схемы можно в визуальном редакторе. В библиотеке компонентов необходимо найти нужные элементы - светодиод, резистор и плату Arduino Uno R3.

Рис.25 - Создание схемы

Рис.26 - Выбор компонента

 

 
На рисунке 27 представлены подключенные резистор и светодиод к плате Arduino Uno в общую схему.

 

Рис. 27  - Подключение светодиода к выводу 13

 

 

В функции setup() необходимо инициализировать порт, подключенный к светодиоду, как выход используя функцию pinmode(“номер порта», OUTPUT).
pinMode(13, OUTPUT);


   В функции loop() для включения светодиода необходима команда digitalWrite(pin, value). Она устанавливает цифровой вывод на нужный порт. Параметр pin означает номер вывода для записи, а value - значение записи. Второй параметр может принимать только 2 значения: HIGH (5v или 3.3v) или LOW (0v).


Светодиод включается посредством следующей команды:

digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)

 

Для осуществления задержки на нужное время в милисекундах используется функция delay(value). В параметр передается значение времени задержки в миллисекундах. Пауза в 1000 миллисекунду выполняется как:

delay(1000);

Для выключения светодиода и последующей задержки прописываются следующие команды:

 digitalWrite(13, LOW);

delay(1000);

 

Проверка кода на наличие ошибок выполняется с помощью нажатия на кнопку «Компилировать». Листинг программы представлен на рисунке 28

 

Рис.28 – Листинг программы для управления одним светодиодом

 

После необходимо сохранить код  нажать кнопку Выполнить.

 

Для подключения второго светодиода в схему необходимо задать вывод 3 в соответствии с рисунком 29:

pinMode(3, OUTPUT);

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

digitalWrite(3, HIGH);

delay(1000);

digitalWrite(3, LOW);

delay(1000);

 

Рис. 29 - Подключение второго светодиода к выводу 3

 

 

Проверка кода на наличие ошибок выполняется с помощью нажатия на кнопку «Компилировать».

В результате получится следующий программный код:

Рис.30 – Листинг программы для управления двумя светодиодами

 

 

 После необходимо сохранить листинг программы и нажать кнопку «Выполнить».

 

Задания к лабораторной работе

№ Варианта Задания
1 Создать программу заставляющую мигать светодиод в следующей последовательности: светодиод 1, светодиод 2, светодиод 3, все сначала
2 Создать программу заставляющую мигать светодиод в следующей последовательности: светодиод 1, светодиод 2, светодиод 3, светодиод 4, светодиод 5, все сначала
1 Создать программу заставляющую мигать светодиод в следующей последовательности: светодиод 1 и 2, светодиод 2 и 3, светодиод 3 и 4, светодиод 4 и 5, все сначала       
4 Создать программу заставляющую мигать светодиод в следующей последовательности: светодиод 1 и 2 и 3,светодиод 3 и 4, светодиод 5,  все сначала 
5 Создать программу заставляющую мигать светодиод в следующей последовательности: светодиод 1, светодиод 5, светодиод 2, светодиод 4, светодиод 3, все сначала
6 Создать программу заставляющую мигать светодиод в следующей последовательности: светодиод 1, светодиод 5, светодиод 2, светодиод 5, светодиод 3, светодиод 5, светодиод 4, светодиод 5, все сначала
7 Сделайте так чтобы светодиод 1 светился полсекунды, а пауза между вспышками равна одной секунде
8 Сделайте так чтобы светодиод 1 светился одну секунду, а пауза между вспышками равна двум секундам
9 Сделайте так чтобы светодиод 1и 2 светился полсекунды, а пауза между вспышками равна одной секунде
10 Сделайте так чтобы светодиод 1 и 2 светился одна секунда, а пауза между вспышками равна двум секундам

Цель работы

Получить навыки программирования микроконтроллера, разработать программу управления кнопочным переключателем.

Теоретическая справка

Кнопка (или кнопочный переключатель) – самый простой и доступный из всех видов датчиков. Тактовые кнопки – наиболее распространённые средства для коммутации электрических сигналов в различных цепях. Тактовые кнопки могут быть с фиксацией или без, с подсветкой и т. д. Тактовые кнопки используются в различных режимах и выполняют разные функции. Конструктивное исполнение изделий может сильно варьироваться.

Тактовые кнопки устанавливаются на печатные платы вертикально или под определённым углом. Их активно используют в быту и промышленности.

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

Ход выполнения работы

Для начала работы необходимо выбрать элементы из библиотеки компонентов (см. рис. 31,32,33).

Рис. 31 - Выбор компонента резистора

Рис. 32  -Выбор компонента кнопки

 

 

Рис. 33 - Выбор компонента светодиод

 

 

Рис. 34 - Выбор компонента малая макетная плата

 

 

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

 

Рис. 35 - Результат работы кнопочного переключателя

 

Для начала работы с кодом необходимо нажать на кнопку Код в правом верхнем углу.

 

Рис.36 - Кнопка кода в панеле задач

 

Программный код эксперимента приведен в листинге в соответствии с рисунком 37:

Рис.37 – Листинг программы для управления кнопочным переключателем

 

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

Задания к лабораторной работе

№ Варианта Задания
1 Создать программу заставляющую светодиод при нажатии кнопки 0,5 секунды гореть и 0,5 секунду не гореть.
2 Создать программу заставляющую светодиод при нажатии кнопки 1 секунды гореть и 1 секунду не гореть.
3 Создать программу заставляющую светодиод при нажатии кнопки 0,5 секунды гореть и 1 секунду не гореть.
4 Создать программу заставляющую светодиод при нажатии кнопки 1 секунды гореть и 0,5 секунду не гореть.
5 Создать программу заставляющую светодиод при нажатии кнопки 1 секунды гореть и 2 секунду не гореть.
6 Создать программу заставляющую светодиод при нажатии кнопки 2 секунды гореть и 2 секунду не гореть.
7 Создать программу заставляющую при нажатие кнопки включать и выключать светодиод.
8 Создать программу заставляющую мигать светодиод при каждом нажатии кнопки быстрее.
9 Создать программу для включения светодиода от двух кнопок одновременно.
10 Создать программу для регулировки яркости светодиода от двух кнопок.

                                                                                                                                                      


РАБОТА С  ПЬЕЗОИЗЛУЧАТЕЛЕМ

 

Цель работы

Получить навыки программирования микроконтроллера, разработать программу управления пьезоизлучателем.

Теоретическая справка

Самым простым вариантом генерации звука является использование пьезоизлучателя. Пьезокерамические излучатели (пьезоизлучатели) - электроакустические устройства воспроизведения звука, использующие обратный пьезоэлектрический эффект - возникновение механических деформаций под действием электрического поля. Пьезоизлучатели бывают двух типов - со встроенным генератором и без. Пьезоизлучатели со встроенным генератором излучают фиксированный тональный сигнал сразу после подачи на них номинального напряжения. Они не могут воспроизводить произвольного сигнала. Их обычно используют для простого звукового оповещения. Если требуется проиграть мелодию, то используют пьезоизлучатели без встроенного генератора и генерируют сигнал отдельно. В эксперименте используется пьезоизлучатель без встроенного генератора.

 

Ход работы

Для начала работы необходимо выбрать нужные элементы из библиотеки компонентов.

 

Рис.38 - Выбор компонента пьезоэлемента

Рис.39 - Выбор компонента малая макетная плата

 

 

Рис.40 - Выбор компонента Arduino Uno R3

 

Пьезоизлучатель необходимо подсоединить к макетной плате, а затем подключить макетную плату и пьезоизлучатель к Arduino Uno так, как показано на рис. 41.

Рис. 41- Схема подключения пьезоизлучателя

 

 

Для воспроизведения мелодии необходимо подавать последовательно звуки определенной частоты и длительности. Для генерации звуков определенной частоты и длительности используется Arduino-функция tone (вывод, частота, длительность).

Функция «tone» генерирует на выводе прямоугольный сигнал заданной частоты (с коэффициентом заполнения 50%). Функция также позволяет задавать длительность сигнала. Если длительность сигнала не указана, он будет генерироваться до тех пор, пока не будет вызвана функция noTone (). Значения частот для нот первой и второй октав представлены в таблице 1.

Таблица 1 - Значения частот для нот первой и второй октав

1 октава Обозна­чение Частота, Гц 2 октава Обозначение Частота, Гц
до С 261 до с 523
до-диез C#(R) 277 до-диез с#(г) 554
ре D 293 ре d 587
ре-диез D#(S) 311 ре-диез d#(s) 622
ми Е 329 ми е 659
фа F 349 фа f 698
фа-диез F#fT) 370 фа-диез f#M 740
соль G 392 соль g 784
соль-диез •G#(U) 415 соль-диез g#M 830
ля A 440 ля а 880
си-бимоль В 466 си-бимоль b 932
си H 494 си h 988

.

 

Необходимо составить мелодию и занести ее в массив melody, список длительностей нот - в массив duration (). Данные с обозначением нот - в массив notes, а данные с частотами для соответствующих нот - в массив frequency.

Рис.42 - Листинг программы для управления пьезоизлучателем

 

Задание к работе

№ Варианта Задания
1 Задать длительность проигрывания ноты мелодии 0,1 секунды.
2 Задать длительность проигрывания ноты мелодии 0,2 секунды.
3 Задать темп проигрывания мелодии 0,5 секунды.
4 Задать темп проигрывания мелодии 1,5 секунды.
5 Изменить частоту ноты До и проиграть разные ноты До
6 Изменить частоту ноты Ре и проиграть разные ноты Ре
7 Создать программу для проигрывания 5 любых нот с разными интервалами по длительности
8 Создать программу для проигрывания нотной гаммы
9 Задать в мелодии паузу между нотами на значение 5
10 Задать в мелодии паузу между нотами на значение 7

 


Цель работы

Получить навыки программирования микроконтроллера, разработать программу управления электродвигателем - SERVO.

Теоретическая справка

В этой работе изучается такой элемент, как Servo (сервопривод). Сервопривод – это привод, предназначенный для осуществления контроля (угол поворота вала, скорость вращения/движения и так далее) над различными объектами, находящимися в постоянном движении. Контроль производится в зависимости от заданных ему параметров извне. Сервопривод включает в свой состав такие элементы как:

  • Приводной механизм – к примеру, это может быть электромотор. Благодаря ему становится возможным управление скоростью нужного диапазона в определённый временной момент;
  • Датчики – осуществляют контроль над необходимыми параметрами. Могут быть предназначены для отслеживания положения, усилия, поворота угла или скорости вращения объекта;
  • Блок управления – немало важный элемент, так как именно благодаря ему происходит поддержание требуемых параметров в автоматическом режиме;
  • Блок питания – сервопривод.

 

Для использования функций сервопривода в начале исполняемого кода следует подключить библиотеку «Servo» делается это строкой #include <Servo.h>. Далее представлены основные функции для работы с сервоприводом:

Servo.attach(pin, min, max) – прикрепляет переменную сервопривода к контакту на доске. Где  min - (необязательно) - значение PWM (в микросекундах), которое будет соответствовать минимальным 0 градусам, max - (необязательно)- значение PWM (в микросекундах), которое будет соответствовать максимуму 180 градусов;

Servo.write(angle) – позиционирует стержень серводвигателя под заданным углом, angle –  (в градусах) угол, под которым будет располагаться стержень;

Servo. writeMicroseconds(uS) – то же, что и функция write (), но запрашивает ввод в микросекундах, где uS - значение в микросекундах для поворота стержня в определенную степень;

Servo. read() – считывает текущее значение угла сервопривод;

Servo.attached() – проверяет, подключен ли сервопривод к штифту;

Servo.detach – освобождает сервопривод от указанного pin-вывода;

 

Ход работы

В начале работы необходимо выбрать сервомотор из библиотеки компонентов и подключить его к Arduino Uno так, как показано на рис. 43, 44.

Рис.43 - Выбор компонента сервопривода

 

 

 

Рис. 44 - Схема подключения сервопривода к плате Arduino Uno

Переменная «servo.attach» используется для определения pin-вывода, которая предназначена для управления сервоприводом.

В функции «setup» подключается элемент «servo» с выводом 10, который будет управлять сервоприводом, используя необходимую команду:

servo.attach(10);

Так же следует добавить строку Serial.begin(9600), для подключения последовательного порта на скорости 9600 бит/сек. Чтобы отобразить содержимое используем функцию построчного вывода данных в последовательный порт Serial.println() и функцию вывода текущего положения сервопривода servo.read():

Serial.println(servo.read());

Используем дополнительно цикл do while. Общая конструкция цикла состоит из двух частей do{} основного тела цикла и while() условие для выполнения этого цикла:

do{операторы}

while (условие выполнения);

Далее задается переменная X, которая будет равна углу наклона  вала в градусах  как в одну сторону, так и в другую:

int x = 0; // задаем переменную Х как 0

do{

servo.write(x); //ставим вал под Х градусов

    x=x+1;

    delay(500);

Serial.println(servo.read());

}while(x<180);

 

Рис.45 - Листинг программы для управления электродвигателем – SERVO

 

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

Задания к работе.

№ Варианта Задания
1 Используя потенциометр менять положение угла вала сервопривода с точностью до 1 градуса
2 Используя потенциометр менять скорость перемещения вала сервопривода от 0 до 10 градусов в секунду с шагов 1 градус.
3 Задать валу ускорение 1 градус/ сек^2. Создать управляющие кнопки для сброса времени и сброса координаты к начальному положению
4 Задать трём кнопкам следующие функции для контроля сервопривода. При нажатии первой увеличить скорость перемещения вала на 1 градус в секунду. При нажатии второй кнопки сбросить положение вала к нулю градусов. При нажатии третьей кнопки сбросить скорость до 0
5 Задать 9 кнопкам функцию перемещения вала сервопривода на 10, 20, 30, 40, 50, 60, 70, 80, 90 градусов. Добавить кнопку с функцией сброса к начальному положению (0 градусов)
6 Задать двум кнопкам следующие функции для контроля сервопривода. Первая - при нажатии вал отклоняется на 10 градусов. Вторая – вал отклоняется на -5 градусов
7 Задать сервоприводу скорость 360 градусов в минуту. Добавить кнопку с функцией сброса к начальному положению (0 градусов)
8 Задать сервоприводу скорость 360 градусов в минуту. Добавить кнопку с функцией паузы
9 Задать сервоприводу скорость 360 градусов в минуту. Добавить кнопку с функцией смены скорости на 180 градусов в минуту
10 Используя сервоприводы создать аналоговые часы с секундной и минутной стрелками

 

 


Цель работы

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

 

Теоретическая справка

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

Для обработки команд и вывода информации на монитор в дисплей встроен микроконтроллер. В данной лабораторной работе будет рассмотрен дисплей LCD1602 (представлен на рисунке 46) на базе микроконтроллера HD44780.

Рис.46 – Внешний вид дисплея LCD1602

Рис.47 – Внешний вид вывод

 

Дисплей LCD1602 имеет 16 выводов, назначение каждого приведено в соответствии с таблицей 3:

 

 

Таблица 3 - Назначение выводов LCD1602

Вывод Название Функция
1 VSS Общий
2 VDD 3-5 В
3 VD 3.5 В
4 RS Устанавливает режим Команды / Данные
5 R/W Устанавливает режим Чтение / Запись
6 E Разрешение Чтение / Запись
7 DB0 Линия данных 0
8 DB1 Линия данных 1
9 DB2 Линия данных 2
10 DB3 Линия данных 3
11 DB4 Линия данных 4
12 DB5 Линия данных 5
13 DB6 Линия данных 6
14 DB7 Линия данных 7
15 LED+ Питание для подсветки (+)
16 LED- Питание для подсветки (-)

 

Старшие биты D0-D3 используются в "командном" режиме, в данной лабораторной работе они нам не понадобятся. Младшие биты D4-D7 в режиме "отображения данных". Для настройки контастности используется потенциометр со значением 10 Ом.

Для работы дисплеем LCD1602 следует использовать библиотеку "LiquidCrystal". Краткий перечень основных функций этой библиотеки приведен в таблице 4.

    В начале программы следует создать переменную lcd со следующей функцией LiquidCrystal(rs, enable, d4, d5, d6, d7), которая инициализирует сосединение управляющей платы Arduino с микроконтролером HD44780.

 

Таблица 4 - Перечень основных функций библиотеки LiquidCrystal

 

Название функции Параметры Описание
lcd.begin(cols, rows) lcd: переменная типа LiquidCrystal cols: количество столбцов экрана rows: количество строк экрана   Инициализирует интерфейс для взаимодействия с LCD-экраном и задает размеры (ширину и высоту) области вывода экрана. При работе с LCD-дисплеем, функция begin() должна вызываться первой и предшествовать другим командам из библиотеки LiquidCrystal.  
lcd.setCursor(col, row) col — номер строки в ряду (начиная с 0) row — номер ряда (начиная с 0 для первого ряда) Для написания текста важно установить положение курсора в определённую строку и ряд с которой экран начнет выводить последующий текст. Данная команда перемещает курсор индикатора в заданное место
lcd.Сlear()     Очищает LCD-экран и перемещает курсор в левый верхний угол.(нулевая строка и столбец)
lcd.home()   Перемещает курсор в левый верхний угол экрана. Т.е. после вызова этой функции, последующий текст будет выводится с начала экрана. Для очистки экрана используйте функцию clear()
lcd.print(data, BASE)   data — данные для печати (тип char, byte, int, long или string) BASE (опционально) — основание, по которому печатаются числа: BIN для двоичных (основание 2), DEC для десятичных (основание 10), OCT для восьмеричных (основание 8), HEX для шестнадцатеричных (основание 16) Функция print() печатает текст на жидкокристаллическом индикаторе
lcd.write(data)   data — символ, который необходимо вывести на экран Выводит символ на LCD-экран
lcd.createChar(num, data)   num — номер создаваемого символа (0 до 7) data — данные символьных пикселов   Функция createChar() создаёт пользовательский символ (глиф) для использования на жидкокристаллическом дисплее. Поддерживаются до восьми символов 5×8 пикселов (нумерация с 0 до 7). Создание каждого пользовательского символа определяется массивом из восьми байтов — один байт для каждой строки. Пять младших значащих битов каждого байта определяют пикселы в этой строке. Чтобы вывести пользовательский символ на экран, используйте функцию write() с номером символа в качестве параметра.  
lcd.scrollDisplayLeft() lcd.scrollDisplayRight()   пролистывает информацию на экране индикатора (текст и курсор) на одно знакоместо влево

 

Ход работы

В данной лабораторной работе будет расмотрена схема подключения дисплея Arduino к ЖК-дисплея с использованием библиотеки «LiquidCrystal». Для этого собираем схему в соответствии с рисукном 82. Используем потенциометр со значением сопротивления 10 Ом и резистор - 220 Ом. Потенциометр следует установить в положение максимального значения.

Рис.48 – Схема подключения дисплея LCD1602 к Arduino

 

Рис.49 - Схема подключения LCD1602 к Arduino в системе Tinkercad

Первой строкой подключаем встроенную библиотеку для для дисплея LCD 16x2:

#include <LiquidCrystal.h>

Создаем подключение LiquidCrystal lcd(RS, E, D4, D5, D6, D7) указываем выводы к которым были подключены порты

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

Для создание своего символа создадим переменную типа массив и заполним её бинарными значениями.

byte smiley[8] = { B00000, B10001, B00000, B00000, B10001, B01110, B00000};

В функции установки указываем, что дисплей имеет 16 символов и 2 строки lcd.begin(16, 2)  и используем функцию lcd. createChar (0, smiley) для создания своего символа, заданного ранее.

 

void setup () {

lcd.begin(16, 2);// указываем тип дисплея LCD 16X2

lcd. createChar (0, smiley);

}

Пример кода программы представлено ниже

void loop() {

lcd.setCursor(1,0); // положение курсора - нулевая строка, первый символ

lcd.print("HELLO WORLD ");// вывод на экран

lcd.home();// положение курсора - первая срока, первый символ

lcd.write(byte(0)); // выводим символ

lcd.setCursor(2,5);// положение курсора - вторя срока, пятый символ

lcd.print("ARDUINO");// вывод на экран

delay(100); // пауза 100 мс

lcd.scrollDisplayRight(); // сдвиг всех символов вправо на один символ

delay(500);

lcd.clear(); // очистка экрана

}

Результатом выполнения программного когда будет следующая надпись выводимая на экране (обратите внимание на первый символ и на переодический сдвиг надписи вправо) смотреть рисунок 50

Рис. 50 - Результат работы программы в системе Tinkercad


Задания к лабораторной работе:

Вариант № Задание
1 Создайте программу, выполняющие следующие задачи: При нажатии на кнопку № 1 к сумме прибавляется 1, на кнопку № 2 - прибавляется 5, кнопку № 3 - прибавляется 10. При нажатии на каждую из кнопок общая сумма выводится на дисплей по центру верхней строки, а последнее прибавленное значение в нижней строке. При старте программы сумма равны нулю.
2 Создайте программу, выполняющие следующие задачи: Каждые пять секунд выводить значение потенциометра в верхней строке первых трёх ячейках, если значение изменилось за этот период, то выводить на его месте новое, а предыдущие сдвигать вправо на одну ячейку. Под каждым сдвинутым значением в нижней строке отображать количество секунд, которые продержалось данное значение.
3 Создайте программу, выполняющие следующие задачи: при нажатии на кнопку № 1 в центре дисплея выводится созданный символ №1, при нажатии на кнопку №2 - символ №2. В первой и последней ячейке верхней строки всегда отображаются символы №1 и №2, а строго под ними в нижней строке отображаются суммарные нажатия кнопки № 1 и №2. При старте программы обе суммы равны нулю.
4 Создайте программу, выполняющие следующие задачи: при нажатии на кнопку выводит количество совершенных ранее нажатий. Последнее значение вывод


Поделиться:


Последнее изменение этой страницы: 2021-05-27; просмотров: 4949; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.242.149 (0.015 с.)