Код: Выделить всё
#include <LiquidCrystal.h> //подключаем библиотеку для работы с экраном
#define axis_X 8 // джойстик ось Х подключен к pin 8
#define axis_Y 9 // джойстик ось Y подключен к pin 9
#define axis_Z 2 // джойстик кнопка по Z подключенa к pin 9
LiquidCrystal lcd(8, 9, 10, 11, 12, 13); // указываем пины экрана
int value_X; // указываем типы переменных
int value_Y;
int value = 0;
int value_Z = 0;
void setup() {
pinMode(axis_Z, INPUT);// определяем Z как вход
lcd.begin(20, 4); // указываем размкрность экрана
lcd.setCursor(5, 1); // переводим курсор в позицию 5.1
lcd.print("CNC-CLUB.RU"); // выводим текст
delay(3000); // ждем 3 секунды
lcd.clear(); // очищаем экран
}
void loop() {
lcd.setCursor(0, 0); // переводим курсор в позицию 0.0
value_X = analogRead(axis_X); // считываем показания с джойстика по оси Х
lcd.print("X = " ); // выводим текст
lcd.print(value_X, DEC); // выводим значение по оси Х в десятиричной системе счисленя
lcd.print(" " ); // после значения выводим пробел
lcd.setCursor(0, 1); // итд
value_Y = analogRead(axis_Y);
lcd.print("Y = " );
lcd.print(value_Y, DEC);
lcd.print(" " );
if(value_Y >= 0 && value_Y < 100) value = value - 10;
if(value_Y > 100 && value_Y < 300) value = value - 5;
if(value_Y > 300 && value_Y < 505) value = value - 1;
if(value_Y > 515 && value_Y < 700) value = value + 1;
if(value_Y > 700 && value_Y < 900) value = value + 5;
if(value_Y > 900) value = value + 10;
lcd.setCursor(0, 3);
value_Y = analogRead(axis_Y);
lcd.print("S = " );
lcd.print(value, DEC);
lcd.print(" " );
lcd.setCursor(0, 2);
lcd.print("Z = " );
value_Z = digitalRead(axis_Z);
lcd.print(value_Z, DEC);
if(value_Z == 1) value = 0;
lcd.print(" " );
delay(200);
}
То, что он делает: при отклонении джойстика по оси Y в одну сторону, S увеличивается(чем сильнее отклоняем - тем больше увеличивается), при отклонении в другую сторону - уменьшается. при нажатии на джойстик(ось Z) - S обнуляется!


