Заголовок темы должен отражать содержимое. Отредактируй или ветка будет удалена
Здаров, народ. Есть скетч для машинки на ардуино. Связь через НРФ24. Проблема у меня такая: двигатель подключен к l298n(приемник), а на передатчике джойстик.
Двигатель не реагирует на него. В чем может быть причина? Сам я в программирование новичок.
Двигатель не реагирует на него. В чем может быть причина? Сам я в программирование новичок.
C++:
#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 = A2;
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);
}
#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;
int bspeed;
const int in1 = 2;
const int in2 = 4;
const int ena = 5;
void setup(){
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(ena, OUTPUT);
servo1.attach(3);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
}
void loop(){
if (radio.available())radio.read(msg, 1);
if (msg[0] <128 && msg[0] >-1)data = msg[0], pos = map(data, 0, 127, 7, 177),servo1.write(pos);
if (msg[0] >129 && msg[0] <189)data = msg[0], fspeed = map(data, 189, 129, 0, 255); forward(fspeed);
if (msg[0] >201 && msg[0] <255)data = msg[0], bspeed = map(data, 255, 201, 0, 255); backward(bspeed);
if (msg[0] >190 && msg[0] <200)data = msg[0], stop();
}
void stop(){
analogWrite(ena, 0);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
}
void forward(int fspeed){
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(ena, fspeed);
}
void backward(int bspeed){
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(ena, bspeed);
}