Друзья! Прошу помощи, сам не разбираюсь но сыну пообещал починить урал WPL36, Есть готовый и рабочий скетч на l298n но это уныние больше греется чем везет, а переделать на TA6586 или MX1508 я сам не могу =(
```#include <SPI.h>
#include “nRF24L01.h”
#include “RF24.h”
#include <Servo.h>
RF24 radio(9, 10); // “создать” модуль на пинах 9 и 10 Для Уно
int recieved_data[2]; // массив принятых данных
int valX; // данные с джойстика по оси X
int valY; // данный с джойстика по оси Y
byte motor1 = 3; // скорость првого мотора
byte pered1 = 2; // движение мотора 1 вперёд
byte nazad1 = 4; // движение мотора 1 назад
byte motor2 = 5; // скорость второго мотора
byte pered2 = 6; // движение мотора 2 вперёд
byte nazad2 = 7; // движение мотора 2 назад
Servo servo1;
byte address[6] = {“1Node”, “2Node”, “3Node”, “4Node”, “5Node”, “6Node”}; //возможные номера труб
void setup() {
Serial.begin(9600); //открываем порт для связи с ПК
servo1.attach(8);
pinMode(motor1, OUTPUT); // назанчить пин выходом
pinMode(pered1, OUTPUT); // назанчить пин выходом
pinMode(nazad1, OUTPUT); // назанчить пин выходом
pinMode(motor2, OUTPUT); // назанчить пин выходом
pinMode(pered2, OUTPUT); // нахначить пин выходом
pinMode(nazad2, OUTPUT); // назначить пин выходом
radio.begin(); //активировать модуль
radio.setAutoAck(1); //режим подтверждения приёма, 1 вкл 0 выкл
radio.setRetries(0, 15); //(время между попыткой достучаться, число попыток)
radio.enableAckPayload(); //разрешить отсылку данных в ответ на входящий сигнал
radio.setPayloadSize(32); //размер пакета, в байтах
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( &recieved_data, sizeof(recieved_data) ); // чиатем входящий сигнал
valX = recieved_data[0]; // назначить массив принятых данных 0 на данные с джойстика по оси Х
valY = recieved_data[1]; // назначить массив принятых данных 1 на данные с джойстика по оси Y
if (valX >=0 && valX<=490){ // если данные с джойстика по оси Х в данном интервале то выполнить..
valX = map(valX, 490, 0, 0, 255); // приравниваем значения
valX = constrain(valX, 0, 255); // ограничиаем значения
analogWrite(motor1, valX); // подаём на мотор 1 указаную скорость
digitalWrite(pered1, LOW); // движения вперёд нету
digitalWrite(nazad1, HIGH); // движения назад
analogWrite(motor2, valX); // подаём на мотор 2 указаную скорость
digitalWrite(pered2, LOW); // движения вперёд нету
digitalWrite(nazad2, HIGH); // движения назад
Serial.println(" НАЗАД "); // выводим в ком порт движения моторов
} else if (valX >=510 && valX <=1023){
valX = map(valX, 510, 1023, 0, 255);
valX = constrain(valX, 0, 255);
analogWrite(motor1, valX);
digitalWrite(pered1, HIGH);
digitalWrite(nazad1, LOW);
analogWrite(motor2, valX);
digitalWrite(pered2, HIGH);
digitalWrite(nazad2, LOW);
Serial.println(" В ПЕРЁД ");
}else if (valX >=490 && valX <=510){
analogWrite(motor1, 0);
digitalWrite(pered1, LOW);
digitalWrite(nazad1, LOW);
analogWrite(motor2, 0);
digitalWrite(pered2, LOW);
digitalWrite(nazad2, LOW);
Serial.println(" НА МЕСТЕ ");
}
valY = map(valY, 1015, 0, 45, 115);
servo1.write(valY);
}
}
```
Апострофы на разных строках с кодом должны быть.
Обещал - делай. Никто тебя за язык не тянул. Этот форум тут совершенно ни при чём.
А что, в модели электроника на ардуино?
И оригинальный скетч доступен?
А если нет - не понятно, с чего вы взяли, что найденный где в инете код подойдет для вашей машины.
Родная электроника сгорала 3 раза! После этого я собрал по схеме на l298n и оно работало, просто установил мотор 370 он мощнее но разницы нет из-за того, что 298 больше 1А не может ( Скетч рабочий но управление двигателем идет по трем контактам D2/D3/D4 а на та6586 2 контакта
Мешает?
проблема которую можно решить деньгами не проблема!
не стесняйтесь, пишите сумму (советую указать оплату в виде 7 дней работы, сколько бы вы заработали за эти 7 дней, для быстрого результата) и вам помогут, благодарить деньгами это нормально!