СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Модули "Джойстик" и "Реле"

Категория: Прочее

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Модули "Джойстик" и "Реле"»

Модуль «Джойстик»


Подключение джойстика к Arduino позволит сделать дистанционное управление с помощью джойстика машинкой или роботом на Ардуино. Рассмотрим в статье, как подключить джойстик самостоятельно и сделать управление светодиодами с помощью джойстика на Ардуино.





Аналоговый джойстик представляет собой ручку, которая крепится на шарнире с двумя потенциометрами, определяющими положение джойстика по оси X и Y, и кнопкой Z. Наклон ручки вращает потенциометры и изменяет выходное напряжение, позволяя отследить степень отклонения ручки от центральной точки. При отпускании ручки джойстика, она плавно возвращается в центральное (нулевое) положение.




У модуля джойстика KY-023 есть свои недостатки. Дело в том, что ручка джойстика не всегда точно возвращается в центральное положение, поэтому следует учитывать в программе центральное положение ручки, как некоторый диапазон значений, а не точное значение. То есть, при положении ручки джойстика в центре, значение X и Y координат может находиться в диапазоне от 490 до 530, вместо 512.


Подключение джойстика к Arduino UNO


Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;

  • модуль джойстика ky-023;

  • 2 светодиода и 2 резистора;

  • макетная плата;

  • провода «папа-мама», «папа-папа».



Скетч. Управление джойстиком светодиодами

Сделаем плавное включение светодиода, управляемое от джойстика. Для этого подключите два светодиода через резистор к аналоговым портам 5 и 6. В следующем скетче, с помощью функции map(), переменные X и Y преобразуются из диапазона чисел от 0 до 1023 в диапазон чисел от 0 до 255. Подключите светодиоды к пинам 5 и 6 Ардуино и загрузите следующий скетч.


#define pinX A2 // ось X джойстика

#define pinY A1 // ось Y джойстика

#define swPin 2 // кнопка джойстика

#define ledPin 13 // светодиод на Pin 13

#define ledX 5 // светодиод на Pin 5

#define ledY 6 // светодиод на Pin 6


void setup() {

pinMode(ledX, OUTPUT);

pinMode(ledY, OUTPUT);


pinMode(ledPin, OUTPUT);

pinMode(pinX, INPUT);

pinMode(pinY, INPUT);

pinMode(swPin, INPUT);

digitalWrite(swPin, HIGH);

}


void loop() {

boolean ledState = digitalRead(swPin); // считываем состояние кнопки

digitalWrite(ledPin, ledState); // вкл./выкл. светодиод


int X = analogRead(pinX); // считываем значение оси Х

int Y = analogRead(pinY); // считываем значение оси Y


X = map(X, 0, 1023, 0, 255); // преобразуем значение X в другой диапазон

Y = map(Y, 0, 1023, 0, 255); // преобразуем значение Y в другой диапазон

analogWrite(ledX, X); // включаем светодиоды с разной яркостью

analogWrite(ledY, Y);

}




Модуль «Реле»


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



Реле в ардуино включает или выключает внешние устройства, определенным образом замыкая или размыкая отдельную электрическую сеть, в которую они подключены. С помощью ардуино и реле мы  управляем процессом включения или выключения так же, как включаем или выключаем свет дома – подавая команду на замыкание или размыкание. 


Наиболее распространенное реле для платы Ардуино выполняется в виде модуля, например, SONGLE SRD-05VDC. Устройство управляется напряжением 5 В, может коммутировать до 10 А 30 В DC и 10 А 250 В AC.

Схема изображена на рисунке. Реле состоит из двух не связанных между собой цепей – управляющая цепь А1 и А2 и управляемая 1, 2 и 3.



Между А1 и А2 имеется металлический сердечник. Если пустить по нему электрический ток, к нему притянется якорь (2). 1, 3 – неподвижные контакты. При отсутствии тока якорь будет около контакта 3.


Подключение реле к Ардуино

Рассмотрим одноканальный модуль реле. Он имеет всего 3 контакта, подключаются они к Ардуино Uno следующим образом: GND – GND, VCC – +5V, In – 3. Вход реле – инвертирован, так что высокий уровень на In выключает катушку, а низкий – включает.







Скетч для работы с реле


/*

Скетч для управления реле с помощью ардуино

Используем реле SONGLE SRD-05VDC

Реле ОТКРЫВАЕТСЯ при подаче низкого уровня сигнала (LOW) на управляющий пин.

Реле ЗАКРЫВАЕТСЯ при подаче высокого уровня сигнала (HIGH) на управляющий пин.

В данном примере мы просто открываем и закрываем реле раз в 5 секунд.

PIN_RELAY содержит номер пина, к которому подключено реле, которым мы будем управлять

В функции setup устанавливаем начальное положение реле (закрытое)

Если к реле будет подключена нагрузка(например, лампочка), то после запуска скетча она будет включаться и выключаться каждые 5 секунд

Для изменения периода мигания нужно изменить параметр функции delay(): поставив 1000 миллисекунд, выполучите 1 секунду задержки

В реальных проектах реле включается в ответ на обнаружение каких-либо внешних событий через подключение датчиков

*/

#define PIN_RELAY 5 // Определяем пин, используемый для подключения реле

// В этой функции определяем первоначальные установки

void setup()

{

pinMode(PIN_RELAY, OUTPUT); // Объявляем пин реле как выход

digitalWrite(PIN_RELAY, HIGH); // Выключаем реле - посылаем высокий сигнал

}

void loop()

{

digitalWrite(PIN_RELAY, LOW); // Включаем реле - посылаем низкий уровень сигнала

delay(5000);

digitalWrite(PIN_RELAY, HIGH); // Отключаем реле - посылаем высокий уровень сигнала

delay(5000);

}