Раздел 2. Работа со стендом АРД-1 


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



ЗНАЕТЕ ЛИ ВЫ?

Раздел 2. Работа со стендом АРД-1



Лабораторный стенд АРД-1 предназначен для выполнения лабораторных работ по дисциплине «Техника микропроцессорных систем». Он позволяет получить первоначальные навыки программирования микроконтроллеров.

ЗНАКОМСТВО С ЛАБОРАТОРНЫМ СТЕНДОМ АРД -1. УПРАВЛЕНИЕ ПОРТАМИ ВЫВОДА МИКРОКОНТРОЛЛЕРА

Цель работы

Изучить конструкцию лабораторного стенда АРД-1, узнать назначение его основных частей. Получить первичные навыки работы с лабораторным стендом АРД-1.Произвести программирование лабораторного стенда АРД-1, научиться управлять портами вывода микроконтроллера.

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

Лабораторный стенд АРД-1 предназначен для выполнения лабораторных работ по дисциплине «Техника микропроцессорных систем в коммутации». Он позволяет получить первоначальные навыки программирования микроконтроллеров.

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

 

Рис. 51 – Схема стенда АРД-1 в сборе

На панели находятся плата Arduino UNO, 3 светодиода с подключенными к ним резисторами, 2 семисегментых индикатора, 2 сдвиговых регистра и 2 кнопки. На рисунке 52 показана структурная схема стенда АРД-1.

 

Рис. 52 - Структурная схема стенда АРД-1.

 

«Сердцем» лабораторного стенда АРД-1 является плата Arduino UNO. Arduino Uno построена на микропроцессоре ATmega328. Платформа имеет 14 цифровых вход/выходов (6 из которых могут использоваться как выходы ШИМ – широтно-импульсная модуляция), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. На рисунке 53 показан внешний вид платформы Arduino UNO.

В таблице 2 представлены основные характеристики платформы Arduino UNO.

Таблица 2 - Основные характеристики платформы Arduino UNO.

Микроконтроллер ATmega328
Рабочее напряжение 5 В
Входное напряжение (рекомендуемое) 7-12 В
Входное напряжение (предельное) 6-20 В
Цифровые Входы/Выходы 14 (6 из которых могут использоваться как выходы ШИМ)
Аналоговые входы 6
Постоянный ток через вход/выход 40 мА
Постоянный ток для вывода 3.3 В 50 мА
Флеш-память 32 Кб (ATmega328) из которых 0.5 Кб используются для загрузчика
ОЗУ 2 Кб (ATmega328)
EEPROM 1 Кб (ATmega328)
Тактовая частота 16 МГц

 

Рис. 53 - Внешний вид платы Arduino UNO

 

Светодиод (англ. Light Emitting Diode или просто LED) энергоэффективная, надёжная, долговечная «лампочка». Светодиод — вид диода, который светится, когда через него проходит ток от анода (+) к катоду (−). На рисунке 54 показан внешний вид светодиода и его обозначение на электрических схемах.

Рис. 54 -  Внешний вид светодиода и его обозначение на электрических схемах

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

Семисегментный индикатор — это восемь светодиодов в одном корпусе: 7 сегментов + точка. Анод у каждого светодиода отдельный, а катод у всех общий, на ноге 3 или 8. На рисунке 55 показана схема семисегменного индикатора.

 

 

Рис. 55 - Схема семисегменного индикатора.

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

Сдвиговый регистр - микросхема для увеличения количества цифровых выводов. В лабораторном стенде АРД 1 находится сдвиговый регистр 74HC595N. Он управляется через три входа восемью выходами. На рисунке 56  показана схема расположения входов/выходов регистра.

 

 

Рис. 56 Расположение входов/выходов сдвигового регистра 74HC595N.

 

Рассмотрим назначение пинов: VCC – питание микросхемы 2-6 Вольт, GND – земля, DS – линия входных данных для внутренней памяти регистра, SH_CP – вход тактовых импульсов (линия такта, переносит 1 бит из DS в память регистра Dx), ST_CP – вход «защёлкивающий» данные (линия сбора данных, переносит данные из памяти на Qx), Q0…Q7 – выходы регистра, могут быть в состоянии 0, 1 или высокоимпедансном (8 выходов общего назначения), Q7′ – выход для последовательного соединения регистров в ряд, OE – вход переводящий выходы из высокоимпедансного в рабочее состояние (т.е. линия включения/выключения выходов Q0…Q7), MR – сброс значений регистра.

Схема светодиодной матрицы представлена на рисунке 57, более подробно рассмотрим матрицу позже.

 

Рис. 57 Схема светодиодной матрицы

 

Также на лабораторном стенде АРД расположены 2 кнопки. Тактовая кнопка — простой, всем известный механизм, замыкающий цепь пока есть давление на толкатель. Внешний вид кнопки и её обозначение на электрических схемах показано на рисунке 58.

Рис. 58– Внешний вид тактовой кнопки и обозначение на электрических схемах

Кнопки с 4 контактами стоит рассматривать, как 2 пары рельс, которые соединяются при нажатии.

 

Рис. 59 –Осциллограмма эффект дребезга при нажатии кнопки

 

При замыкании и размыкании между пластинами кнопки возникают микроискры, на рисунке 59, провоцирующие до десятка переключений за несколько миллисекунд. Явление называется дребезгом (англ. bounce). Это нужно учитывать, если необходимо фиксировать «клики».

Для работы необходимо подключить платформу Arduino UNO к компьютеру посредством кабеля USB, либо подать питание при помощи адаптера AC/DC или батареи. В данном методическом пособии рассматривается программирование микроконтроллера с помощью среды Arduino IDE. Скачать Arduino IDE 1.8.9 можно бесплатно по ссылке https://www.arduino.cc/en/Main/Software.

Установка Arduino IDE не вызывает особых затруднений, после ее установки для работы с лабораторным стендом в Windows 7 и Windows XP необходимо установить драйвер для DCcduino UNO R3.

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

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

 

 

Рис. 60 –Внешний вид среды разработки Arduino IDE

 

Кнопки панели инструментов позволяют проверить и записать программу, создать, открыть и сохранить скетч, открыть мониторинг последовательной шины:

 

·  Компиляция кода
Проверка программного кода на ошибки, компиляция.

 

·  Остановка мониторинга
Остановка мониторинга последовательной шины (Serial monitor).

 

·  Создание нового скетча
Создание нового скетча.

 

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

 

·  Сохранение скетча
Сохранение скетча.

 

·  Загрузка скетча в контроллер
Компилирует программный код и загружает его в устройство Arduino. Описание загрузки приведено ниже.

 

Перед загрузкой скетча требуется задать необходимые параметры в меню Сервис — Плата (выбрать Arduino UNO) и Сервис ­— Последовательный порт. В ОС Windows порты могут обозначаться как COM1 или COM2 (для платы последовательной шины) или COM4, COM5, COM7 и выше (для платы USB). Определение порта USB производится в поле «Последовательной шины USB» Диспетчера устройств Windows.

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

Ни в коем случае нельзя отсоединять стенд АРД-1 от ПК, нажимать на кнопки и выполнять другие действия в момент загрузки скетча, иначе произойдет повреждение микроконтроллера, что в свою очередь выведет стенд из работоспособного состояния.

При загрузке скетча используется Загрузчик (Bootloader) Arduino, небольшая программа, загружаемая в микроконтроллер на плате. Она позволяет загружать программный код без использования дополнительных аппаратных средств. Загрузчик (Bootloader) активен в течении нескольких секунд при перезагрузке платформы и при загрузке любого из скетчей в микроконтроллер. Работа Загрузчика (Bootloader) распознается по миганию светодиода (13 пин) (например при перезагрузке платы).

 

Ход работы

В этом примере показано как с помощью контроллера Arduino выполнить мигание светодиода. Для этого необходимо подключить резистор сопротивлением 220 Ом к выводу номер 13 (pin 13), к резистору в свою очередь подключить анод (обычно длинная ножка) светодиода. Катод подсоединить к земле (Grd). Затем подключить контроллер через USB кабель к компьютеру и загрузить приведенный ниже код на котроллер Arduino.

Большинство плат Arduino имеют встроенный SMT (Surface-mount techology) светодиод, подключенный к выводу 13. Если запустить программу на таких платах без подключения внешнего светодиода, то можно увидеть мигание встроенного светодиода на плате.

Рис. 61 - Подключение светодиода к Arduino.

 

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

 

В коде первой строкой задаётся режим выхода для входа/выхода, т.е. в режим источника напряжения:

pinMode(13, OUTPUT);

В основном цикле (loop) программы загорается светодиод:

digitalWrite(13, HIGH);

 

На выходе 13 появляется напряжение 5 В. Светодиод загорается. Следующим действием  нужно выключить светодиод:

 

digitalWrite(13, LOW);

 

Изменяя напряжение на выходе на 0 вольт, светодиод выключается. Для того чтобы человеческий глаз успевал замечать переключение светодиода вводится задержка с помощью функции delay().

