#1
Сообщение
jet-belan » 13.06.2016{, 08:03}
Дорогие друзья, если у кого то найдется время, не могли бы вы показать как ниже указанный код выглядит в проекте flprog. Я просто не могу понять и реализовать последовательность действий..
передатчик
#include <SPI.h>
#include "RF24.h"
RF24 radio(2,3);
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);
}
Добавлено (13.06.2016, 07:47)
---------------------------------------------
приёмник
// Необходимо установить библиотеку для радиомодуля nRF24
#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 in1 = 2; // direction pin 1
const int in2 = 4; // direction pin 2
const int ena = 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
servo1.attach(3);
delay(50);
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, 55),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);
}
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);
}
Добавлено (13.06.2016, 08:00)
---------------------------------------------
в общем это машинка на радио управлении. с передатчиком всё более менее ясно, а вот с приёмником не очень. Не могу сообразить как сваять логику приёмника так чтоб в зависимости от положения аналогово джойстика двигатель крутился вперёд или назад с ускорением от точки покоя
Добавлено (13.06.2016, 08:03)
---------------------------------------------
просто хочу переделать скетч под моторную лодку с двумя моторами. при остановке или реверсе одного мотора лодка поворачивает в его сторону
Последний раз редактировалось
jet-belan 13.06.2016{, 07:52}, всего редактировалось 1 раз.