по дисциплине «Основы микропроцессорной техники»




ОТЧЕТ

По лабораторной работе № 7

по дисциплине «Основы микропроцессорной техники»

Тема: «Бегущий огонек»

 

Выполнил:

Кузнецов Дмитрий

студент 2 курса гр. ИТС-Б-З-16-1

Инфокоммуникационные технологии

и системы связи

Заочной формы обучения

 

Преподаватель:

Швецов Николай Иванович

 

 

Ставрополь, 2018

Цель: разработать контроллер последовательного включения или выключения сегментов светодиодной шкалы (бегущий огонёк).

Ход работы:

В данной работе продемонстрирован эффект бегущего огня. Для управления светодиодами используется манипуляции с портами Arduino.Схема структурная электрическая устройства «бегущего огонька»представлена на рисунке1. Мы будем напрямую записывать данные в порты Arduino. Это лучше, чем работать с конкретными входами/выходами контроллера. Это позволит установить значения для светодиодов при помощи одной лишь операции.

Рис.1. Схема структурная электрическая устройства бегущий огонек

 

Схема функциональная электрическая светильника с управляемой яркостью представлена на рисунке 2 и содержит процессор, представленный микроконтроллером ArduinoUNO, подключенный к ПК через USB кабель. К процессору, через 10 резисторов номиналом 220 Ом, подключена 1 светодиодная шкала, с помощью которой будет мы сделаем бегущий огонек.

Рисунок 2. Схема функциональная электрическаяустройства бегущий огонек

 

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

Светодиодная шкала выбрана из микропроцессорного комплекта «Матрёшка Z»; она согласован по своим характеристикам – рабочее напряжение, рабочий ток и сопротивление прямого включения – с микроконтроллером ArduinoUno. Для защиты выхода контроллера от перегрузки и защиты светодиодной шкалы от выхода из строя в соответствии с рекомендациями используем ограничивающие резисторы номиналом 220 Ом, которые могут быть определенырассчетным путем либо взяты из руководящего материала по применению микроконтроллеров ArduinoUno. На ПЭС (рисунок3) подразумевается подключение Arduino через порт USB к ПК. Питание будет осуществляться через этот же USB-порт.

Рисунок 3. Принципиальная электрическая схема устройства бегущий огонек

 

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

Рисунок 4. Монтажная схемаустройства бегущий огонек

 

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

Рисунок 5. Структурная схема алгоритмаустройства бегущий огонек

 

Разработка программного кода устройствабегущий огонек (скетча)представлена в листинге:

Рисунок 6 – Листинг скетчаустройствабегущий огонек

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

 

 

Приложение А

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

1. С помощью выражения for организуется цикл со счетчиком. В данном случае для настройки портов на выход. Чтобы сделать такой цикл, нужно:

a. Инициализировать переменную-счетчик, присвоив ей первоначальное значение. В данном случае: intpin = FIRST_LED_PIN;

b. Указать условие, до достижения которого будет повторяться цикл. В данном случае: pin<= LAST_LED_PIN;

c. Определить правило, по которому будет изменяться счетчик. В данном случае ++pin (см. ниже об операторе ++).

2. Например, можно сделать цикл for (int i = 10; i > 0; i = i - 1). В этом случае:

a. Переменной i присваивается значение 10;

b. Это значение удовлетворяет условию i > 0;

c. Поэтому блок кода, помещенный в цикл, выполняется первый раз

d. Значение i уменьшается на единицу, согласно заданному правилу, и принимает значение 9;

e. Блок кода выполняется второй раз;

f. Всё повторяется снова и снова вплоть до значения i равного 0;

g. Когда i станет равна 0, условие i > 0 не выполнится, и выполнение цикла закончится;

h. Контроллер перейдет к коду, следующему за циклом for;

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

4. Переменная-счетчик, объявляемая в операторе for, может использоваться внутри цикла. Например, в данном эксперименте pin последовательно принимает значения от 2 до 11 и, будучи переданной в pinMode, позволяет настроить 10 портов одной строкой, помещенной в цикл.

5. Переменные-счетчики видны только внутри цикла. Т.е. если обратиться к pin до или после цикла, компилятор выдаст ошибку о необъявленной переменной.

6. Конструкция i = i - 1 в пояснении выше не является уравнением! Мы используем оператор присваивания = для того, чтобы в переменную i поместить значение, равное текущему значению i, уменьшенному на 1.

7. Выражение ++pin — это т.н. оператор инкремента, примененный к переменной pin. Эта инструкция даст тот же результат, что pin = pin + 1.

8. Аналогично инкременту работает оператор декремента --, уменьшающий значение на единицу. Подробнее об этом в статье про арифметические операции.

9. Тип данных unsignedint используют для хранения целых чисел без знака, т.е. только неотрицательных. За счет лишнего бита, который теперь не используется для хранения знака, возможно хранить в переменной такого типа значения до 65 535.

10. Функция millis возвращает количество миллисекунд, прошедших с момента включения или перезагрузки микроконтроллера. Здесь используется она для отсчета времени между переключениями светодиодов.

11. С помощью выражения (ms / 120) % 10 определяется, какой из 10 светодиодов должен гореть сейчас. Перефразируя, определяется какой отрезок длиной в 120 мс идет сейчас и каков его номер внутри текущего десятка. Добавляется порядковый номер отрезка к номеру того порта, который в текущем наборе выступает первым.

12. То, что гасится светодиод с помощью digitalWrite(pin, LOW) всего через 10 мс после включения не заметно глазу, т.к. очень скоро будет вновь вычислено, какой из светодиодов включать, и он будет включен — только что погашенный или следующий.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-09-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: