Файл: Лабораторная работа 1 (Получение информации с датчиков).pdf
ВУЗ: Пермский национальный исследовательский политехнический университет
Категория: Методичка
Дисциплина: Системы реального времени
Добавлен: 15.11.2018
Просмотров: 1455
Скачиваний: 25
Ст. преп. каф. ИТАС Фёдоров Андрей Борисович
версия документа 2017-10-09
11
Рисунок 12
– Внешний вид двухосевого джойстика на печатной плате
Схема подключения джойстика к Arduino представлена на рисунке 13, а программа
– в листинге 4.
Рисунок 13
– Подключение джойстика на печатной плате к Arduino Uno
Листинг 4 – Программа считывания состояния джойстика
#define AX A0
//Ось X
#define AY A1
//Ось Y
#define BTN 2
//Кнопка
void setup()
{
// put your setup code here, to run once:
pinMode(BTN, INPUT);
//Настроить порт на ввод
Ст. преп. каф. ИТАС Фёдоров Андрей Борисович
версия документа 2017-10-09
12
digitalWrite(BTN, HIGH);
//Подключить внутренний подтягивающий резистор
Serial.begin(9600);
}
void loop()
{
// put your main code here, to run repeatedly:
Serial.print(analogRead(AX));
//Такой способ вывода результатов
Serial.print(" ");
//используется для корректной
Serial.print(analogRead(AY));
//работы «Плоттера по
Serial.print(" ");
//последовательному соединению»,
Serial.println(digitalRead(BTN) * 500);
//т.е. будут строится 3 графика
}
Задания по вариантам
1) В лабораторной работе был рассмотрен способ получения информации о
состоянии кнопки по времени, т.е. через каждые 50 мс. Напишите программу,
где бы состояние кнопки считывалось по событию, т.е. информация на выходе
появляется только тогда, когда кнопка нажата или отпущена.
2) Напишите программу для Arduino, где кнопка после нажатия и последующего
отпускания переключает выходной сигнал.
3) Подключите 4 кнопки (например, сенсорные) к Arduino и напишите
программу, где при наборе последовательности цифр 1234 к переменной
добавляется 1, а последовательности 4321 отнимается 1, результат выводится
на экран.
4) Подключите 4 кнопки (например, сенсорные) к Arduino и напишите
программу, где при наборе правильной последовательности выводится
результат.
5) Подключите 4 кнопки (например, сенсорные) к Arduino и напишите
программу, где при вводе простого числа (от 1 до 100) выводится лог. 1, а
иначе – лог. 0.
6) Напишите программу для Arduino, где поворотом энкодера устанавливается
первое слагаемое, после нажатия на кнопку устанавливается второе слагаемое,
после нажатия – сумма.
7) Напишите программу для Arduino, где поворотом энкодера устанавливается
уменьшаемое, после нажатия на кнопку устанавливается вычитаемое, после
нажатия – разность.
8) Напишите программу для Arduino, где поворотом энкодера устанавливается
первый множитель, после нажатия на кнопку устанавливается второй
множитель, после нажатия – произведение.
9) Напишите программу для Arduino, где поворотом энкодера устанавливается
делимое, после нажатия на кнопку устанавливается делитель, после нажатия –
частное.
10) Напишите программу для Arduino, где после оборота джойстика по часовой
стрелке на выходе формируется логическая единица.
11) Напишите программу для Arduino, где после оборота джойстика против
часовой стрелке на выходе формируется логическая единица.
Ст. преп. каф. ИТАС Фёдоров Андрей Борисович
версия документа 2017-10-09
13
Требования к содержанию отчета
Отчет по лабораторной работе должен содержать следующие пункты:
1) Цель и задачи лабораторной работы.
2) Краткие теоретические сведения.
3) Подключение кнопки/геркона через дискретный интерфейс.
4) Подключение кнопки с внешним питанием через дискретный интерфейс.
5) Подключение энкодера к дискретным портам ввода.
6) Подключение кнопок через аналоговый интерфейс.
7) Подключение джойстика через аналоговый интерфейс.
8) Задание согласно своему варианту.
9) Ответы на контрольные вопросы.
10) Вывод по лабораторной работе.
Контрольные вопросы
1) Если задержка программы равна 50 мс, то с какой частотой будет
опрашиваться кнопка. А что, если события (нажатия на кнопку) будут
происходить с большей частотой?
2) Что такое «дребезг контактов»? Почему это явление возникает? Как с ним
борются?
3) Что будет, если подключить и внешний и внутренний подтягивающий резистор
одновременно для считывания состояния кнопки?
4) Каковы недостатки самого простого способа подключения кнопки? Что нужно
сделать, чтобы кнопка заработала правильно?
Список использованных источников
1) Аппаратная платформа Arduino [Электронный ресурс]. URL: http://arduino.ru/
(дата обращения: 01.09.2017)
2) Исследование универсального USB-программатора - Современные наукоемкие
технологии (научный журнал) [Электронный ресурс]. URL: https://www.top-
technologies.ru/ru/article/view?id=33695 (дата обращения: 01.09.2017)
3) НОУ ИНТУИТ. Лекция. Процессорное ядро и память микроконтроллеров
[Электронный
ресурс].
URL:
http://www.intuit.ru/studies/courses/3/3/lecture/72?page=2
(дата
обращения:
01.09.2017)
4) Порты ввода-вывода микроконтроллера [Электронный ресурс]. URL:
http://radio-stv.ru/mikrokontrolleri/ustroystvo-i-programmirovanie-
mikrokontrollerov-dlya-nachinayushhih/portyi-vvoda-vyivoda-mikrokontrollera
(дата обращения: 01.09.2017)