Ошибка В Оси Y arduino joystick

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

Ошибка В Оси Y arduino joystick

В общем я новичок в "Arduino", и хотел сделать простой проект:

Есть 4 светлодиода, расположенные навхрест и есть джойстик, когда ми отводим его вверх, то горит верхний зеленный светлодиод, вниз - синий нижний, влево - желтый слева, вправо - красный справа.

Ося Х работает нормально, а ося Y показывает 1015-1023. Как это можно решить? Вот код:

#define green 8
#define blue 9
#define yellow 10
#define red 11

#define x A1
#define y A2

void setup() {
    pinMode(x, INPUT);
    pinMode(y, INPUT);

    pinMode(green, OUTPUT);
    pinMode(blue, OUTPUT);
    pinMode(yellow, OUTPUT);
    pinMode(red, OUTPUT);
    
    Serial.begin(9600);
    
    digitalWrite(red, 0);
    digitalWrite(green, 0);
    digitalWrite(yellow, 0);
    digitalWrite(blue, 0);
}

void loop() {   
//    Serial.println(analogRead(y));        Тест оси Y
//    delay(500); 
    while (analogRead(x) < 400) {
      digitalWrite(green, 0);
      digitalWrite(blue, 0);
      digitalWrite(yellow, 1);
      digitalWrite(red, 0);
      Serial.println("LEFT");
      delay(150);
    }
    while (analogRead(x) > 600) {
      digitalWrite(green, 0);
      digitalWrite(blue, 0);
      digitalWrite(yellow, 0);
      digitalWrite(red, 1);
      Serial.println("RIGHT");
      delay(150);
    }
     
    if (analogRead(y) < 400) {
      digitalWrite(blue, 1);
      digitalWrite(yellow, 0);
      digitalWrite(red, 0);
      digitalWrite(green, 0);
      Serial.println("DOWN");
      delay(150);
    }
    else if (analogRead(y) > 600) {
      digitalWrite(blue, 0);
      digitalWrite(yellow, 0);
      digitalWrite(red, 0);
      digitalWrite(green, 1);
      Serial.println("UP");
      delay(150);
    }
}

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Для начала поменяйте местами оси джойстика - узнаете, проблема аппаратная или программная.

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

Меняю оси местами - и в Х и в Y появляеться проблема

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

?

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

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

Скорее всего резистор сломанный.

AlexTLN
Offline
Зарегистрирован: 14.05.2016

На другой аналоговый пин попробуйте повесить А2(у).

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

не работает :(

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

винимаю землю: показывает 1023 по Х, вставляю обратно: 1023 по Y

AlexTLN
Offline
Зарегистрирован: 14.05.2016

Попробуйте токоограничивающие резисторы поставить на Х и У.

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

на 5V?

зачем?

какое сопротевление?

на минус всего модуля джойстика?

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Со схемой разберитесь. 

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

?

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

В чём проблема как исправить эту ошибку?

Больше ничего не надо

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Схему подключения и обозначения всех используемых элементов «в студию». Желательно со ссылками - где покупали. 

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

ок, пойду сделаю схему

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

OstapenkoK пишет:

Меняю оси местами - и в Х и в Y появляеться проблема

Какая проблема?

Напишите подробно, в чем эта проблема проявляется.

Неужели Вы думаете, что одного слова "проблема" достаточно, чтобы поставить диагноз?

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

аналоговый выход в которой подключена ось Y всегда выдает значение от 1015-1023

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

Джойстик:

GND = -

+5V = +

VRX = A1

VRY = A3

 

И:

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

В коде А2, про А3 ни слова. На схеме они вообще не задействованы. 

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

я А2 переключил на А3 по совету одного сверху, в коде потом тоже все изменил. Первый раз делал схему, не знаю как сдеать джойстик) его нет в списке компонентов.

OstapenkoK
Offline
Зарегистрирован: 15.11.2021
#define green 8
#define blue 9
#define yellow 10
#define red 11

#define x A1
#define y A3

