Как сделать полный СТОП двигателя?
- Войдите на сайт для отправки комментариев
Всем доброго времени суток.
К Arduino Nano подключен один двигатель постоянного тока через драйвер двигателя и одна сервомашинка. Так же джойстик. Схема подключения самая обычная. Питается всё через стабилизатор который в свою очередь подключен к выходу 12В компьютера. Arduino к USB.
Написан скетч для управления двигателем и сервомашинкой. Но вот проблема. Всё работет испровно пока Arduino подключен к USB, но стоит USB отключить как на двигатель начинает поступать слыбый ШИМ сигнал и немного меняется положение сервы. Разогнаться двигатель конечно не может, а начинает свистеть. Да и сервомашинка чуть дребезжит. Это видимо из за изменения напряжения с джойстика на аналоговый вход ардуины при отключении от USB.
Если при включённом USB я подобрал среднее значение, то при отключении я уже не смогу увидеть, что творится в порту.
Как быть?
Вот сам скетч:
#include <Servo.h> Servo Servo1; int zValue; int ENA = 3; int in1 = 2; int in2 = 4; int ENB = 6; int in3 = 7; int in4 = 8; int zPin = A1; int yPin = A0; float N=10.; void setup() { pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); pinMode(yPin, INPUT); pinMode(zPin, INPUT); Servo1.attach(5); Serial.begin(9600); } void loop() { Motor(); int val_H = map(analogRead(A1), 0, 1023, 50, 120); Servo1.write(val_H); //Serial.println(); //Serial.print(" H:"); //Serial.print(val_H); //Serial.print(" Z:"); //Serial.print(zValue); } void Motor() { zValue = zValue + ((map(analogRead(yPin), 0, 1023, 0, 255) -zValue)*2)/(N+1); if (zValue>127) //назад { analogWrite(ENA, zValue-127); digitalWrite(in1, LOW); digitalWrite(in2, HIGH); } if (zValue<133) //вперёд { analogWrite(ENA, 127-zValue); digitalWrite(in1, HIGH); digitalWrite(in2, LOW); } if (zValue >= 128 && zValue <= 133) //стоп { digitalWrite(ENA, LOW); digitalWrite(in1, LOW); digitalWrite(in2, LOW); } }
А на выходе стабилизатора сколько?
Ардуино от USB отключаете и ... она без питания остаётся?
А на выходе стабилизатора сколько?
На выходе стабилизатора 4,95 в.
Ардуино от USB отключаете и ... она без питания остаётся?
Нет конечно. Питается от стабилизатора на пин Vin. Пин 5v свободен. На нём при отключенном USB 3.9 в., при влключенном 3.6 в. Если вот только движки и серву запитать от стабилизатора, а ардуину от 12 ти. Пусть сама стабилизирует. Или со стабилизатора подавать 4,95 в на пины Vin и 5v, но я не знаю можно ли так делать. Питаться в дальнейшем должно от аккумулятора.
Меня ещё интересуют последние строчки. как будто контроллер их просто игнорирует.
В сл. виде точно пролетает:
58
if
(zValue > 128 && zValue < 133)
//стоп (это средняя точка джойстика)
59
{
60
digitalWrite(ENA, LOW);
61
digitalWrite(in1, LOW);
62
digitalWrite(in2, LOW);
63
}
Хоть с подключенным USB хоть с подключенным.
На выходе стабилизатора 4,95 в. ...
Питается от стабилизатора на пин Vin. Пин 5v свободен.
Т.е. у Вас на выходе стабилизатора 5В, и Вы подаёте их на VIN? Вообще-то на VIN подаётся минимум 7В.
Подайте свои 5В на специально так и подписанный пин 5В, окей?
Меня ещё интересуют последние строчки. как будто контроллер их просто игнорирует.
Так выведите свою zValue в сериал и полюбуйтесь на неё.
Нет конечно. Питается от стабилизатора на пин Vin. Пин 5v свободен. На нём при отключенном USB 3.9 в., при влключенном 3.6 в. Если вот только движки и серву запитать от стабилизатора, а ардуину от 12 ти. Пусть сама стабилизирует. Или со стабилизатора подавать 4,95 в на пины Vin и 5v, но я не знаю можно ли так делать. Питаться в дальнейшем должно от аккумулятора.
А запитать от аккумулятора можно только вот от какого аккумулятора?
Кинул питание на пин 5v. тоже, что и на vin со стабилизатора. Серва и двигатель так же питаются от 12в. Проблема исчезла. Нужно было самому головой подумать, что на vin нет смысла подавать 5в. Он его ещё просадит. Так или иначе всё работает. Могу скинуть скетч, но вряд ли он кому нибудь пригодится. Я это для подводной лодки делаю.
Питаться в дальнейшем будет (я так думаю) или от одного аккумулятора 12в для бесперебойника или двух по 6в. Как раз груз подходящий. Пока до этого ещё далеко. Нужно всё по радиоканалу развести. Но это уже другая история.
Спасибо за советы!
для подводной лодки делаю ... Питаться в дальнейшем будет (я так думаю) или от одного аккумулятора
Такого?
Шутка хорошая! :-)