Arduino Nano и сервоприводы.

MorAlex
Offline
Зарегистрирован: 12.10.2015

Всем доброго времени суток!

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

Проблема такая. К Arduino Nano подключены два сервопривода G-SUN и один джойстик Keyes. На джойстике питание и два сигнальных контакта от резисторов. Сигнальные провода джойстика идут на аналоговые входы, цифровые от ардуины подключены к сервоприводам.

И вот такая проблема. С джойстика читается только или горизонталь или вертикаль. При этом поворачиваются сразу оба сервопривода. Хотя подключено всё естественно на разные входы/выходы.

Почему так? Перепробовал разные программы. Ведут себя одинаково. Ниже пример одной из.

Lsrnm#include <Servo.h>
Servo servo;
const int servo1 = 5;
const int servo2 = 7;
const int joyH = 1;
const int joyV = 2;
 
nt servoVal;
Servo myservo1;
Servo myservo2;
 
void setup() {
 
myservo1.attach(servo1);
myservo2.attach(servo2);
Serial.begin(9600);
 
}
 
void loop(){
 
outputJoystick();
servoVal = analogRead(joyH);
servoVal = map(servoVal, 0, 1023, 0, 180);
myservo2.write(servoVal);
 
servoVal = analogRead(joyV);
servoVal = map(servoVal, 0, 1023, 70, 180);
myservo1.write(servoVal);
delay(15);
 
}
 
void outputJoystick(){
Serial.print(analogRead(joyH));
Serial.print ("---");
Serial.print(analogRead(joyV));
Serial.println ("----------------");
 
}
qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
/*
*/
#include <Servo.h>
//----------Компоновка----------------------------------
Servo Servo1;
Servo Servo2;
//----------------main()-------------------------
void setup() {
  Serial.begin(9600);
  Servo1.attach(/*пин серво1*/5);
  Servo2.attach(/*пин серво2*/7);
}
void loop() {
  delay(15);
  int val_H = map(analogRead(/*пин джойстика гориз*/A1), 0, 1023, 0, 180);
  int val_V = map(analogRead(/*пин джойстика верт*/A2), 0, 1023, 0, 180);
  Servo1.write(val_H);
  Servo2.write(val_V);
  Serial.println();
  Serial.print("H:");
  Serial.print(val_H);
  Serial.print("    V:");
  Serial.print(val_V);
}
/*Скетч использует 3562 байт (11%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 240 байт (11%) динамической памяти, оставляя 1808 байт для локальных переменных. Максимум: 2048 байт.
*/

 

MorAlex
Offline
Зарегистрирован: 12.10.2015

Идеально работает! СПАСИБО! А то я уже всю голову сломал.

Если можно, вопрос. Зачем эта строка « "    V:" » имеет именно такой вид? Пробелы зачем?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

MorAlex пишет:

Идеально работает! СПАСИБО! А то я уже всю голову сломал.

Если можно, вопрос. Зачем эта строка « "    V:" » имеет именно такой вид? Пробелы зачем?

Ну как приятней читать так  Н:180V:180  или так Н:180   V:180 ?