что делаю не так???

MITSTAR
Offline
Зарегистрирован: 29.12.2016

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

#include<Servo.h>
#define DR_PIN 10
#define JOSX_PIN A0
#define JOSY_PIN A1
Servo Wheel;

int rotX = 0;
int rotY = 0;
int i= 0;
int j =0;

void setup() {
    pinMode(DR_PIN,OUTPUT);
    pinMode(JOSY_PIN, INPUT);
    Wheel.attach(6); //если закомментировать эту строку, начинает работать моторчик 
    Serial.begin(9600);
    pinMode(JOSX_PIN, INPUT);
}

void loop() {
    rotX = analogRead(JOSX_PIN);
    rotY = analogRead(JOSY_PIN);
  int angle = rotY/4;
    angle = constrain(angle,70,220);
    Wheel.write(angle);

    i = map(rotX, 512, 1023, 0, 254);
    j = map(rotX, 0, 512, 254, 0);

    if(i>=0){
        analogWrite(LED_PIN, i);
    }

    if(j>0){
        analogWrite(LED_PIN, j);
    }

delay(10);
Serial.print(i); 
Serial.print("\t");
Serial.print(rotX); 
Serial.print("\t"); 
Serial.print(j);
Serial.print("\t"); 
Serial.print(rotY); 
Serial.print("\t"); 
Serial.print(angle); 
Serial.print("\t"); 
//Serial.print(temp); 
Serial.print("\n"); 
}

 

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

что вы пытаетесь сделать строками 27-36 ? :)

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

Может это?

#include<Servo.h>
#define DR_PIN 10
#define JOSX_PIN A0
#define JOSY_PIN A1
Servo Wheel;

int rotX = 0;
int rotY = 0;
int i= 0;
//int j =0;

void setup() {
    pinMode(DR_PIN,OUTPUT);
    pinMode(JOSY_PIN, INPUT);
    Wheel.attach(6); //если закомментировать эту строку, начинает работать моторчик 
    Serial.begin(9600);
    pinMode(JOSX_PIN, INPUT);
}

void loop() {
    rotX = analogRead(JOSX_PIN);
    rotY = analogRead(JOSY_PIN);
  int angle = rotY/4;
    angle = constrain(angle,70,220);
    Wheel.write(angle);   

    if(rotX > 0 && rotX < 511){
        i = map(rotX, 0, 511, 255, 0);        
    }

    else if(rotX > 512 && rotX < 1023){
        i = map(rotX, 512, 1023, 0, 255);
    }
analogWrite(DR_PIN, i);

delay(10);
Serial.print(i); 
Serial.print("\t");
Serial.print(rotX); 
Serial.print("\t"); 
Serial.print(j);
Serial.print("\t"); 
Serial.print(rotY); 
Serial.print("\t"); 
Serial.print(angle); 
Serial.print("\t"); 
//Serial.print(temp); 
Serial.print("\n"); 
}

 

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

А чего печатает-то? Не хотите показать?

MITSTAR
Offline
Зарегистрирован: 29.12.2016

Да, это. Извеняюсь, что не доправил

MITSTAR
Offline
Зарегистрирован: 29.12.2016

Проблема решена. Поменял пины на 5, 6 все заработало. Я использую джостик, там в центральном положении скорость 0 должна быть.