Как подключить джойстик и сервопривод к Arduino UNO REV3?

Перед началом необходимо подготовить все необходимое.

Нам понадобиться:

1. Плата KYIV UNO аналог Arduino UNO REV3.

2. Джойстик 2-х осевой.

3. Соединительные провода "папа-мама". 

4. На компьютер необходимо установить среду программирования Arduino IDE.


На рисунках будет вид оригинальной платы так как схемы сделаны в программе Fritzing

Если все необходимое под рукой, приступаем к сборке схемы:

Проверяем схему, если все собрано правильно, приступим к написанию кода на языке программирования Cи.

Для тех, у кого нет опыта программирования, предлагается пример кода для проверки работы схемы.


/*  

  ------------------------------------------

  MakeRobot.com.ua

  Sample code for Arduino + servo + joystick

  Author: Oleksii Savchenko

  Kiev, 2018

  ------------------------------------------

*/


#define joyX A0

#define joyY A1


 

void setup() {

Serial.begin(9600);

}

 

void loop() {

// put your main code here, to run repeatedly:

xValue = analogRead(joyX);

yValue = analogRead(joyY);

 

//print the values with to plot or view

Serial.print(xValue);

Serial.print("\t");

Serial.println(yValue);

}


Проверяем и загружаем написанный код, нажав на кнопку Upload (Загрузить).  После успешной загрузки открываем Терминал для отображения значений переменных XValue  yValue. 

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


  

Пример подключения серво мотора, как видим управляющий провод подключен к пину D5. 

Так же предлагается пример кода на Си:


/*  

  ------------------------------------------

  MakeRobot.com.ua

  Sample code for Arduino + servo + joystick

  Author: Oleksii Savchenko

  Kiev, 2018

  ------------------------------------------

*/


#include <Servo.h>

Servo servo1;


int joyX = A0;                                               

int joyY = A1;                                               

int xValue;

int yValue;

int servo1_pin = 5;

int initial_position = 90;



void setup ( ) {

Serial.begin (9600);

servo1.attach (servo1_pin ); 

servo1.write (initial_position);

pinMode (joyX, INPUT);                     

pinMode (joyY, INPUT);                      

}


void loop ( ) {


xValue = analogRead (joyX);  

yValue = analogRead (joyY);                      


if (xValue < 300)  {

  if (initial_position < 10) { 

    } 

  else{ initial_position = initial_position - 20; servo1.write ( initial_position ); 

  delay (100); 

    }

 } 

    if (xValue > 700)  {

      if (initial_position > 180)

  {  

}  

else{ initial_position = initial_position + 20;

servo1.write ( initial_position ) ;

delay (100) ;

    }

  }

}


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

Лучшим учителем по программированию все же является практика. Удачных экспериментов!



 


В данной категории нет товаров.