Помогите дописать скетч
- Войдите на сайт для отправки комментариев
Привет. Две ардуино связанны нрф24л01. На приемнике L298N , а на передатчике джойстик. Проблема в том , что двигатель не крутится. Помогите , пожалуйста
//ПРИЕМНИК
#include
#include
#include "RF24.h"
Servo servo1;
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int massiv[2];
int enA = 5;
int in1 = 2;
int in2 = 4;
int fspeed;
int bspeed;
void setup()
{
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(enA, OUTPUT);
servo1.attach(3);
delay(50);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
}
void loop(){
if (radio.available()){
radio.read(&massiv,sizeof (massiv));}
servo1.write(map(massiv[0], 0, 126, 7,177 ));
if (massiv[1]>0 && massiv[1]<110){
fspeed = map(massiv[1],110,0,0,255);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
} analogWrite(enA, fspeed);
if (massiv[1]>145&&massiv[1]<255){
bspeed = map(massiv[1],144,255,0,255);
analogWrite (enA, bspeed);
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
}
if (massiv[1]>110&&massiv[1]<145){
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);}
}
//ПЕРЕДАТЧИК
#include
#include "RF24.h"
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int massiv[2];
void setup(void){
radio.begin();
radio.openWritingPipe(pipe);
}
void loop() {
massiv[0] = map (analogRead(A0),0,1023,0,127);
massiv[1] = map (analogRead(A2),0,1023,128,255);
radio.write(&massiv, sizeof(massiv));
}
Вы просите о помощи, но делаете это без уважения...
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
ИЗВИНЯЮСЬ
Строка 37 соответствует задумке?
Да-да, просто вовремя переноса кода, скобках сдвинулась
Чего-то со значениями непонятное делаете. На передатчике - какой смысл функций map() в строках 64 и 65? И если massiv[1] приводится к диапазону от 128 до 255, то откуда на приёмнике возьмутся значения от 0 до 110 (первый if)?
Разберитесь с логикой, что Вы этим сделать хотели? После этого нужно выводом в монитор порта проконтролировать, что отправляется и что принимается. А то может ничего!
Скобочку в 37 строке поправьте (здесь только первое сообщение не редактируется и цитированные).
Садман
красавец !!! Сразу вспоминается Марлон Брандо.
Чего-то со значениями непонятное делаете. На передатчике - какой смысл функций map() в строках 64 и 65? И если massiv[1] приводится к диапазону от 128 до 255, то откуда на приёмнике возьмутся значения от 0 до 110 (первый if)?
Разберитесь с логикой, что Вы этим сделать хотели? После этого нужно выводом в монитор порта проконтролировать, что отправляется и что принимается. А то может ничего!
kalapanga, тут все понятно, этот код где-то списан , у автора исходного скетча два значения запихивались в один байт, первый потенциометр - в диапазон 0-127, второй - 128-255
Проблема в том, что наш ТС ничего не понимает в этом коде, это у него толи третий, толи четвертый заход на форумы с вопросами. После каждого ответа он свои операторы тасует без малейшего понятия. Изначально у него был массив из одного байта, который он отправлял дважды, потом сделал массив из двух байт. но отправлял один, теперь и массив из двух байт и отправляет два - но данные-то рассчитаны на упаковку в один байт... опять ничего не работает...
JesterKING - пока вы не разберетесь, как работает этот код - у вас ничего не выйдет. А еще лучше не пытаться списать код, который слишком сложен для вас - лучше напишите что-то попроще сами, по примерам к библиотеке NRF24
А первые две строки про что? Вы можете нормально код вставить? Как его смотреть-то? Догадываться?
ИЗВИНЯЮСЬ
Да нет, братан, нормальный код. Х-вая программа. Сами писали? Похоже - нет. Этим заполнен весь интернет.