Помогите со скетчем

Статус
В этой теме нельзя размещать новые ответы.

JesterKing

✩✩✩✩✩✩✩
22 Фев 2021
13
0
Заголовок темы должен отражать содержимое. Переформулируй или тема будет удалена
Доброго дня. Соединил две ардуино с помощью nrf24l01. К одной припоял серву к другой джойстик. При включении данной системы сервопривод начинает колебаться.
В чем проблема?
#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

RF24 radio(7, 8); // CSN, CE

const byte address[6] = "00001";



int x_key = A1;

int y_key = A0;

int x_pos;

int y_pos;



void setup() {

radio.begin();

radio.openWritingPipe(address);

radio.setPALevel(RF24_PA_MIN);

radio.stopListening();



pinMode (x_key, INPUT) ;

pinMode (y_key, INPUT) ;

}



void loop() {

x_pos = analogRead (x_key) ;

y_pos = analogRead (y_key) ;

radio.write(&x_pos, sizeof(x_pos));

delay(100);

}



КОД ПРИЕМНИКА:

#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

#include <Servo.h>

Servo servo;

RF24 radio(7, 8); // CSN, CE

const byte address[6] = "00001";

int servo_pin = 6;



void setup() {

Serial.begin(9600);

radio.begin();

servo.attach (servo_pin ) ;

radio.openReadingPipe(0, address);

radio.setPALevel(RF24_PA_MIN);

radio.startListening();

}



void loop() {

if (radio.available()) {

int x_pos ;

radio.read(&x_pos, sizeof(x_pos));

Serial.println(x_pos);

x_pos = map(x_pos, 0, 1023, 0, 180);

if (x_pos>400 && x_pos<600)

{



}

else{

servo.write (x_pos) ;

}

}

}
 
Изменено:

Старик Похабыч

★★★★★★★
14 Авг 2019
4,159
1,267
Москва
Отлично, тогда что видно:
данные приходят одни и те же, тогда колебаний быть не должно. Колебания большие ?

Простой код типа:

C++:
#include <Servo.h>
Servo servo; 

void setup() {
servo.attach (servo_pin ) ;
} 

void loop() {
  servo.write (89) ;
  delay(100)
}
покажет будет ли колебаться серва.
Если колебаний нет, то серва исправна и надо смотреть сочетания. Т.к. 6 пин завязан с ШИМ, то они связаны с таймером, возможно поможет смена пина
 
Статус
В этой теме нельзя размещать новые ответы.