Код программы управления миганием светодиода:

 

void setup() {

pinMode(13, OUTPUT);

}

 

void loop() {

digitalWrite(13, HIGH); // зажигается светодиод

delay(1000);         // задержка 1 секунда

digitalWrite(13, LOW); // выключается светодиод

delay(1000);         // задержка 1 секунда

}

В лабораторном стенде АРД-1 светодиоды подключены к выводам 0, 1, 2, 3 и 4. Данный факт следует учитывать при непосредственном программировании на стенде.

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

Процедуры setup и loop должны присутствовать в любой программе (скетче), даже если не нужно ничего выполнять в них — пусть они остаются пустые. Например:

void setup()

{

}

Каждой открывающей фигурной скобке {всегда соответствует закрывающая}. Они обозначают границы некого логически завершенного фрагмента кода. Удобно после каждой открывающей скобки увеличивать отступ на каждой новой строке на один символ табуляции (клавиша Tab). Необходимо обращать внимание на точку с запятой; в концах строк. Лучше не стирать их там, где они есть, и не добавлять лишних.

Функция digitalWrite (pin, value) не возвращает никакого значения и принимает два параметра:

o pin — номер цифрового порта, на который отправляется сигнал.

o value — значение, которое отправляется на порт. Для цифровых портов значением может быть HIGH (высокое, единица) или LOW (низкое, ноль).

Если в качестве второго параметра передать функции digitalWrite значение, отличное от HIGH, LOW, 1 или 0, компилятор может не выдать ошибку, но считать, что передано HIGH.

Использованные константы: INPUT, OUTPUT, LOW, HIGH, пишутся заглавными буквами, иначе компилятор их не распознает и выдаст ошибку. Когда ключевое слово распознано, оно подсвечивается синим цветом в Arduino IDE.

 

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

Вариант № Задание
1 Создайте программу, заставляющую мигать циклично светодиоды в следующей последовательности: Светодиод 1 Светодиод 2 Светодиод 3 Используйте первую кнопку для изменения скорости переключения между светодиодами. Используйте вторую кнопку для увеличения времени горения. Временные интервалы от 100 до 2000мс с шагом 100 мс
2 Создайте программу, заставляющую мигать светодиоды в следующей последовательности: Светодиод 1 и 2 Светодиод 2 и 3 Светодиод 3 и 4 Светодиод 4 и 5 Для переключения между позициями используйте первую кнопку. Для перехода к первой позиции используйте вторую кнопку.
3 Создайте программу, заставляющую мигать светодиоды в следующей последовательности: Светодиод 1 и 2 и 3 Светодиод 3 и 4 Светодиод 5 Для переключения между позициями используйте первую кнопку. Для возврата предыдущей позиции используйте вторую кнопку.
4 Создайте программу, заставляющую мигать светодиоды в следующей последовательности: Светодиод 1 Светодиод 5 Светодиод 2 Светодиод 4 Светодиод 3 Нажатие первой кнопки изменит последовательность загорания светодиодов на противоположную. Нажатие второй кнопки увеличит скорость загорания на 100 мс
5 Создайте программу, заставляющую мигать светодиоды по следующим правилам: каждый светодиод отображает цифру 5 разрядного двоичного числа. При нажатии на первую кнопку значение чсила увеличивается на 1. При нажатии на вторую – сбрасывается до 0.
6 Создайте программу,заставляющую светодиод № 1 светится 100 мс, № 2 – 200 мс, № 3 – 300 мс, № 4 – 400 мс, № 5 – 500 мс. Длительность свечения равна длительности его отсутствия. При нажатии на первую кнопку возникает пауза, при нажатии на вторую все временные периоды увеличиваются на 100 мс.
7 Создайте программу, заставляющую включать N количество светодиодов, где N –суммарное число нажатий на первую кнопку. Функция второй кнопки – обнулить число N.
8 Создайте программу, заставляющую включать и выключать на 0,5 секунд N количество светодиодов, где N –суммарное число нажатий на первую кнопку. Функция второй кнопки – вычитать единицу из числа N.
9 Создайте программу, запускающую эффект «бегущих огней», нажатие на первую кнопку уменьшает N в два раза, где N это время горения светодиода. Нажатие на вторую кнопку увеличивает N в два раза. Изначально N равно 2 секундам.
10 Создайте программу, запускающую эффект фонарей взлетно-посадочной полосы, нажатие на первую кнопку уменьшает N на 100 мс, где N это время горения светодиода. Нажатие на вторую кнопку увеличивает N в два раза. Изначально N равно 1 секунде.

 

 



Поделиться:


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

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