Пожалуйста, помогите разобратся со скетчем.
- Войдите на сайт для отправки комментариев
Пт, 02/02/2018 - 09:51
Доброго времени суток.
Хочу сделать машинку на радиоуправлении управляемою одним джойстиком, как на видео:
Но не очень получается, не соответствуют данные отправленные с джойстика со строками 042 - 049
Передатчик:
#include <SPI.h> #include "RF24.h" RF24 radio(9,10); const uint64_t pipe = 0xF0F0F0F000LL; int msg[3]; int potpin_2 = A0; int val_2; int potpin_3 = A1; int val_3; void setup(void){ radio.begin(); radio.openWritingPipe(pipe); } void loop() { val_2 = analogRead(potpin_2),val_2 = map(val_2, 0, 1023, 0, 127),msg[0] = val_2,radio.write(msg, 1); val_3 = analogRead(potpin_3),val_3 = map(val_3, 0, 1023, 128, 255),msg[0] = val_3,radio.write(msg, 1); }
Приёмник:
#include <SPI.h>
#include "RF24.h"
RF24 radio(9,10);
const uint64_t pipe = 0xF0F0F0F000LL;
int msg[3];
int data;
int data1;
int fspeed; // forward speed
int bspeed; // backward speed
int fspeed1; // forward1 speed
int bspeed1; // backward1 speed
const int in1 = 15; // direction pin
const int in2 = 16; // direction pin
const int ena = 3; // PWM pin to change speed
const int in3 = 17; // direction pin
const int in4 = 18; // direction pin
const int enb = 5; // 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
delay(50);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
}
void loop()
{
if (radio.available())radio.read(msg, 1);
if (msg[0] >=128 && msg[0] <=189)data = msg[0], bspeed = map(data, 189, 128, 0, 255), backward(bspeed);
if (msg[0] >=201 && msg[0] <=255)data = msg[0], fspeed = map(data, 201, 255, 0, 255), forward(fspeed);
if (msg[0] >=190 && msg[0] <=200)data = msg[0], stop();
if (msg[0] >=193 && msg[0] <=221)data1 = msg[0], bspeed1 = map(data1, 255, 227, -255, 255), backward1(bspeed1);
if (msg[0] >=227 && msg[0] <=255)data1 = msg[0], fspeed1 = map(data1, 193, 221, -255, 255), forward1(fspeed1);
if (msg[0] >222 && msg[0] <226)data1 = 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, LOW);
digitalWrite(in2, HIGH);
analogWrite(ena, bspeed);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enb, bspeed);
}
void backward(int bspeed)
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(ena, fspeed);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enb, fspeed);
}
void forward1(int fspeed1)
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(ena, fspeed1);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enb, fspeed1);
}
void backward1(int bspeed1)
{
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(ena, bspeed1);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enb, bspeed1);
}
Скетч не мой, помогите пожалуйста, как вывести в монитор порта показания джойстика в 4 строки.
1 вперёд, 2 назад, 3 влево, 4 вправо
Почему то сьехало, строки 044-051
Женя777X -> АффтарСкетча()
https://youtu.be/Mv8vOJ15Lkc