Регулятор скорости Arduino Uno + Jaguar + двигатель CIM (12 В постоянного тока)

Я подключил двигатель CIM к контроллеру скорости Jaguar, питаемому от батареи 12 В. Jaguar подключен к Arduino Uno через сигнал и землю. Кроме того, у меня есть два переключателя, подключенных к Arduino, для прямого и обратного вращения двигателя.

В коде, для скорости двигателя, я установил 90 в качестве средней точки и 100 для вперед и 80 для обратной. Когда я нажимаю кнопку обратного хода, двигатель работает плавно в обратном направлении на заданной скорости. Однако проблема заключается в том, что когда я нажимаю кнопку «вперед», двигатель работает как бы медленнее в прямом направлении, чем заданная скорость.

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

Я вставляю свой код ниже. Любая помощь приветствуется. Спасибо!

#include <Servo.h> 

int forwardPin = 2;
int reversePin = 4;
int motorPin = 10;
int fwdReading = 0;
int revReading = 0;

Servo myservo;

void setup() {
  TCCR1B = TCCR1B & 0b11111000 | 0x04; // PWM Freq. at 122Hz
  pinMode (forwardPin, INPUT);
  pinMode (reversePin, INPUT);
  myservo.attach(motorPin);
  myservo.write(90);  // set servo to mid-point
}

void loop() {
  fwdReading = digitalRead(forwardPin);
  revReading = digitalRead(reversePin);
  if (fwdReading == HIGH) {
    myservo.write(100); // forward
  } else if (revReading == HIGH) {
    myservo.write(80); // reverse
  } else
    myservo.write(90); // neutral
}
3 голоса | спросил Arrow 5 AMpTue, 05 Apr 2016 10:05:44 +030005Tuesday 2016, 10:05:44

1 ответ


0

Я искал библиотеку, которую вы используете, и сайт arduino упоминает:

  

0 - полная скорость в одном направлении, 180 - полная скорость в другом, а значение около 90 без движения

Из этого можно считать, что значение 90 не идеально находится в середине диапазона скоростей, поэтому 10 пунктов под 90 не обязательно будут эквивалентны 10 точкам выше 90. Мой единственный совет - попытаться найти точку эквивалентности сами по тропе и ошибке. Хотя 90, кажется, не вызывает движения, попробуйте 89 или 91, посмотрите, есть ли у них результат и т. Д.

Или просто попробуйте разные значения, чтобы получить одинаковые скорости в разных направлениях, это нормально, если вы используете разные значения (от 90) для двух разных направлений: P.

Удача Gd

ответил Mero55 7 PMpThu, 07 Apr 2016 21:28:17 +030028Thursday 2016, 21:28:17

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132