машинка на arduino L298n+nrf24l01
- Войдите на сайт для отправки комментариев
Вс, 27/05/2018 - 17:26
Помогите дописать код для машинки 4wd на l298n и одном джойстике. Я не мону сделать ту часть, когда машинка должна поворачивать направо или налево
Код передатчика:
#include <SPI.h>
#include "RF24.h"
RF24 radio(9,10);
int mas[2];
int pin_1 = A0;
int val_1;
int pin_2 = A1;
int val_2;
byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"};
void setup(void){
radio.begin(); //активировать модуль
radio.openWritingPipe(address[0]); //мы - труба 0, открываем канал для передачи данных
radio.setChannel(0x60); //выбираем канал (в котором нет шумов!)
radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
radio.setDataRate (RF24_250KBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS
//должна быть одинакова на приёмнике и передатчике!
radio.powerUp(); //начать работу
radio.stopListening(); //не слушаем радиоэфир, мы передатчик
}
void loop() {
val_1 = analogRead(pin_1);
val_2 = analogRead(pin_2);
mas[0] = val_1;
mas[1] = val_2;
radio.write(&mas, sizeof(mas));
}
Код приемника:
#include <SPI.h>
#include "RF24.h"
RF24 radio(9,10);
int mas[2];
int data;
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
const int in3 = 8; // direction pin 1
const int in4 = 7; // direction pin 2
const int enb = 3; // PWM pin to change speed
byte address[][6] = {"1Node","2Node","3Node","4Node","5Node","6Node"};
void setup(){
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(ena, OUTPUT);
delay(50);
radio.begin(); //активировать модуль
radio.openReadingPipe(1,address[0]); //хотим слушать трубу 0
radio.setChannel(0x60); //выбираем канал (в котором нет шумов!)
radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
radio.setDataRate (RF24_250KBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS
//должна быть одинакова на приёмнике и передатчике!
radio.powerUp(); //начать работу
radio.startListening(); //начинаем слушать эфир, мы приёмный модуль
}
void loop(){
byte pipeNo;
while ( radio.available(&pipeNo)) { // слушаем эфир со всех труб
radio.read( &mas, sizeof(mas) ); // чиатем входящий сигнал
if (mas[1] >=0 && mas[1] <=498)data = mas[1], bspeed = map(data, 498 ,0, 0, 255), backward(bspeed);
if (mas[1] >=501 && mas[1] <=1023)data = mas[1], fspeed = map(data, 501, 1023, 0, 255), forward(fspeed);
if (mas[1] >498 && mas[1] <501)data = mas[1], stop();
}
}
void stop()
{
analogWrite(ena, 0);
digitalWrite(in1, 0);
digitalWrite(in2, 0);
analogWrite(enb, 0);
digitalWrite(in3, 0);
digitalWrite(in4, 0);
}
void forward(int fspeed)
{
digitalWrite(in1, 1);
digitalWrite(in2, 0);
analogWrite(ena, fspeed);
analogWrite(enb, fspeed);
digitalWrite(in3, 1);
digitalWrite(in4, 0);
}
void backward(int bspeed)
{
digitalWrite(in1, 0);
digitalWrite(in2, 1);
analogWrite(ena, bspeed);
analogWrite(enb, bspeed);
digitalWrite(in3, 0);
digitalWrite(in4, 1);
}
машинка ездит вперед и назад, только не поворачивает заранее спасибо
И приемник и передатчик сделаны на arduino nano
А что ее заставит поворачивать? Сила внушения или как?
А что ее заставит поворачивать? Сила внушения или как?
Добрым словом можно много добиться. А если не выходит, то к доброму слову добавить пистолет.
Иногда маленкий шажок человека это результат громадного пинка под зад. Скачиваем и на странице 359 читаем.
https://vk.com/doc190970339_454528382?hash=719036a2e93e4c67b2&dl=0b5cb86...
А что ее заставит поворачивать? Сила внушения или как?
в чем проблема, когда я подаю на моторы разные показания (чтоб один крутился вперед а другой назад) моторы начинают сильно гудеть, но не крутятся. А назад и вперед робот едет нормально. Нужно просто что-то дописать, чего я не понимаю как сделать.
в чем проблема, когда я подаю на моторы разные показания (чтоб один крутился вперед а другой назад) моторы начинают сильно гудеть, но не крутятся. Нужно просто что-то дописать,
Так проблема то (здесь на форуме) как раз в том, никто не видел как Вы это подаёте. Вам на это намекнули, но вы не поняли.
Покажете код, Вам, возможно, укажут на ошибку и тогда допишете.
А если Вы хотите, чтобы кто-то за Вас дописал, то Вы ошиблись разделом. Здесь коды не пишут. Их пишут в другом разделе на коммерческой основе.
в чем проблема, когда я подаю на моторы разные показания (чтоб один крутился вперед а другой назад) моторы начинают сильно гудеть, но не крутятся. Нужно просто что-то дописать,
Так проблема то (здесь на форуме) как раз в том, никто не видел как Вы это подаёте. Вам на это намекнули, но вы не поняли.
Покажете код, Вам, возможно, укажут на ошибку и тогда допишете.
А если Вы хотите, чтобы кто-то за Вас дописал, то Вы ошиблись разделом. Здесь коды не пишут. Их пишут в другом разделе на коммерческой основе.
ну можете хоть намекнуть что сделать. Просто если я делаю управление на 2 джойстиках то все нормально , а когда на одном то робот не хочет поворачивать.
ну можете хоть намекнуть что сделать.
Простите, Вы здоровы? Что значит намекнуть, когда Вам безо всяких намёков, прямо сказали что делать - покажите код, который у Вас не работает и скажите в чём именно с ним проблема.