Помогите со скетчем, управление двигателями

Vladimir555
Offline
Зарегистрирован: 25.02.2018

Всем доброго дня! 

Возникла такая проблема не могу никак заставить крутится движки на плате Romeo BLE mini В ней используется драйвер двигателя DRV8833PWR В котором по два входа на канал, один из которых ШИМ для управления скорость вращения.
Имеется скетч: в котором используется L298N
У меня не получается адаптировать скетч под драйвер двигателя DRV8833PWR
Помогите пожалйста

Сам скетч:



/*
Arduino Wireless Control using the NRF24L01 Transceiver module

*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define enA 2 // Note: Pin 9 in previous video ( pin 10 is used for the SPI communication of the NRF24L01)
#define in1 4
#define in2 5
#define enB 3 // Note: Pin 10 in previous video
#define in3 6
#define in4 7

RF24 radio(8, 9); // CE, CSN
const byte address[6] = "00001";

char receivedData[32] = "";
int xAxis, yAxis;

int motorSpeedA = 0;
int motorSpeedB = 0;

void setup() {
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MIN);
radio.startListening();
}

void loop() {

if (radio.available()) { // If the NRF240L01 module received data
radio.read(&receivedData, sizeof(receivedData)); // Read the data and put it into character array
xAxis = atoi(&receivedData[0]); // Convert the data from the character array (received X value) into integer
delay(10);
radio.read(&receivedData, sizeof(receivedData));
yAxis = atoi(&receivedData[0]);
delay(10);
}

// Y-axis used for forward and backward control
if (yAxis < 470) {
// Set Motor A backward
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
// Set Motor B backward
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
// Convert the declining Y-axis readings for going backward from 470 to 0 into 0 to 255 value for the PWM signal for increasing the motor speed
motorSpeedA = map(yAxis, 470, 0, 0, 255);
motorSpeedB = map(yAxis, 470, 0, 0, 255);
}
else if (yAxis > 550) {
// Set Motor A forward
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
// Set Motor B forward
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
// Convert the increasing Y-axis readings for going forward from 550 to 1023 into 0 to 255 value for the PWM signal for increasing the motor speed
motorSpeedA = map(yAxis, 550, 1023, 0, 255);
motorSpeedB = map(yAxis, 550, 1023, 0, 255);
}
// If joystick stays in middle the motors are not moving
else {
motorSpeedA = 0;
motorSpeedB = 0;
}

// X-axis used for left and right control
if (xAxis < 470) {
// Convert the declining X-axis readings from 470 to 0 into increasing 0 to 255 value
int xMapped = map(xAxis, 470, 0, 0, 255);
// Move to left - decrease left motor speed, increase right motor speed
motorSpeedA = motorSpeedA - xMapped;
motorSpeedB = motorSpeedB + xMapped;
// Confine the range from 0 to 255
if (motorSpeedA < 0) {
motorSpeedA = 0;
}
if (motorSpeedB > 255) {
motorSpeedB = 255;
}
}
if (xAxis > 550) {
// Convert the increasing X-axis readings from 550 to 1023 into 0 to 255 value
int xMapped = map(xAxis, 550, 1023, 0, 255);
// Move right - decrease right motor speed, increase left motor speed
motorSpeedA = motorSpeedA + xMapped;
motorSpeedB = motorSpeedB - xMapped;
// Confine the range from 0 to 255
if (motorSpeedA > 255) {
motorSpeedA = 255;
}
if (motorSpeedB < 0) {
motorSpeedB = 0;
}
}
// Prevent buzzing at low speeds (Adjust according to your motors. My motors couldn't start moving if PWM value was below value of 70)
if (motorSpeedA < 70) {
motorSpeedA = 0;
}
if (motorSpeedB < 70) {
motorSpeedB = 0;
}
analogWrite(enA, motorSpeedA); // Send PWM signal to motor A
analogWrite(enB, motorSpeedB); // Send PWM signal to motor B
}

 

inspiritus
Offline
Зарегистрирован: 17.12.2012

Например ошибки в 53 и 132 строках. А теперь посчитайте стоки и найдите указанные:)

на форуме не просто так есть правила публикации кода !

прочтите и выложите код по-правилам форума.

чтобы было проще Вам помогать приведите схему подключений.

Vladimir555
Offline
Зарегистрирован: 25.02.2018
/*
   Arduino Wireless Control using the NRF24L01 Transceiver module


   Library: TMRh20/RF24, https://github.com/tmrh20/RF24/
*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define enA 2   // Note: Pin 9 in previous video ( pin 10 is used for the SPI communication of the NRF24L01)
#define in1 4
#define in2 5
#define enB 3   // Note:  Pin 10 in previous video
#define in3 6
#define in4 7

RF24 radio(8, 9); // CE, CSN
const byte address[6] = "00001";

char receivedData[32] = "";
int  xAxis, yAxis;

int motorSpeedA = 0;
int motorSpeedB = 0;

void setup() {
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
}

void loop() {

  if (radio.available()) {   // If the NRF240L01 module received data
    radio.read(&receivedData, sizeof(receivedData)); // Read the data and put it into character array
    xAxis = atoi(&receivedData[0]); // Convert the data from the character array (received X value) into integer
    delay(10);
    radio.read(&receivedData, sizeof(receivedData));
    yAxis = atoi(&receivedData[0]);
    delay(10);
  }
  
  // Y-axis used for forward and backward control
  if (yAxis < 470) {
    // Set Motor A backward
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
    // Set Motor B backward
    digitalWrite(in3, HIGH);
    digitalWrite(in4, LOW);
    // Convert the declining Y-axis readings for going backward from 470 to 0 into 0 to 255 value for the PWM signal for increasing the motor speed
    motorSpeedA = map(yAxis, 470, 0, 0, 255);
    motorSpeedB = map(yAxis, 470, 0, 0, 255);
  }
  else if (yAxis > 550) {
    // Set Motor A forward
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
    // Set Motor B forward
    digitalWrite(in3, LOW);
    digitalWrite(in4, HIGH);
    // Convert the increasing Y-axis readings for going forward from 550 to 1023 into 0 to 255 value for the PWM signal for increasing the motor speed
    motorSpeedA = map(yAxis, 550, 1023, 0, 255);
    motorSpeedB = map(yAxis, 550, 1023, 0, 255);
  }
  // If joystick stays in middle the motors are not moving
  else {
    motorSpeedA = 0;
    motorSpeedB = 0;
  }

  // X-axis used for left and right control
  if (xAxis < 470) {
    // Convert the declining X-axis readings from 470 to 0 into increasing 0 to 255 value
    int xMapped = map(xAxis, 470, 0, 0, 255);
    // Move to left - decrease left motor speed, increase right motor speed
    motorSpeedA = motorSpeedA - xMapped;
    motorSpeedB = motorSpeedB + xMapped;
    // Confine the range from 0 to 255
    if (motorSpeedA < 0) {
      motorSpeedA = 0;
    }
    if (motorSpeedB > 255) {
      motorSpeedB = 255;
    }
  }
  if (xAxis > 550) {
    // Convert the increasing X-axis readings from 550 to 1023 into 0 to 255 value
    int xMapped = map(xAxis, 550, 1023, 0, 255);
    // Move right - decrease right motor speed, increase left motor speed
    motorSpeedA = motorSpeedA + xMapped;
    motorSpeedB = motorSpeedB - xMapped;
    // Confine the range from 0 to 255
    if (motorSpeedA > 255) {
      motorSpeedA = 255;
    }
    if (motorSpeedB < 0) {
      motorSpeedB = 0;
    }
  }
  // Prevent buzzing at low speeds (Adjust according to your motors. My motors couldn't start moving if PWM value was below value of 70)
  if (motorSpeedA < 70) {
    motorSpeedA = 0;
  }
  if (motorSpeedB < 70) {
    motorSpeedB = 0;
  }
  analogWrite(enA, motorSpeedA); // Send PWM signal to motor A
  analogWrite(enB, motorSpeedB); // Send PWM signal to motor B
}

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Datasheet смотрели? В частности страницу 9, таблицу 2.

Vladimir555
Offline
Зарегистрирован: 25.02.2018

Да смотрел даташит!

sadman41
Offline
Зарегистрирован: 19.10.2016

Что вы поняли из этой таблицы, какие модификации исходного скетча производили?

Думаю, что вы понимаете, что раздел форума "Программирование" - это не отдел выполнения заказов и вам необходимо 90% работы сделать самому?

Vladimir555
Offline
Зарегистрирован: 25.02.2018
/*
   Arduino Wireless Control using the NRF24L01 Transceiver module


   Library: TMRh20/RF24, https://github.com/tmrh20/RF24/
*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define enA 3    
#define in1 5
#define enB 9   
#define in2 6

RF24 radio(8, 10); // CE, CSN
const byte address[6] = "00001";

char receivedData[32] = "";
int  xAxis, yAxis;

int motorSpeedA = 1;
int motorSpeedB = 1;

void setup() {
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
}

void loop() {

  if (radio.available()) {   // Если модуль NRF240L01 получил данные
    radio.read(&receivedData, sizeof(receivedData)); //Прочитайте данные и поместите их в символьный массив
    xAxis = atoi(&receivedData[0]); // Преобразование данных из символьного массива (полученное значение X) в целое число
    delay(10);
    radio.read(&receivedData, sizeof(receivedData));
    yAxis = atoi(&receivedData[0]);
    delay(10);
  }
  
  // Ось Y, используемая для прямого и обратного управления
  if (yAxis < 470) {
    // Движение моторов вперед
    digitalWrite(in1, HIGH);
    digitalWrite(in2, HIGH);
    // Преобразуйте уменьшающиеся показания оси Y для обратного хода с 470 до 0 В значение от 0 до 255 для сигнала PWM для увеличения скорости двигателяПреобразуйте уменьшающиеся показания оси Y для обратного хода с 470 до 0 В значение от 0 до 255 для сигнала PWM для увеличения скорости двигателя
    motorSpeedA = map(yAxis, 470, 0, 0, 255);
    motorSpeedB = map(yAxis, 470, 0, 0, 255);
  }
  else if (yAxis > 550) {
    // Движение моторов назад
    digitalWrite(in1, LOW);
    digitalWrite(in2, LOW);
    // Преобразуйте увеличивающиеся показания оси Y для движения вперед с 550 до 1023 в значение от 0 до 255 для сигнала PWM для увеличения скорости двигателяПреобразуйте увеличивающиеся показания оси Y для движения вперед с 550 до 1023 в значение от 0 до 255 для сигнала PWM для увеличения скорости двигателя
    motorSpeedA = map(yAxis, 550, 1023, 0, 255);
    motorSpeedB = map(yAxis, 550, 1023, 0, 255);
  }
  // Если джойстик остается посередине, двигатели не двигаются
  else {
    motorSpeedA = 1;
    motorSpeedB = 1;
  }

  // X-ось используемая для левого и правого управления
  if (xAxis < 470) {
    // Преобразуйте уменьшающиеся показания оси X от 470 до 0 В значение увеличения от 0 до 255
    int xMapped = map(xAxis, 470, 0, 0, 255);
    // Переместить влево-уменьшить левую скорость двигателя, увеличить правую скорость двигателя
    motorSpeedA = motorSpeedA - xMapped;
    motorSpeedB = motorSpeedB + xMapped;
    // Ограничить диапазон от 0 до 255
    if (motorSpeedA < 1) {
      motorSpeedA = 1;
    }
    if (motorSpeedB > 255) {
      motorSpeedB = 255;
    }
  }
  if (xAxis > 550) {
    //Преобразуйте возрастающие показания оси x от 550 до 1023 в значения от 0 до 255
    int xMapped = map(xAxis, 550, 1023, 0, 255);
    // Движение вправо-уменьшение правой скорости двигателя, увеличение левой скорости двигателя
    motorSpeedA = motorSpeedA + xMapped;
    motorSpeedB = motorSpeedB - xMapped;
    // Ограничить диапазон от 0 до 255
    if (motorSpeedA > 255) {
      motorSpeedA = 255;
    }
    if (motorSpeedB < 1) {
      motorSpeedB = 1;
    }
  }
  // Чтобы моторы не жужали установим пороговое значение для отключения
  if (motorSpeedA < 70) {
    motorSpeedA = 1;
  }
  if (motorSpeedB < 70) {
    motorSpeedB = 1;
  }
  analogWrite(enA, motorSpeedA); // Послать сигнал ШИМ на мотор A
  analogWrite(enB, motorSpeedB); // Послать сигнал ШИМ на мотор B
}

 

Vladimir555
Offline
Зарегистрирован: 25.02.2018

 

xIN1 xIN2 xOUT1 xOUT2 описание
0 0 Z Z Выкл, свободное вращение
0 1 L H Назад
1 0 H L Вперед
1 1 L L Торможение, стопор

 

Vladimir555
Offline
Зарегистрирован: 25.02.2018

Внёс изменение  согласно таблице, но по чему то не работает?

sadman41
Offline
Зарегистрирован: 19.10.2016

Таблицу №1 я видел. Посмотрите на Таблицу №2.

Видите, что PWM нужно подавать на разные ноги, в зависимости от того, в какую сторону надо крутить мотор?

Vladimir555
Offline
Зарегистрирован: 25.02.2018

За реверс же отвечает логическое значение 1 0 на одном из каналов. А за скорость другой канал PWM? т.е PWM в направлении вращении не участвуют, как я понял. Или я ошибаюсь?

sadman41
Offline
Зарегистрирован: 19.10.2016

Я ориентируюсь на ваше описание: " два входа на канал, один из которых ШИМ для управления скорость вращения".

Т.е. полагаю, что именно так на ардуину вы и заводите. Данной ситуации соответствует таблица 2.

Я бы для проверки сделал простой скетч, который на один выход давал PWM, а на другом менял HIGH/LOW раз в несколько секунд. Думаю, что это должно заставить мотор крутиться в разные стороны. Если это сработает, то перестраиваете исходный скетч с учетом таблицы 2.

PS. Да, в сущности для реверса, упрощенно, PWM перекидывать не надо. Однако, обратите внимание, что при этом меняются режимы работы двигателя (fast decay/slow decay). Если вам нужно оставаться в одном режиме, то придется еще и PWM перекидывать на другую ногу.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

у LN298N сигнал PWM обычно подают на вход EN, а направление вращения задают комбинацией сигналов IN 0/1.

Тут, согласно тбл1. при обоих отключенных входах мотор предоставлен сам себе ибо его выходы в состоянии Z. Вот это Вам и надо.

Соответственно IN1=0, IN2=PWM -- едем в одну сторону, IN1=PWM, IN2=0 -- едем в другую сторону. А уж где там перед, где зад - как моторы подключите. Приятно то, что можно подать обе единицы и получить торможение коротко-замкнутым ротором.

Vladimir555
Offline
Зарегистрирован: 25.02.2018

Так какие нужно изменения внести? А то я что-то не пойму ни как

sadman41
Offline
Зарегистрирован: 19.10.2016

Чтобы понять - нужно написать маленький тестовый скетч. Завести в нем движок - несколько строчек. 

Вы это сделали или ждете ЕвгенияП, который за всех код пишет?

Vladimir555
Offline
Зарегистрирован: 25.02.2018
const int pwm = 3;  // вывод ШИМ
const int in_1 = 5; // вывод направления двигателя



void setup()
{
  pinMode(pwm,OUTPUT);    // Настраиваем ШИМ вывод на выход
  pinMode(in_1,OUTPUT);   // Настраиваем логический выход
}

void loop()
{
  // Вращение по часовой стрелки
  digitalWrite(in_1,HIGH);
  analogWrite(pwm,95);   // установка pwm в значение 95
          // Вращение двигателя по часовой стрелке 3 секунды.
  delay(3000);    


  // Для вращения против часовой стрелки 
  digitalWrite(in_1,LOW);
   analogWrite(pwm,95);  // установка pwm в значение 95
  delay(3000); // Вращение двигателя по часовой стрелке 3 секунды.


}

 

Vladimir555
Offline
Зарегистрирован: 25.02.2018

Скетч работает, но как реализовать остановку двигателя?

sadman41
Offline
Зарегистрирован: 19.10.2016

А вот Архат вам написал в #12: если подать через digitalWrite() LOW в оба входа - движок вращается по инерции, если HIGH - активно тормозит ротором.

Vladimir555
Offline
Зарегистрирован: 25.02.2018
const int pwm = 3;  // вывод ШИМ
const int in_1 = 5; // вывод направления двигателя
const int in_2 = 3;


void setup()
{
  pinMode(pwm,OUTPUT);    // Настраиваем ШИМ вывод на выход
  pinMode(in_1,OUTPUT);   // Настраиваем логический выход
}

void loop()
{
  // Вращение по часовой стрелки
  digitalWrite(in_1,HIGH);
  analogWrite(pwm,95);   // установка pwm в значение 95
          // Вращение двигателя по часовой стрелке 3 секунды.
  delay(3000);    

  // Остановка
  digitalWrite(in_1,HIGH);
  digitalWrite(in_2,HIGH);
  delay(3000) ;  

 
  // Для вращения против часовой стрелки 
  digitalWrite(in_1,LOW);
   analogWrite(pwm,95);  // установка pwm в значение 95
  delay(3000); // Вращение двигателя по часовой стрелке 3 секунды.


}

 

Vladimir555
Offline
Зарегистрирован: 25.02.2018

Скетч работает! Останвка 3 сек. 

sadman41
Offline
Зарегистрирован: 19.10.2016

Отлично.

Осталось только разобраться с перекидыванием PWM на разные INx, чтобы режим работы двигателя сохранять и можно интегрировать в логику первоначального скетча.

Vladimir555
Offline
Зарегистрирован: 25.02.2018

А вы подскажите как это можно сделать?

sadman41
Offline
Зарегистрирован: 19.10.2016

Подсказать как IN1 навесить на один PWM-пин, а IN2 на другой и по очереди писать в них через analogWrite?

Vladimir555
Offline
Зарегистрирован: 25.02.2018

Как в скетч это завести, в самый первый?

sadman41
Offline
Зарегистрирован: 19.10.2016

Вот те здрасте. Находите условие в кода, срабатывающее за движение в какую-то сторону и пишете туда свой код, как в тестовом скетче:

    // Движение моторов вперед
    // Преобразуйте уменьшающиеся показания оси Y для обратного хода с 470 до 0 В значение от 0 до 255 для сигнала PWM для увеличения скорости двигателяПреобразуйте уменьшающиеся показания оси Y для обратного хода с 470 до 0 В значение от 0 до 255 для сигнала PWM для увеличения скорости двигателя
    motorSpeedA = map(yAxis, 470, 0, 0, 255);
    motorSpeedB = map(yAxis, 470, 0, 0, 255);
    
    >>> сюда пишем команды из тестового скетча для движения вперед со скоростями motorSpeedA и motorSpeedB <<<
... 
   // Движение моторов вперед
   
    >>> И сюда тоже пишем команды

...
    >>> И так далее

 

Vladimir555
Offline
Зарегистрирован: 25.02.2018
/*
   Arduino Wireless Control using the NRF24L01 Transceiver module



   Library: TMRh20/RF24, https://github.com/tmrh20/RF24/
*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define enA 3   // Note: Pin 9 in previous video ( pin 10 is used for the SPI communication of the NRF24L01)
#define in1 5
#define in2 3
#define enB 9   // Note:  Pin 10 in previous video
#define in3 6
#define in4 9

RF24 radio(8, 10); // CE, CSN
const byte address[6] = "00001";

char receivedData[32] = "";
int  xAxis, yAxis;

int motorSpeedA = 0;
int motorSpeedB = 0;

void setup() {
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
}

void loop() {

  if (radio.available()) {   // If the NRF240L01 module received data
    radio.read(&receivedData, sizeof(receivedData)); // Read the data and put it into character array
    xAxis = atoi(&receivedData[0]); // Convert the data from the character array (received X value) into integer
    delay(10);
    radio.read(&receivedData, sizeof(receivedData));
    yAxis = atoi(&receivedData[0]);
    delay(10);
  }
  
  // Y-axis used for forward and backward control
  if (yAxis < 470) {
    // Set Motor A backward
    digitalWrite(in1, HIGH);
    // Set Motor B backward
    digitalWrite(in3, HIGH);
    // Convert the declining Y-axis readings for going backward from 470 to 0 into 0 to 255 value for the PWM signal for increasing the motor speed
    motorSpeedA = map(yAxis, 470, 0, 0, 255);
    motorSpeedB = map(yAxis, 470, 0, 0, 255);
  }
  else if (yAxis > 550) {
    // Set Motor A forward
    digitalWrite(in1, LOW);
    // Set Motor B forward
    digitalWrite(in3, LOW);
    // Convert the increasing Y-axis readings for going forward from 550 to 1023 into 0 to 255 value for the PWM signal for increasing the motor speed
    motorSpeedA = map(yAxis, 550, 1023, 0, 255);
    motorSpeedB = map(yAxis, 550, 1023, 0, 255);
  }
  // If joystick stays in middle the motors are not moving
  else {
    motorSpeedA = 0;
    motorSpeedB = 0;
  }

  // X-axis used for left and right control
  if (xAxis < 470) {
    // Convert the declining X-axis readings from 470 to 0 into increasing 0 to 255 value
    int xMapped = map(xAxis, 470, 0, 0, 255);
    // Move to left - decrease left motor speed, increase right motor speed
    motorSpeedA = motorSpeedA - xMapped;
    motorSpeedB = motorSpeedB + xMapped;
    // Confine the range from 0 to 255
    if (motorSpeedA < 0) {
      motorSpeedA = 0;
    }
    if (motorSpeedB > 255) {
      motorSpeedB = 255;
    }
  }
  if (xAxis > 550) {
    // Convert the increasing X-axis readings from 550 to 1023 into 0 to 255 value
    int xMapped = map(xAxis, 550, 1023, 0, 255);
    // Move right - decrease right motor speed, increase left motor speed
    motorSpeedA = motorSpeedA + xMapped;
    motorSpeedB = motorSpeedB - xMapped;
    // Confine the range from 0 to 255
    if (motorSpeedA > 255) {
      motorSpeedA = 255;
    }
    if (motorSpeedB < 0) {
      motorSpeedB = 0;
    }
  }
  // Prevent buzzing at low speeds (Adjust according to your motors. My motors couldn't start moving if PWM value was below value of 70)
  if (motorSpeedA < 70) {
    motorSpeedA = 0;
  }
  if (motorSpeedB < 70) {
    motorSpeedB = 0;
  }
  analogWrite(enA, motorSpeedA); // Send PWM signal to motor A
  analogWrite(enB, motorSpeedB); // Send PWM signal to motor B
}
  

 

Vladimir555
Offline
Зарегистрирован: 25.02.2018

Не получается!

Vladimir555
Offline
Зарегистрирован: 25.02.2018

Вы можете по скетчу моему накидать как правильно?

sadman41
Offline
Зарегистрирован: 19.10.2016

Да я-то могу, но вы же хотите научиться самостоятельно это делать, как я понимаю, раз вы написали в раздел "Программирование"? В противном случае есть раздел "Ищу исполнителя", который сэкономит вам время, но отберет некоторую сумму денег.

Вот вы сейчас запостили опять скетч, но я не вижу там никаких изменений. Давайте сначала определим, какие движения осуществляются и в каких строках. Пишите.

Vladimir555
Offline
Зарегистрирован: 25.02.2018

Я хочу чтобо мне помогли понять как это правильно сделать! Я по этому и написал в раздел программирование. 

В скетче есть motorSpeedA = 0; его нужно менять?

sadman41
Offline
Зарегистрирован: 19.10.2016

Если считаете, что я вам не помогаю, то давайте подождем еще кого-нибудь, более отзывчивого.

Vladimir555
Offline
Зарегистрирован: 25.02.2018

Если вы знаете как можно сделать, почему не можете помочь?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Помочь ничего не делать?

Помощь подразумевает, что делаете все-таки Вы, а кто-то Вам помогает в этом. Но не делает вместо Вас, т.к. это уже не помощь.

Vladimir555
Offline
Зарегистрирован: 25.02.2018

А я сделал, написал мини скетч работы двигателя А дальше попросил помочь связать его с основным скетче. А что вы подразумеваете сделать за меня?

Vladimir555
Offline
Зарегистрирован: 25.02.2018

Да! Походу помощи не от кого ждать! Ладно, значит будем сами искать и думать как решить данный вопрос.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

И это - правильно. Все что Вам было необходимо, Вы уже разобрались. Остальное - "как вписать это в мой (ли?) код?" - только ваших рук дело. Успеха! :)

sadman41
Offline
Зарегистрирован: 19.10.2016

Vladimir555 пишет:

Да! Походу помощи не от кого ждать! Ладно, значит будем сами искать и думать как решить данный вопрос.

Можем поменяться: вы вместо меня переписываете драйвер сетевого модуля, а я в ваш скетч моторы добавляю. Идет?

vvadim
Offline
Зарегистрирован: 23.05.2012

sadman41 пишет:

Vladimir555 пишет:

Да! Походу помощи не от кого ждать! Ладно, значит будем сами искать и думать как решить данный вопрос.

Можем поменяться: вы вместо меня переписываете драйвер сетевого модуля, а я в ваш скетч моторы добавляю. Идет?

нифига, - как только драйвер осилишь сразу за моторы...

Vladimir555
Offline
Зарегистрирован: 25.02.2018

 

?

Vladimir555
Offline
Зарегистрирован: 25.02.2018

sadman41 пишет:

Vladimir555 пишет:

Да! Походу помощи не от кого ждать! Ладно, значит будем сами искать и думать как решить данный вопрос.

Можем поменяться: вы вместо меня переписываете драйвер сетевого модуля, а я в ваш скетч моторы добавляю. Идет?

Если бы я знал как вам помочь, я помог бы вам переписать драйвер для сетевого модуля. Но так как, я не особо селен в среде программирования ардуино, то толку от меня 0. А если вы принципиально никому не хотите помогать, то какой смысл в ваших пустых комментариев и ответах? 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Vladimir555 пишет:

Но так как, я не особо селен в среде программирования ардуино

А в какой среде программирования Вы сильны?

Vladimir555
Offline
Зарегистрирован: 25.02.2018

 

 

Vladimir555
Offline
Зарегистрирован: 25.02.2018

К теме это ни как не относится!

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Почему не относится? Вот Вы написали фразу: "но так как, я не особо селен в среде программирования ардуино". Эта фраза подразумевает, что сложности у Вас именно со средой программирования Ардуино (Arduino IDE). То бишь проблем с самим языком программирования С/С++ у Вас нет? Или всё же Вам надо было написать так? - "но так как, я не особо силен в программировании". 

Я как бы намекаю, что сложности у Вас не со "средой программирования ардуино", а с программированием в целом.

sadman41
Offline
Зарегистрирован: 19.10.2016

Vladimir555 пишет:

Если бы я знал как вам помочь, я помог бы вам переписать драйвер для сетевого модуля. Но так как, я не особо селен в среде программирования ардуино, то толку от меня 0. А если вы принципиально никому не хотите помогать, то какой смысл в ваших пустых комментариев и ответах? 

Может вы сумеете назовать хотя бы одну причину, по которой мне нужно бросить всё своё и кинутся исправлять и отлаживать ваше?

Впрочем, действительно, что я сюда пишу. Надо было вообще не начинать. Глядишь - занимались бы сейчас тем, в чем сильны, а не ардуиной.

Vladimir555
Offline
Зарегистрирован: 25.02.2018

Jeka_M пишет:

Почему не относится? Вот Вы написали фразу: "но так как, я не особо селен в среде программирования ардуино". Эта фраза подразумевает, что сложности у Вас именно со средой программирования Ардуино (Arduino IDE). То бишь проблем с самим языком программирования С/С++ у Вас нет? Или всё же Вам надо было написать так? - "но так как, я не особо силен в программировании". 

Я как бы намекаю, что сложности у Вас не со "средой программирования ардуино", а с программированием в целом.

Язык программирования Arduno построен на C++ Соответственно если у меня есть проблемы с программированием в среде Arduino значит у меня есть проблемы с C++ Я надеюсь этот  ответ удовлетворит вас?

 

Vladimir555
Offline
Зарегистрирован: 25.02.2018

sadman41 пишет:

Vladimir555 пишет:

Если бы я знал как вам помочь, я помог бы вам переписать драйвер для сетевого модуля. Но так как, я не особо селен в среде программирования ардуино, то толку от меня 0. А если вы принципиально никому не хотите помогать, то какой смысл в ваших пустых комментариев и ответах? 

Может вы сумеете назовать хотя бы одну причину, по которой мне нужно бросить всё своё и кинутся исправлять и отлаживать ваше?

Впрочем, действительно, что я сюда пишу. Надо было вообще не начинать. Глядишь - занимались бы сейчас тем, в чем сильны, а не ардуиной.

Я вас заставлял писать мне код? Нет! Если для вас это не посильная и трудновыполнимая задача. И вы Сами не особо сильны в программировании Arduino. То какой смысл вам здесь показывать Свою значимость и "превосоходство", над тем что Вы сами не знаете?

sadman41
Offline
Зарегистрирован: 19.10.2016

Vladimir555 пишет:

И вы Сами не особо сильны в программировании Arduino. 

Так что вы от меня тогда хотите-то?

Vladimir555
Offline
Зарегистрирован: 25.02.2018

.

Vladimir555
Offline
Зарегистрирован: 25.02.2018

sadman41 пишет:

Vladimir555 пишет:

И вы Сами не особо сильны в программировании Arduino. 

Так что вы от меня тогда хотите-то?

Нет, от вас мне точно ничего не надо)

vvadim
Offline
Зарегистрирован: 23.05.2012

Vladimir555, вы тактически не правильно повели себя на этом форуме с самого начала.
а теперь, ещё и после препираний с людьми, которые хотели вам помочь, думаю вы не получите ни безвоздмездной, ни платной
помощи.

хотя задача ваша совсем не сложная.
если бы вы приложили хоть какое то усилие в программировании, а не копирование чужих кодов и пустую полемику, то давно радовались и управляли своей игрушкой.