Файл: Отчет Лабораторные работы 14 Проверил(а) Мусаджанова Дилобар Абдувахидовна.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.12.2023
Просмотров: 21
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО ПО РАЗВИТИЮ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И КОММУНИКАЦИЙ РЕСПУБЛИКИ УЗБЕКИСТАНА
ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ИМЕНИ МУХАММАДА АЛЬ-ХОРАЗМИ
Кафедра: Искусственный интеллект
Отчет
Лабораторные работы № 1-4
Проверил(а): Мусаджанова Дилобар Абдувахидовна
Выполнил: Турсуналиев. A
Группа: 420-20
Ташкент
2023 г
Лабораторная работа №1
Цель работы: Изучение управления светодиодом с помощью микроконтроллера Arduino.
Необходимые компоненты:
-
Микроконтроллер ArduinoUNO -
Плата для сборки -
Светодиод -
Сопротивление 220 Ом -
Разъем
Светодиод - это устройство, которое преобразует электричество непосредственно в свет. На английском светодиод – light-emitting diode.
Светодиод зависит от химического состава, используемого в нем полупроводника. Светодиод излучат свет в узкой части спектра, его свет яркий. Светодиод механически сложен и чрезвычайно надежен, его срок применения может достигать 100000 часов, что в 5-10 раз больше, чем у люминесцентной лампы. Поскольку светодиод является низковольтным элементом, он безопасен.
Светодиоды бывают полярные, важно в какую сторону их подключать. Положительные ножки (чуть длиннее) светодиода называется анодом, а отрицательные ножки – катодом. Как и все диоды, светодиоды пропускают ток в одном направлении – от анода к катоду. Поскольку ток течет от плюса к минусу, к аноду светодиода следует подключить напряжение 5В, а катод заземляется. Подключаем светодиод последовательно с резистором к микроконтроллеру D10 Arduino. Светодиоды всегда следует подключать последовательно с резистором, резистор используется как ограничитель тока. Чем больше сопротивление, тем больше ограничение тока. В лабораторной работе применяется сопротивление 220 Ом.
Рисунок 1.1 Схема подключения светодиода Arduino D10
Последовательно соединено со светодиодной ножкой. Все входные ножки Arduino изменяются по умолчанию. Используем ножки Arduino в качестве выхода, поэтому необходимо изменить для этого на контроллер. Выдается следующая соответствующая команда pinMode (10, OUTPUT);
Чтобы светодиод мигал, подаем высокое напряжение с определенным интервалом времени поочередно на контакт ArduinoD10 логическую 1(HIGH) и 0(LOW). Время изменения сигнала delay () через ножки ардуино задается с помощью командного скетча в заданном интервале времени реализует время удержания в миллисекундах (мс). В Listing 1.1 дан эскиз лабораторной работы.
Listing 1.1
constintLED=10; // 10 (D10) номер ножки для соединения светодиода
voidsetup O
{
// Изменим контакт, к которому подключен светодиод (OUTPUT)
pinMode(LED, OUTPUT);
}
void loop0
{
// подключаем светодиод подав логическую 1 к ножке(HIGH)
digitalWrite(LED,HIGH);
//По умолчанию 0 сек(1000 ms)
delay(1000);
// Выключаем светодиод подав к ножке логическую ноль (LOW)
digitalWrite(LED,LOW);
// по умолчанию 1 сек (1000 ms)
delay(1000);
}
Порядок выполнения лабораторной работы:
1. Светодиодная длинная ножка (анод) ArduinoD1 подключается к выходу, а другая ножка (катод) - сопротивлением 220 Ом подключается к контакту GND
2. Скетч из листинга 1.1 загружен на микроконтроллер Arduino.
3. Выключите светодиод и наблюдайте за процессом горения. Теперь о смене цикла светдиода можем поэкспериментировать со значением времени захвата в скетче путем изменения функции delay().
Лабораторная работа №2
Кнопка.Обработка нажатия кнопки на примере включения светодиода.
Цель работы: опыт работы с кнопкой включения. Иметь возможность включать светодиод при нажатии кнопки и выключать светодиод при отпускании кнопки через контроллер Arduino UNO.
Требуемые компоненты:
1. Контроллер Arduino UNO;
2. Плата для сборки;
3. Кнопка включения/выключения;
4. Светодиод;
5. Сопротивление 220 Ом ;
6. Резистор 10 кОм;
7. Соединительные провода.
В этом упражнении мы будем использовать точку соединения Arduino D2 в качестве входных данных. Это позволяет ему общаться с проектом в режиме реального времени, подключив кнопку. При использовании Arduino в качестве входов используются подтягивающие и подтягивающие резисторы., чтобы Arduino не «зависал» (застревал в произвольном состоянии), чтобы иметь заранее известное состояние (0 или 1). Подтягивающий резистор подтягивает вход к источнику +5 В, подтягивающий резистор подтягивает вход к GND. Кроме того, подтягивающий и подтягивающий резисторы гарантируют отсутствие короткого замыкания между +5 В и землей при нажатии кнопки. В обучении для подключения кнопки используются подтягивающие и подтягивающие резисторы. Схема соединительных скоб приведена на схеме 10.2. При выключенном выключателе вход D2 подтягивается к «земле» резистором 10 кОм, в этом случае ток ограничивается, а входное напряжение устанавливается на НИЗКИЙ уровень. Когда кнопка нажата, входной терминал подключен к правильному 5V. Большая часть тока протекает по пути наименьшего сопротивления через замкнутый ключ, и на входе генерируется ВЫСОКОЕ значение. Светодиод светится при нажатии кнопки., а при отпускании кнопки светодиод гаснет.
Рисунок 1. Схема подключения кнопки и светодиода.
Listing 1
Const int LED=10; // Точка подключения для подключения 10 светодиодов
Const int BUTTON=2; // Точка подключения для подключения 2-х кнопок
Void setup()
{
// Изменить точку подключения светодиода как выход
pinMode(LED, OUTPUT);
// Изменить точку подключения кнопки на вход
pinMode(BUTTON, INPUT);
}
void loop()
{
if (digitalRead(BUTTON) == LOW)
{
// включить светодиод, подав логическую 1 на контакт (HIGH)
цифровая запись (светодиод, низкий уровень);
}
else
{
// выключаем светодиод, подавая логический 0 на вывод (LOW)
digitalWrite(LED, HIGH);
}
}
Порядок выполнения работы
-
Длинная ножка (анод) светодиода подключается к цифровому выходу D10 Arduino, а другая ножка (катод) подключается к ножке GND через резистор 220 Ом. -
Одна ножка кнопки подключена к +5В, другая через резистор 10 кОм к GND, выход кнопки подключен к входу D2 Arduino (см. схему 10.2). -
Скетч из листинга 10.2 загружен на плату Arduino. -
Светодиод должен загораться при нажатии кнопки и гаснуть при отпускании кнопки. Усложним задачу - изменим состояние светодиода (вкл/выкл) при каждом нажатии на кнопку. -
Эскиз в листинге 10.3 загружен на плату Arduino.
Listing-10.3.
const int LED=10; // Точка подключения для подключения 10 светодиодов
const int Button=2; // Точка подключения для подключения 2-х кнопок
int tekButton = LOW; // Переменная для хранения текущего состояния кнопки
int prevButton = LOW; //
Переменная для сохранения предыдущего состояния кнопки
boolean ledOn = false; // текущее состояние светодиода (вкл/выкл)
voidsetup()
{ Изменяем точку подключения светодиода как выход
pinMode(LED,OUTPUT);
Изменяем точку подключения кнопки как входной
пинMode(Button,INPUT);
}
voidloop()
{
tekButton=digitalRead(Button);
if(tekButton==HIGH&&prevButton==LOW)
{
// нажатие на кнопку - изменение состояния светодиода
ledOn=!ledOn;
digitalWrite(LED,HIGH);
}
prevButton=singleButton;
}
Светодиод меняет свое состояние при нажатии кнопки. Но это не всегда происходит. Причиной этого являются вибрации, возникающие в кнопке.
Кнопка конструктивно представляет собой механическое устройство, которое образует систему пружинящих точек соединения. При нажатии на кнопку происходит не только изменение сигнала с низкого значения на высокое, при котором точки соединения переходят из одного состояния в другое несколько раз в течение нескольких миллисекунд, пока точки соединения не будут плотно соединены друг с другом, затем установлено ВЫСОКОЕ значение сигнала. Микроконтроллер фиксирует все эти ситуации , потому что сигнал, генерируемый вибрацией, не отличается от сигнала, генерируемого щелчком.
Эффект вибрации можно устранить через программу. Алгоритм его следующий:
-
Сохраняется предыдущее состояние и текущее состояние кнопки (в LOW инициализации). -
Читается текущее состояние кнопки. -
Если текущее состояние кнопки отличается от предыдущего состояния, подождите 5 мс , так как кнопка могла изменить свое состояние. -
Через 5 мс состояние кнопки считывается и используется как текущее состояние. -
Если предыдущее состояние кнопки было НИЗКОЕ, а текущее состояние ВЫСОКОЕ, то состояние светодиода меняется. -
Предыдущее состояние кнопки устанавливается на ее текущее состояние. -
Вернитесь к шагу 2. Добавляет антимерцающее программное обеспечение в Sketch. Получен код, показанный в listing 10.4.
Listing 10.4.
const int LED=10; // 10 точек подключения для подключения светодиода
const int BUTTON=2; // 2 точки подключения для подключения кнопки
int tekButton = LOW; // Изменить кнопку, чтобы сохранить ее текущее состояние
int prevButton = LOW; // Переменная для сохранения предыдущего состояния кнопки
// кнопки
boolean ledOn = false; // текущее состояние светодиода (включен/выключен)
void setup()
{
// изменить точку подключения светодиода как выхода
pinMode(LED, OUTPUT);
// Изменить точку подключения кнопки на вход
pinMode(BUTTON, INPUT);
}
// Функция для удаления джиттера.
// Принимает в качестве аргумента предыдущее состояние кнопки и возвращает текущее, boolean debounce(boolean last)
{
boolean current = digitalRead(BUTTON); // Прочитать состояние кнопки,
if (last != current) // если изменилось...
{
delay(5); // ждем5 мс
current = digitalRead(BUTTON); // Чтение состояния кнопки
return current; // Чтение состояния кнопки return
}
}
void loop()
{
tekButton = debounce(prevButton);
if (prevButton == LOW && tekButton == HIGH) // если нажать...
{
ledOn = !ledOn; // инвертируем состояние светодиода
}
prevButton = tekButton;
digitalWrite(LED, LEDOn); // меняем состояние светодиода
}
Скетч загружается на плату Arduino и проверяется его работа. Теперь все работает правильно , каждое нажатие кнопки будет менять состояние светодиода.
Лабораторная работа №2
Цель работы:
В данной лабораторной работе необходимо ознакомиться с работой переменного резистора и научится управлять освещением светодиода
, а также освоить изменение сопротивления и настройку переменного резистора.
Необходимые оборудование:
-
Arduino УНО микроконтроллер. -
Макетная плата. -
Переменный резистор 2 КОм. -
Светодиод. -
Сопротивление 220 ом. -
Провода с разъемом на двух концах.
Краткие теоретические сведения
В первом опыте на цифровом выходе был подключен светодиод с предельным сопротивление 220 ом. В данной работе необходимо произвести наблюдение за тем, как выбор предельного сопротивления и значения этого сопротивления влияет на яркость светодиода. Важной составляющей любой электро-цепи является уравнение закона Ома. Закон Ома определяет соотношения напряжения цепи, тока и сопротивления. Закон Ома определяется следующим выражением: I=U/R.
Здесь U-напряжения (Вольт), I- сила тока (Амперах), R-сопротивление(Ом).
Каждый элемент цепи имеет некоторое сопротивление и уменьшает напряжение. Понятно, что есть некоторое падение напряжения на светодиодах и работа осуществляется при определенных значениях тока. Чем больше ток, проходящий через светодиод тем ярче будет светить этот светодиод (до последнего порогового значения). Максимальное значения тока для большинства распространённых светодиодов составляет 20 мА.
Для светодиода обычно падение напряжения равно около 2 В. Напряжение источника должно быть 5 В между светодиодом и резистором, так как 2 В подключено к светодиоду, а остальные 3 В должны быть на резисторе. Так как мы знаем, что проходящее через светодиод максимальный постоянный ток равен 20мА, то мы можем найти предельное сопротивление:
R=U/I=3/0,02=150 Oм
Таким образом, через резистор с сопротивлением 150 Ом и светодиод протекает ток 20 мА. По мере увеличения значения сопротивления ток умещается. С увеличением величины сопротивления ток постепенно уменьшается и в зависимости от этого яркость свечения светодиода тоже уменьшается.
Чтобы изменить яркость свечение светодиода понадобиться переменный резистор. Они имеют разные формы и разные величины, но все конструкции имеют 3 ножки. Переменная величина сопротивления - это разность 2-х крайних ножек, которую определяет средняя ножка, эта нога изменяется от нулевого до максимального или же от максимального до нулевого значения (изменяется в зависимости от подключения).
В данном опыте переменный резистор подключается последовательно с резистором 220 Ом, это необходимо, чтобы не понизить значение переменного резистора до 0 и светодиод не испортился. Схема подключения приведена ниже: