Ви не увійшли.
Сторінки 1
Народ, всем привет! Нужна помощь! Загрузил простенький скетч на управление двумя моторами и сервой через nrf24l01 и раньше всё работало (пробовал на uno. nano и mega, но ничего не помогает). Раньше всё работало, с точно таким же скетчем, с этими же самими платами, микроконтроллеры лежали в нетронутом месте, если что. Я в этом деле новичок, по этому прошу совет. Ардуино последней версии. Ошибок при загрузке скетча никаких не вылетает. Скетч компилируется нормально, обьём не более 15% из всей памяти флеш. Переферийные устройства те же, не менял. Приёмопередатчики так же и всех их по отдельности проверял - всё работает. После загрузки скетча на плату приёмника и на плату передатчика и изменения, после этого, положения джойстика, ничего не происходит. Может я что то упускаю... Не знаю, прошу помощи! Скетчи прилагаются!
##################################### скетч приёмника
#include <RF24.h>
#include <Servo.h>
#include <SPI.h>
#include "RF24.h"
Servo servo1;
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int msg[1];
int data;
int pos;
int fspeed; // forward speed
int bspeed; // backward speed
const int ena = 2; // PWM pin to change speed
const int in1 = 3; // direction pin 1
const int in2 = 4; // direction pin 2
const int in3 = 5; // direction pin 3
const int in4 = 6; // direction pin 4
const int enb = 7; // PWM pin to change speed
void setup()
{
pinMode(in1, OUTPUT); // connection to L298n
pinMode(in2, OUTPUT); // connection to L298n
pinMode(ena, OUTPUT); // connection to L298n
pinMode(in3, OUTPUT); // connection to L298n
pinMode(in4, OUTPUT); // connection to L298n
pinMode(enb, OUTPUT); // connection to L298n
servo1.attach(8);
delay(0);
radio.begin();
radio.openReadingPipe(1, pipe);
radio.startListening();
}
void loop()
{
if (radio.available())radio.read(msg, 1);
if (msg[0] < 127 && msg[0] > -1)data = msg[0], pos = map(data, 0, 126, 7, 47), servo1.write(pos);
if (msg[0] >= 128 && msg[0] <= 189)data = msg[0], bspeed = map(data, 255, 201, 0, 255), backward(bspeed);
if (msg[0] >= 201 && msg[0] <= 255)data = msg[0], fspeed = map(data, 189, 128, 0, 255), forward(fspeed);
if (msg[0] > 190 && msg[0] < 200)data = msg[0], stop();
}
void stop()
{
analogWrite(ena, 0);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
analogWrite(enb, 0);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
void forward(int fspeed)
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(ena, fspeed);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enb, fspeed);
}
void backward(int bspeed)
{
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(ena, bspeed);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enb, bspeed);
}
################################# скетч передатчика
#include <nRF24L01.h>
#include <printf.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
#include "RF24.h"
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int msg[1];
int potpin_1 = A0;
int val_1;
int potpin_2 = A1;
int val_2;
void setup(void){
radio.begin();
radio.openWritingPipe(pipe);
}
void loop() {
val_1 = analogRead(potpin_1),val_1 = map(val_1, 0, 1023, 0, 127),msg[0] = val_1,radio.write(msg, 1);
val_2 = analogRead(potpin_2),val_2 = map(val_2, 0, 1023, 128, 255),msg[0] = val_2,radio.write(msg, 1);
}
Сторінки 1