Научиться управлять с помощью пульта дистанчионного управления схемой с ИК-модулем. Промониторить с помощью последовательного порта кнопки пульта дистанционного управления. Написать код в среде разработки Arduino IDE для этой схемы.
Описание схемы:
Необходимые материалы:
Возьмите все необходимые материалы. Удобно расположите плату беспаячного монтажа и микроконтроллер. Аккуратно, без сильных нажимов, во избежании поломки материалов, подсоедините каждый элемент как показано на схеме. Внимательно проверьте правильно ли подключены элементы, проверьте полярность элементов, посмотрите заземлены ли цепь.
Схема лабораторной установки:
Макетная плата:
Принципиальная схема:
Пояснение к принципиальной схеме:
Как видно на схеме вместо элемента приемника стоит другой, это сделано вследствие того, что в программе не было ИК-модуля. Как видно из схемы у модуля 7 выходов. Распиновка сверху-вниз:
Задание на программирование лабораторной установки:
Написать программу для собранной схемы, которая будет выполнять следующие действия: запрограмировать 4 канала
при нажатии на кнопку_1 светодиод должен моргать бесперебойно меняя состояние каждые 50мс, при нажатии на кнопку_3 светодиод должен включиться и гореть пока есть питания, либо пока не будет выключен соответствующей кнопкой. Кнопка_2 - отменяет действие кнопки_1, при работающем светодиоде от кнопки 3 не должно происходить ничего. Кнопка_4 отменяет действие кнопки_3, при работающем светодиоде от кнопки_1 не должно происходить ничего.
Алгоритм написания программы:
Фото/видео отчет по выполненному заданию:
Программный код:
#include <boarddefs.h>
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>
const int button_A = 5;
const int button_B = 9;
const int button_D = 4;
const int button_C = 3;
const int led = 6;
void setup ()
{
pinMode (button_D, INPUT);
pinMode (button_A, INPUT);
pinMode (button_C, INPUT);
pinMode (button_B, INPUT);
pinMode (led, OUTPUT);
Serial.begin (9600);
}
void loop ()
{
if (digitalRead(button_D) == HIGH)
{
Serial.println (button_D);
for (int i = 1; i > 0; i++)
{
digitalWrite (led, HIGH);
delay (500);
digitalWrite (led, LOW);
if (digitalRead(button_C) == HIGH){
Serial.print ("button C was pushed:");
Serial.println(button_C);
break;
}
}
}
if ((digitalRead(button_B) == HIGH))
{
Serial.println (button_B);
for (int i = 1; i > 0; i++)
{
digitalWrite (led, HIGH);
delay (50);
digitalWrite (led, LOW);
delay (50);
if (digitalRead(button_A) == HIGH){
Serial.print ("button A was pushed:");
Serial.println(button_A);
break;
}
}
}
}
Выполните творческое задание:
Подключите реле с сервомотором, и датчик звука. И запрограмируйте 4 канала следующим образом: 1. включает реле с сервомотором, и отключает датчик звука если включен. 2. включает датчик звука. 3. выключает реле с сервомотором. 4.Имитирует замок - принажатии поворачивает сервомотор от 0 до 180 далее зажигается светодиод который оповещает "Замок открыт", если в течение 10 секунд е происходит никаких действий(нажатий), то поворачивает сервомотор в предыдущее состояние.
Замечания к работе:
Заключение: Я выполнил лабораторную работу в которой изучается модуль с ИК-приемником управляемый с помощью четырёхканального пульта дистанционного управления. Собрал схему с включением этих элементов. И реализовал поставленную программную задачу.