машинка на 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 джойстиках то все нормально , а когда на одном то робот не хочет поворачивать.
ну можете хоть намекнуть что сделать.
Простите, Вы здоровы? Что значит намекнуть, когда Вам безо всяких намёков, прямо сказали что делать - покажите код, который у Вас не работает и скажите в чём именно с ним проблема.