void setup() {
    pinMode(x, INPUT);
    pinMode(y, INPUT);

    pinMode(green, OUTPUT);
    pinMode(blue, OUTPUT);
    pinMode(yellow, OUTPUT);
    pinMode(red, OUTPUT);
    
    Serial.begin(9600);
    
    digitalWrite(red, 0);
    digitalWrite(green, 0);
    digitalWrite(yellow, 0);
    digitalWrite(blue, 0);
}

void loop() {   
  while (analogRead(x) < 400) {
      digitalWrite(green, 0);
      digitalWrite(blue, 0);
      digitalWrite(yellow, 1);
      digitalWrite(red, 0);
      Serial.println("LEFT");
      delay(150);
    }
    while (analogRead(x) > 600) {
      digitalWrite(green, 0);
      digitalWrite(blue, 0);
      digitalWrite(yellow, 0);
      digitalWrite(red, 1);
      Serial.println("RIGHT");
      delay(150);
    }
     
    if (analogRead(y) < 400) {
      digitalWrite(blue, 1);
      digitalWrite(yellow, 0);
      digitalWrite(red, 0);
      digitalWrite(green, 0);
      Serial.println("DOWN");
      delay(150);
    }
    if (analogRead(y) > 600) {
      digitalWrite(blue, 0);
      digitalWrite(yellow, 0);
      digitalWrite(red, 0);
      digitalWrite(green, 1);
      Serial.println("UP");
      delay(150);
    }
}

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Что за джойстик то? Секретная разработка НАТО?))

OstapenkoK
Offline
Зарегистрирован: 15.11.2021
BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

«Отсюда» пишется слитно. У меня нет такого набора, как мне узнать что там за джойстик? Хоть по фото погугли чтоль. 

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

Джойстик для Arduino - купить с доставкой по Киеву и Украине, цены, отзывы,  фото | RoboStore

Стандартный, дешевый джойстик. Ничего особенного

nik182
Offline
Зарегистрирован: 04.05.2015

А тестером измерить напряжение, которое на ноги АЦП подаётся от Х и Y ? Как изменяется когда двигается джойстик?

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

нету тестера :(

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

OstapenkoK пишет:

аналоговый выход в которой подключена ось Y всегда выдает значение от 1015-1023

Если Вы пишете правду, то меняйте Ардуину - она неисправна.

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

я когда в тот же пин подключил ось Х, она работала. А Y поставил в другой пин, не работает :(

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

не в Ардуине дело

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

OstapenkoK пишет:

не в Ардуине дело

Да. Всё дело в том, что у тебя нету ни тестера, ни мозгов, ни желания что-либо исправить.  "ПАМАГИТИ!!!" тут не работает

nik182
Offline
Зарегистрирован: 04.05.2015

Нету тестера, берём батарейку. Плюсом к А1 А2 минусом к земле. Ардуина должна показать на обоих входах где то 300 с чем то. Если так, то ардуина не причём, или соединения не правильно или джойстик поломатый.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

nik182 пишет:
Нету тестера, берём батарейку. Плюсом к А1 А2 минусом к земле. Ардуина должна показать на обоих входах где то 300 с чем то. Если так, то ардуина не причём, или соединения не правильно или джойстик поломатый.

Батарейка с напряжением 1,5В !!! )

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

Всё верно. Показывает 311-312 на обох пинах

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Меняйте джойстик. Что то не так у него с резистором по оси Y

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

что если я поставлю туда свой резистор?

OstapenkoK
Offline
Зарегистрирован: 15.11.2021

Ладно забейте. Тему можно закрыть

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

OstapenkoK пишет:

нету тестера :(

Купите! И никак по-другому. Касается не только этой проблемы. А ещё миллиона будущих.

kalapanga
Offline
Зарегистрирован: 23.10.2016

OstapenkoK пишет:

Ладно забейте. Тему можно закрыть

Обычно такой поворот означает, что Зоркий Глаз наконец заметил, что не туда провода подключал, ну или соплю в макетке пошевелил! :)