gxsizor
Профи
(723)
4 месяца назад
gpt в помощь
gxsizorПрофи (723)
4 месяца назад
не попробуешь не узнаешь, на java 300 строчек легко пишет
gxsizorПрофи (723)
4 месяца назад
#include <Servo.h>
Servo rotate;
#define btn_up 2
#define btn_down 4
#define btn_left 3
#define btn_right 5
#define pinX A0 // Используем аналоговые пины
#define pinY A1
#define swPin 8
void setup() {
Serial.begin(9600);
rotate.attach(9);
pinMode(swPin, INPUT_PULLUP);
pinMode(btn_up, INPUT_PULLUP);
pinMode(btn_down, INPUT_PULLUP);
pinMode(btn_left, INPUT_PULLUP);
pinMode(btn_right, INPUT_PULLUP);
}
void loop() {
rotate.write(90); // Убедитесь, что значение в пределах 0-180
gxsizorПрофи (723)
4 месяца назад
int X = analogRead(pinX); // Чтение аналоговых значений
int Y = analogRead(pinY);
int UP = digitalRead(btn_up);
int DOWN = digitalRead(btn_down);
int RIGHT = digitalRead(btn_right);
int LEFT = digitalRead(btn_left);
Serial.print("X: ");
Serial.println(X);
Serial.print("Y: ");
Serial.println(Y);
Serial.print("UP: ");
Serial.println(UP);
Serial.print("DOWN: ");
Serial.println(DOWN);
Serial.print("RIGHT: ");
Serial.println(RIGHT);
Serial.print("LEFT: ");
Serial.println(LEFT);
delay(500); // Добавление задержки для удобочитаемости
}
gxsizorПрофи (723)
4 месяца назад
Некоторые изменения, внесённые в код:
Использование analogRead для чтения значений с аналоговых пинов pinX и pinY.
Изменение значения для rotate.write на 90, чтобы убедиться, что оно находится в пределах допустимого диапазона (0-180).
Добавление задержки delay(500), чтобы значения не обновлялись слишком быстро и было удобнее читать их в Serial Monitor.
Попробуйте загрузить этот код и проверить вывод в Serial Monitor. Если всё настроено правильно, вы должны видеть корректные значения, соответствующие положениям джойстика и состоянию кнопок.
Сергей Кузнецов
Оракул
(54879)
4 месяца назад
Ну думаю просто сигнал на портах равен нулю вот и результат
Daniil FalinУченик (95)
4 месяца назад
неа, там выводятся нули без предшествующих меток, а в графике отображается только одна переменная.
Сергей КузнецовОракул (54879)
4 месяца назад
Так ты не назначил пин swPin. как вывод так что команда digitalWrite(swPin,HIGH)не работает.
А ты не выводи в график , а выведи просто в порт и посмотри
Сергей КузнецовОракул (54879)
4 месяца назад
В плотное рисуется график, а в мониторе видно все в цифре. Ч ни когда и пользуюсь Портером мне это не удобно Я а вот монитором самый раз. Если там нули значит или битрейт не верный выставлен