Выходное напряжение на моторчик 4.25В - максимальное. Под нагрузкой около 2.5В. В в этот раз моторчик стабильно тянет, вытягиет машинку. Думаю может вместо 5В подавать на питание моторчиков 7.4В и там ШИМ отрегулировать до 5В стандартных... Как узнать номинальное напряение моторчика?
И второй вопрос, какие провода лучше использовать как удлинители платы, чтобы низ и верх соединить. Сейчас использую от витой пары, они жесткие. Хочется отдельно плату на верх приделать ввиде шины
Код дописал, пока ездиет хорошо, не так как ожидалось, но все же.
Все таки видно преимущество переднеприводных и 4WD по сравнению с заднеприводной. У меня примерно 20 градусов диапазон поворота руля, совсем резко не получится завернуть, начинает передние колеса клинить, в итоге они начитают служить тормозом.
Пока что еще есть проблема отключения bluetooth при столкновение с препятствием. Не понятно, или bluetooth так себя ведет или питание где-то отходит.
ШИМ мотора на пине 9, при изменение особо разницы не чувствуется. При более 220 либо едет, либо не едет если менее (analogWrite(aPinMotor, Speed); )
Далее на очереди датчик освещенности, датчик расстояния и пьезоспикер.
Код:
//////////////////////////////
//ДОПОЛНИТЕЛЬНЫЕ БИБЛИОТЕКИ
#include <SoftwareSerial.h> //Подключаем библиотеку для управлением блютусом
#include <Servo.h> //Подключаем библиотеку для управления сервой
//////////////////////////////
//СОЗДАЕМ КЛАССЫ
//Объект блютус
SoftwareSerial BlueTooth(0,1); // RX, TX
//Объект для рулевого серво
Servo Servo_Rotation;
//////////////////////////////
//СОЗДАЕМ ПЕРЕМЕННЫЕ И КОНСТАНТЫ
//Цифровой пин для сервы
const int dPin_Servo = 6;
//Предельные значения углов поворота
//Центральное положение
const int Angle_Centr = 98;
//Углы при повороте
const int Angle_Right = 107;
const int Angle_Left = 89;
//Пины моторчика
const int dPinMotor1 = 7;
const int dPinMotor2 = 8;
const int aPinMotor = 9;
//Пины лампочек
const int dPinLight1 = 2; //Передняя правая
const int dPinLight2 = 3; //Задняя правая
const int dPinLight3 = 4; //Передняя левая
const int dPinLight4 = 5; //Задняя левая
//Переменные для режима движения
boolean Emergency = false; //Аварийка
boolean Headlights = false; //Передние фары
boolean Backlights = false; //Передние фары
boolean TurnLeft = false; //Поворот на лево
boolean TurnRight = false; //Поворот на лево
boolean TurnBack = false; //Езда назад
//Состояние лампочек и последнее включение
int LedState1 = false; // 1 - этой переменной устанавливаем состояние светодиода
int LedState2 = false; // 2 - этой переменной устанавливаем состояние светодиода
int LedState3 = false; // 3 - этой переменной устанавливаем состояние светодиода
int LedState4 = false; // 4 - этой переменной устанавливаем состояние светодиода
//Интервал
long interval = 400; // интервал между включение/выключением светодиода (1 секунда)
long previousMillis = 0; // храним время последнего переключения светодиода
// Создаем переменную для команд Bluetooth
char vcmd;
//Создаем переменную для скорости моторчиков
int vspd = 255;
//Переменная для включения функций работы
boolean BlueToothON = false;
//////////////////////////////
//настройки при нажатии кнопки сброс
void setup() {
//Инициализация экрана
Serial.begin(9600);
// Устанавливаем скорость передачи данных по Bluetooth
BlueTooth.begin(9600);
//Включаем мотор
pinMode(dPinMotor1, OUTPUT);
pinMode(dPinMotor2, OUTPUT);
//Устанавливаем максимальную скорость
analogWrite(aPinMotor, vspd);
//Инициализация пинов лампочек
pinMode(dPinLight1, OUTPUT);
pinMode(dPinLight2, OUTPUT);
pinMode(dPinLight3, OUTPUT);
pinMode(dPinLight4, OUTPUT);
}
//Повторяющаяся функция
void loop() {
// Если есть данные
if (BlueTooth.available())
{
// if (BlueToothON == false)
// {
//Включаем питание
RUN_CAR();
// }
//Считывание данных, получаем символы
vcmd = BlueTooth.read();
//Показываем символ для отладки
Serial.println(vcmd);
//////////////////////////
//////////////////////////
//Поворот налево
if (vcmd == 'L')
{
RotateServoToAngle(Angle_Left);
}
//Поворот направо
if (vcmd == 'R')
{
RotateServoToAngle(Angle_Right);
}
//Ехать вперед
if (vcmd == 'F')
{
RotateServoToAngle(Angle_Centr);
Engine_FBS(1);
}
//Ехать назад
if (vcmd == 'B')
{
RotateServoToAngle(Angle_Centr);
Engine_FBS(2);
digitalWrite(dPinLight2, HIGH);
digitalWrite(dPinLight4, HIGH);
}
//Остановка
if (vcmd == 'S')
{
RotateServoToAngle(Angle_Centr);
Engine_FBS(3);
digitalWrite(dPinLight2, LOW);
digitalWrite(dPinLight4, LOW);
}
//ПОВОРОТЫ КОЛЕСАМИ ПЕРЕДНИМИ
// Поворот колес налево
if (vcmd == 'H' || vcmd == 'G')
{
RotateServoToAngle(Angle_Left);
}
//Поворот колес направо
else if (vcmd == 'J' || vcmd == 'I')
{
RotateServoToAngle(Angle_Right);
}
//ДВИЖЕНИЯ МОТОРЧИКА
//Движение назад
if (vcmd == 'H' || vcmd == 'J')
{
Engine_FBS(2);
}
//Движение вперед
else if (vcmd == 'G' || vcmd == 'I')
{
Engine_FBS(1);
}
//УПРАВЛЕНИЕ СКОРОСТБЬЮ
// Скорость 0%
if (vcmd == '0')
{
SetupSpeed(205);
}
// Скорость 10%
else if (vcmd == '1')
{
SetupSpeed(210);
}
// Скорость 20%
else if (vcmd == '2')
{
SetupSpeed(215);
}
// Скорость 30%
else if (vcmd == '3')
{
SetupSpeed(220);
}
// Скорость 40%
else if (vcmd == '4')
{
SetupSpeed(225);
}
// Скорость 50%
else if (vcmd == '5')
{
SetupSpeed(230);
}
// Скорость 60%
else if (vcmd == '6')
{
SetupSpeed(235);
}
// Скорость 70%
else if (vcmd == '7')
{
SetupSpeed(240);
}
// Скорость 80%
else if (vcmd == '8')
{
SetupSpeed(245);
}
// Скорость 90%
else if (vcmd == '9')
{
SetupSpeed(250);
}
// Скорость 100%
else if (vcmd == 'q')
{
SetupSpeed(255);
}
//////////////////////////
// НАПРАВЛЕНИЕ ДВИЖЕНИЯ //
//////////////////////////
//Последнее направление: лево, право, назад
//Движения влево
if (vcmd == 'L')// || vcmd == 'H' || vcmd == 'G')
{
TurnLeft = true;
TurnRight = false;
}
//Движения вправо
else if (vcmd == 'R')// || vcmd == 'J' || vcmd == 'I')
{
TurnLeft = false;
TurnRight = true;
}
//остановка
else if (vcmd == 'S')
{
TurnLeft = false;
TurnRight = false;
TurnBack = false;
//Проверка на сигналку
if (Emergency == false)
{
LedState1 = false;
LedState2 = LedState1;
LedState3 = LedState1;
LedState4 = LedState1;
}
}
//Аварийка вкл
else if (vcmd == 'X')
{
Emergency = true;
}
//Аварийка выкл
else if (vcmd == 'x')
{
Emergency = false;
if (Headlights == false)
{
LedState1 = false;
LedState3 = false;
}
if (Backlights == false && TurnBack == false)
{
LedState2 = false;
LedState4 = false;
}
}
//Фары вкл
else if (vcmd == 'W')
{
Headlights = true;
}
//Фары выкл
else if (vcmd == 'w')
{
Headlights = false;
if (Emergency == false)
{
LedState1 = false;
LedState3 = false;
}
}
//Едем назад
else if (vcmd == 'B')
{
TurnBack = true;
}
//Задние фары
else if (vcmd == 'U')
{
Backlights = true;
}
//Аварийка вкл
else if (vcmd == 'u')
{
Backlights = false;
if (Emergency == false)
{
LedState2 = false;
LedState4 = false;
}
}
}
//Текущие милисекунды
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval)
{
//Мигание аварийкой
if (Emergency == true)
{
LedState1 = !LedState1;
LedState2 = LedState1;
LedState3 = LedState1;
LedState4 = LedState1;
}
else if (TurnRight == true)
{
LedState1 = !LedState1;
LedState2 = LedState1;
}
else if (TurnLeft == true)
{
LedState3 = !LedState3;
LedState4 = LedState3;
}
previousMillis = currentMillis;
}
//Проверка на передние фары
if (Headlights == true && Emergency == false)
{
if (TurnLeft == false)
{
LedState3 = true;
}
if (TurnRight == false)
{
LedState1 = true;
}
}
//Проверка на задние фары
if ((Backlights == true || TurnBack == true) && Emergency == false)
{
if (TurnLeft == false)
{
LedState4 = true;
}
if (TurnRight == false)
{
LedState2 = true;
}
}
//Проверка на лампочки отображение
if (LedState1 == true)
{
digitalWrite(dPinLight1, HIGH);
}
else
{
digitalWrite(dPinLight1,LOW);
}
//Проверка на лампочки отображение
if (LedState2 == true)
{
digitalWrite(dPinLight2, HIGH);
}
else
{
digitalWrite(dPinLight2,LOW);
}
//Проверка на лампочки отображение
if (LedState3 == true)
{
digitalWrite(dPinLight3, HIGH);
}
else
{
digitalWrite(dPinLight3,LOW);
}
//Проверка на лампочки отображение
if (LedState4 == true)
{
digitalWrite(dPinLight4, HIGH);
}
else
{
digitalWrite(dPinLight4,LOW);
}
//Дополнительные команды
//V – звуковой сигнал включен
//v – звуковой сигнал выключен
// else if (BlueToothON == true)
// {
// STOP_CAR();
// }
}
void RotateServoToAngle(int Angle)
{
Servo_Rotation.write(Angle);
}
//Управление направлением движения мотрчика
void Engine_FBS(int Select)
{
//Режим вперед
if (Select == 1)
{
digitalWrite(dPinMotor1, LOW);
digitalWrite(dPinMotor2, HIGH);
}
//Режим назад
if (Select == 2)
{
digitalWrite(dPinMotor1, HIGH);
digitalWrite(dPinMotor2, LOW);
}
//Режим остановки
if (Select == 3)
{
digitalWrite(dPinMotor1, LOW);
digitalWrite(dPinMotor2, LOW);
}
}
void SetupSpeed(int Speed)
{
if (vspd != Speed)
{
//Устанавливаем в переменную, если мы не меняем ее
vspd = Speed;
}
//Изменяем скорость
analogWrite(aPinMotor, Speed);
}
void RUN_CAR()
{
//Подключаем серво
Servo_Rotation.attach(dPin_Servo);
//Устнавливаем начальное положение
RotateServoToAngle(Angle_Centr);
BlueToothON = true;
}
void STOP_CAR()
{
//Отключаем серво
Servo_Rotation.detach();
BlueToothON = false;
}
Догорие штучки, подумаю что делать... а так в принципе целесообразно хотя бы на транзисторы перейти?
Завтра выложу свое видео и проблему которую говорил: блокировка колес.
Смысл таков: ставишь поворот налево, едешь назад - машинку тянет вправо, хотя должно влево. ставишь поворот направо, едешь назад - машинку тянет вправо, как и должно быть. Пока ссылаюсь на редуктур, мож отошло что-то.
вот например тут делали драйвер. единственное он на 5В. на большее напряжение так и не сделали. да и смысла нет. микруха логика для него стоит на уровне меги8.
уже можно на меге и полевиках драйвер делать))) и управление драйвером по i2c например организовать.
с одной стороны глупо ставить мегу для тупого управления моторами, но с другой стороны если так подешевели, уже проще ее поставить. но опять же для 5В
просто если сделать мощнее машинку играть в разы интереснее. полицейские развороты, круги почти на месте, дрифт на поворотах, когда машинку несет боком. need for speed если играли то поймете о чем я
Подскажите пожалуйста где у si9986 где какие ноги. Припаял на плату и кажется стороны перепутал. Точки нет на чипе. Если чип держать так чтобы читалась маркировка (ноги сверху и снизу) то снизк земля и питание сейчас. Тестер показывет замыкание ног сверху первой и последней. Там у меня моторчик. Еще как вариант думаю конденсатор пробитый
А это значит, что всё, что выше 5В, он рассеивает в виде тепла, посему для экономичных схем непригоден и требует радиатора.
Достоинство у него только одно, на Ибее они по рублю за пучок.
Если нужен стабилизтор, лучше ставить импульсный.
На Ибее есть по 1,5 бакса, не помню на какой микрухе.
Импульсный стабилизатор с защитой от перенапряжения, перегрузки, перегрева, КЗ.
Есть на разный вольтаж, ток 3А.
Дропаут 2 вольта.
Китайские пластиковые держалки для АА батарей на Ибее лучше не брать.
Преотвратное качество, жестяные контакты, провода в три волосины.
При приличной нагрузке к использованию непригодны.
Литиевые аккумы всем хороши, но.
То, что продают на Ибее, типа UltraFire и иже с ним, это шлак.
Емкость раза в 2-3 ниже заявленной, умирают быстро, после нескольких десятков циклов.
Хорошие литиевые аккумы довольно дороги.
К литию обязательно нужно устройства контроля батареи, которое будет следить за напругой и визжать дурным голосом при критическом разряде, ибо литий критический разряд очень не любит и после первого же случая может впасть в коматоз.
А устройство следит за напругой на батарее и при 3,2В начинает пищвть. При 3,0В отрубает нагрузку.
По хорошему, лучше не баловаться с литиевыми аккумами размера АА, а взять нормальную Li-Po батарею 2S1P из 2-х банок, на 7,4В
Это идеальный вариант, т.к. дропаут на всех мотор-шилдах 1,5-2,5В. Т.е. до моторов как раз доходит около 6В.
Батарея будет с балансиром.
К ней сразу взять зарядник, поддерживающий зарядку с балансировкой.
Лииевые аккумы хороши тем, что их можно заряжать большими токами до 10С
Но если глюканет зарядник, при перезаряде очень хорошо взрываются. Моделисты писали, что горели сараи и мастерские после взрыва литевыех аккумов.
С Ni-Mh аккумами проще.
Разряд до 0,9В на банку. Как моторы перестали бодро жужжать, можно заряжать, устройство контроля напряжения не обязательно.
Сборки из нескольких элементов можно заряжаются без балансира. Стоят дешевле лития.
В машинку оптимально 6 шт. Получится батарея на 7,4В минус 2В дропаут на мотор шилде, до моторов доберется 5,4-6В.
Мотор шилды.
Самые нормальные это на микрухах L293D и L298.
Ток до 2-х ампер, а главное, управление по плюсу и в связи с этим нормальный ШИМ.
Причем ШИМ реализуем двумя методами. Подачей плюса на управление, а ШИМ сигнала на пин Enable.
Или наоборот, подачей + на Enable, а ШИМ на пин управления.
Мотор шилды на микрухах HG7881, L9110S и иже с ними.
Ток до 600мА, но микрухи без радиаторов и при длительном пропускании всего 200мА начинается вонь перегретым текстолитом.
Управление движками в этих мотор шилдах только по минусу.
Это значит, что ШИМ 255 это стоп машина, а ШИМ 0 это полный газ.
И вообще, управление по минусу это жопа, когда у тебя ШИМ=f(Х), где Х это положение джойстика.
Во всех!!! мотор шилдах нет гальанической развязки между цепями питания и цепями управления.
А это значит, что Ардуино один фиг ловит помехи, даже при отдельном ее питании. В меньшей степени конечно, но ловит.
Пусковой ток движков постоянного тока до 2,5 от номинала, в зависимости от нагрузки.
При подключении Ардуино к моторшилду у меня при запуске движков Ардуино ловила глюки по цепям управления.
Во первых, при старте движков, хаотично дергались сервы, прицепленные непосредственно к Ардуино (питание ее было отдельно от мотор шилда).
Во вторых Ардуино временами сама ребутилась, если моторы запускались в тяжелых условиях, например при переезде порогов.
Для искоренеия этой проблемы нужно делать гальваническую развязку по цепям управления, на оптронах, они дешевы, 10-15 руб. за реле.
И в идеале ставить не просто импульсный стабилизатор, а источник напряжения, чтобы ликвидировать просадки напряжения.
Потом еще всплывет проблема в том, что из за разной скорости движков машина едет не прямо, а описывает окружность большого радиуса.
Способов борьбы два.
Или считать пройденное растояние с помощью энкодеров, притормаживая более быстрый мотор.
Проблемы - работа с прерываниями, определение направления вращения, гемор с пробуксовкой колес.
Или корректировать положении машинки с помощью микрухи акселерометра и гироскопа в одном флаконе.
Проблем еще больше - математические преобразования, фильтр Калмана и т.п. Если в математике не силен, то проблемантично.
L298 не назвал бы нормальным драйвером. жутко греется, падение напряжения
линейный стабилизатор пригоден для питания ардуины с датчиками. они потребляют мало обычно. даже стабилизатор необязателен если по току выдержит встроенный в ардуину
зарядник с балансировкой дорог. дешевые гавно, писалось уже об этом. если исполользовать 2 18650 аккумулятора дешевле купить зарядку с раздельным подсоеденением. тоже гавно, но стоит дешевле и косяков меньше с плохой балансировкой
насчет окружности можно проще. домножать шим на мотор который быстрее на 0,95 и так далее. короче перебором до равной скорости
цепи управления если моторами ловит не так много чтобы сильно сбоила ардуина. драйвер все таки берет на себя нагрузку а не ардуина. сервы питать только от отдельного стабилизатора иначе куча глюков и ардуина постоянно будет перезагружаться
Если нужно не сигнализировать о падении напряжения до критического уровня, а вырубать нагрузку, то в схему нужно добавить N канальный МОП полевик (MOSFET) с необходимым напряжением открытия и током исток-сток.
Затвор полевика притянуть к плюсу через резистор в 10К, чтобы он был всегда открыт.
А закрывать подав минус на затвор через открывшийся TL431.
В протеусе можно отмоделировать, подобрав номиналы резисторов и полевика, в зависимости от требуемых условий.
А теоретически подковаться можно загуглив - "коммутирование мощной нагрузки с помощью mosfet"
Протеус еще хорош и тем, что можно ардуину эмулировать.
Т.е. смоделировать всё сразу, вместе с обвязкой.
Есть решения элегантнее но и подороже.
Это супервизоры питания (напряжения).
Бывают программируемые и нет.
С закрытым и открытым коллектором (выход высокоомный/низкоомный).
У них тоже встроенная термостабилизация, точность до 100мВ.
Встроенная защита от импульсных бросков тока имеется.
Встроенный источник опорного напряжения.
Моторолла такие выпускает, например MC34063.
STMicroelectronics специализируется на них.
В самом простом случае схема контроля на супервизоре питания выглядит так.
Две ноги на контролируемый источник питания, выход на исполнительный механизм (на прерывание ардуины по изменению сигнала, например).
Или на мощный полевик, если нужно вырубить нагрузку.
Потратил время и деньги, проводя эксперименты с источниками питания.
Так да, лучше литиевых аккумов типа 18650 нет ничего.
2 шт. последовательно, емкостью 2600мАн хватает за глаза.
Только брать нужно с PCB платой защиты от переразряда.
Тогда можно не морочится с контролем напряжения.
И чтобы в литиевых аккумах не разочароваться, не нужно брать у китайцев всякий отстой типа UltraFire, по 10 баксов за пучок, емкостью от 3000 мАч.
Китайцы завышают емкость своих аккумов в 5-10 раз.
Чтобы ввести покупателей в заблуждение, пишут соответсвующий вес.
Лучшие умы еще не догадались впихать в элемент 18560 емкость более 2500-2600 мАч.
И по циклам китайцы тоже врут.
Заявляют не менее 500 (нормальные производители до 1000), а на деле их аккумы дохнут через 30-40 полных циклов или 100-120 частичных.
6 Ni-Mh батареек вместо 2-х литиевых получается слишком громоздко и тяжело, да и заряжаются они дольше (я не рассматриваю аккумы fast charge, ибо они дохнут быстро).
Литий-ионные или полимерные батареи 2S1P на 7,2В громоздки, тяжелы и не имеют контроллера переразряда.
Кстати, да не введет вас в заблуждение фраза - защита от короткого замыкания, в описаниях аккумов.
В баночных батареях эта защита являет собой металлическую полоску, которой соединены банки и которая отгорает при коротком замыкании.
В элементах 18650 тоже отгорающая металлическая полоска между плюсом и платой защиты PCB.
берите лучше больше напряжение. в размере разницы почти нет
диоды на 1А самые распрастраненные шотки 1N5817-1N5819, или обычные 1N4001-1N4007
про 0,1мкф уже раз 10 писал. перечитайте
Нашел очередной раз))) между собой и каждую ногу с минусом :) Там тоже на 10V или меньше можно?
там керамика. а она вольт на 50 идет
между собой и каждую ногу на корпус мотора а не минус
Спасибо :) на выходных собиру, отпишусь
Пока такой код. С регулировской скорость потом упрощу по длине кода, некрасиво получилось
Собрал плату. Спаял как мог)))
Проверочный код
Выходное напряжение на моторчик 4.25В - максимальное. Под нагрузкой около 2.5В. В в этот раз моторчик стабильно тянет, вытягиет машинку. Думаю может вместо 5В подавать на питание моторчиков 7.4В и там ШИМ отрегулировать до 5В стандартных... Как узнать номинальное напряение моторчика?
И второй вопрос, какие провода лучше использовать как удлинители платы, чтобы низ и верх соединить. Сейчас использую от витой пары, они жесткие. Хочется отдельно плату на верх приделать ввиде шины
Код дописал, пока ездиет хорошо, не так как ожидалось, но все же.
Все таки видно преимущество переднеприводных и 4WD по сравнению с заднеприводной. У меня примерно 20 градусов диапазон поворота руля, совсем резко не получится завернуть, начинает передние колеса клинить, в итоге они начитают служить тормозом.
Пока что еще есть проблема отключения bluetooth при столкновение с препятствием. Не понятно, или bluetooth так себя ведет или питание где-то отходит.
ШИМ мотора на пине 9, при изменение особо разницы не чувствуется. При более 220 либо едет, либо не едет если менее (analogWrite(aPinMotor, Speed); )
Далее на очереди датчик освещенности, датчик расстояния и пьезоспикер.
Код:
20 градусов маловато, но и с ними машинка может резко поворачивать если увеличить мощность двигателя
http://www.youtube.com/watch?v=jVkJ6CHVy9c
У вас вроде 2 мотора стоит в нем? А есть фото разположения внутри? У меня вроде идентичная конструкция сверху
нет 1 мотор 1 сервопривод. мотор обычный. которой изначально стоял вроде такой
http://music.columbia.edu/~douglas/classes/Motor_Mania/DC_simple2.jpg
такая мощность потому что питание 2 литиевых аккумулятора, и драйвер на полевых транзисторах, на которых нет такого падения напряжения как у вас
фото если не забуду вечером сделаю. там ничего особенного не увидите. ардуина радиомодуль сервопривод стабилизаторы и батарея
конструкция почти у всех одинаковая. верх меняют и все
У вас какой диапазон поворота? Можете для примера схему на транзисторах дать?
я не на транзисторах собирал. использовал такую микруху SI9986. очень удобно
диапазон поворота градусов 45 наверно. может больше. допилите свою машинку чтобы побольше было
Дорогая SI9986? Или выпаяли откуда-то? У вас вроде 2 стабилизатора еще?
В принципе да, если добавить мощности, то и таких проблем с клином не будет
Жду фото))
покупал в свое время. 500 рублей гдето отдал за 25 штук, расчитывал что приготятся. меньшим количеством совсем невыгодно. за 1 шт просили 200 рублей
куда я только ее не ставил: и в машинку, и в танк, даже в преобразователь поставил. хорошо работает))
хорошо постараюсь вечером сделать
Догорие штучки, подумаю что делать... а так в принципе целесообразно хотя бы на транзисторы перейти?
Завтра выложу свое видео и проблему которую говорил: блокировка колес.
Смысл таков: ставишь поворот налево, едешь назад - машинку тянет вправо, хотя должно влево. ставишь поворот направо, едешь назад - машинку тянет вправо, как и должно быть. Пока ссылаюсь на редуктур, мож отошло что-то.
на транзисторах можно собрать. никаких проблемм
вот например тут делали драйвер. единственное он на 5В. на большее напряжение так и не сделали. да и смысла нет. микруха логика для него стоит на уровне меги8.
уже можно на меге и полевиках драйвер делать))) и управление драйвером по i2c например организовать.
с одной стороны глупо ставить мегу для тупого управления моторами, но с другой стороны если так подешевели, уже проще ее поставить. но опять же для 5В
http://arduino.ru/forum/proekty/arduino-draiver-motora-dlya-robota
ну как то так. плата в данный момент не закреплена. аккумуляторы вытащил
У меня серва вверх ногами стоит :)
Для более большего поворота вытачивали платформу?
Сегодня свой вариант расположения скину.
Думаю попробовать подобрать аналог Si9986 на ебэе. На всех этих тоже вроде падение есть? Или есть идентичный.
А3967
HG7881 datasheet не нашел, может быть аналогом Si9986 но на 0.8А?
L9110S datasheet не нашел, может быть аналогом Si9986 но на 0.8А?
сначала определитесь вам нужна такая мощность или нет? машинка будет постоянно дрифтовать
если да то подходит:
1. только самодельный на полевиках
2. SI9986
3. http://arduino.ru/forum/proekty/arduino-draiver-motora-dlya-robota?page=3#comment-67489
там 2 драйвера
если такая мощность не нужна берете любой драйвер, L298 обычно и все
но это при условии питания от 2 литиевых аккумуляторов, соедененных последовательно
Пока этого достаточно, просто интересуюсь.
Т.е. вариант Motor Driver 1A Dual TB6612FNG будет приемлим? SI9986 все таки сложнее достать.
Думаете если повысить мощность на моторчик будет стабильнее поворачивать? Забыли про вопрос6 вытачивали под передние колеса дно машинки?
вытачивать не пришлось. и так все было хорошо
да любой драйвер можно поставить
просто если сделать мощнее машинку играть в разы интереснее. полицейские развороты, круги почти на месте, дрифт на поворотах, когда машинку несет боком. need for speed если играли то поймете о чем я
Заметил что на моей также почти. У меня добавлены крылья
Вид внутри
Вид снизу
http://youtu.be/N4pOzk5XDn4
фото одно и тоже
а вообще по моему один в один
Вид внутри
да наверно изза крыльев у вас поворачиваются колеса как у меня
Т.е. думаете изза крыльев блокировка?
Хотя вроде проверял: повернул в сторону, и рукамиее двигал, колеса клинили
они во что то упираются. посмотрите повнимательнее
У меня используется цифровой и аналоговый пины, например 3 пин.
Аналоговый инициализируется как А3, а цифровой как 3?
Недавно покатал машинку, понял что мощности мало. По асфальту едет примерно со скоростью человека. На ровной,уже чуть быстрее
Сегодня получу микросхемку SI9986
Правильно ли я понял как подключить ее вместо L293B
Sa и Sb - шим
Vdd - 5В
OUTa и OUTb - моторчик
INa - 5В или 0, вперед
INb - 5В или 0, назад
Sa Sb GND на землю (минус питания)
OUTa и OUTb - моторчик
Vdd - плюс питания до 13В. но лучше не более 2 банок лития (8,4В). хватает проверено
INa шим
INb направление
INb - 0 и 5В? (назад, вперед)
да
можно наоборот
INa направление
INb шим
только ньюанс. помоему писал уже об этом. при одном направлении макс. скорость будет при шим 255, а при другом шим 0
инвертировано короче. учитывайте в коде
Спасибо большое
Подскажите пожалуйста где у si9986 где какие ноги. Припаял на плату и кажется стороны перепутал. Точки нет на чипе. Если чип держать так чтобы читалась маркировка (ноги сверху и снизу) то снизк земля и питание сейчас. Тестер показывет замыкание ног сверху первой и последней. Там у меня моторчик. Еще как вариант думаю конденсатор пробитый
Думаю из-за конденсатора, до их установки нормально было. Может из-за этого быть?
Тоже собираю потихоньку самобеглую тележку.
LM7805 (аналог КРЕН5) это линейный стабилизатор.
А это значит, что всё, что выше 5В, он рассеивает в виде тепла, посему для экономичных схем непригоден и требует радиатора.
Достоинство у него только одно, на Ибее они по рублю за пучок.
Если нужен стабилизтор, лучше ставить импульсный.
На Ибее есть по 1,5 бакса, не помню на какой микрухе.
Импульсный стабилизатор с защитой от перенапряжения, перегрузки, перегрева, КЗ.
Есть на разный вольтаж, ток 3А.
Дропаут 2 вольта.
Китайские пластиковые держалки для АА батарей на Ибее лучше не брать.
Преотвратное качество, жестяные контакты, провода в три волосины.
При приличной нагрузке к использованию непригодны.
Литиевые аккумы всем хороши, но.
То, что продают на Ибее, типа UltraFire и иже с ним, это шлак.
Емкость раза в 2-3 ниже заявленной, умирают быстро, после нескольких десятков циклов.
Хорошие литиевые аккумы довольно дороги.
К литию обязательно нужно устройства контроля батареи, которое будет следить за напругой и визжать дурным голосом при критическом разряде, ибо литий критический разряд очень не любит и после первого же случая может впасть в коматоз.
А устройство следит за напругой на батарее и при 3,2В начинает пищвть. При 3,0В отрубает нагрузку.
По хорошему, лучше не баловаться с литиевыми аккумами размера АА, а взять нормальную Li-Po батарею 2S1P из 2-х банок, на 7,4В
Это идеальный вариант, т.к. дропаут на всех мотор-шилдах 1,5-2,5В. Т.е. до моторов как раз доходит около 6В.
Батарея будет с балансиром.
К ней сразу взять зарядник, поддерживающий зарядку с балансировкой.
Лииевые аккумы хороши тем, что их можно заряжать большими токами до 10С
Но если глюканет зарядник, при перезаряде очень хорошо взрываются. Моделисты писали, что горели сараи и мастерские после взрыва литевыех аккумов.
С Ni-Mh аккумами проще.
Разряд до 0,9В на банку. Как моторы перестали бодро жужжать, можно заряжать, устройство контроля напряжения не обязательно.
Сборки из нескольких элементов можно заряжаются без балансира. Стоят дешевле лития.
В машинку оптимально 6 шт. Получится батарея на 7,4В минус 2В дропаут на мотор шилде, до моторов доберется 5,4-6В.
Мотор шилды.
Самые нормальные это на микрухах L293D и L298.
Ток до 2-х ампер, а главное, управление по плюсу и в связи с этим нормальный ШИМ.
Причем ШИМ реализуем двумя методами. Подачей плюса на управление, а ШИМ сигнала на пин Enable.
Или наоборот, подачей + на Enable, а ШИМ на пин управления.
Мотор шилды на микрухах HG7881, L9110S и иже с ними.
Ток до 600мА, но микрухи без радиаторов и при длительном пропускании всего 200мА начинается вонь перегретым текстолитом.
Управление движками в этих мотор шилдах только по минусу.
Это значит, что ШИМ 255 это стоп машина, а ШИМ 0 это полный газ.
И вообще, управление по минусу это жопа, когда у тебя ШИМ=f(Х), где Х это положение джойстика.
Во всех!!! мотор шилдах нет гальанической развязки между цепями питания и цепями управления.
А это значит, что Ардуино один фиг ловит помехи, даже при отдельном ее питании. В меньшей степени конечно, но ловит.
Пусковой ток движков постоянного тока до 2,5 от номинала, в зависимости от нагрузки.
При подключении Ардуино к моторшилду у меня при запуске движков Ардуино ловила глюки по цепям управления.
Во первых, при старте движков, хаотично дергались сервы, прицепленные непосредственно к Ардуино (питание ее было отдельно от мотор шилда).
Во вторых Ардуино временами сама ребутилась, если моторы запускались в тяжелых условиях, например при переезде порогов.
Для искоренеия этой проблемы нужно делать гальваническую развязку по цепям управления, на оптронах, они дешевы, 10-15 руб. за реле.
И в идеале ставить не просто импульсный стабилизатор, а источник напряжения, чтобы ликвидировать просадки напряжения.
Потом еще всплывет проблема в том, что из за разной скорости движков машина едет не прямо, а описывает окружность большого радиуса.
Способов борьбы два.
Или считать пройденное растояние с помощью энкодеров, притормаживая более быстрый мотор.
Проблемы - работа с прерываниями, определение направления вращения, гемор с пробуксовкой колес.
Или корректировать положении машинки с помощью микрухи акселерометра и гироскопа в одном флаконе.
Проблем еще больше - математические преобразования, фильтр Калмана и т.п. Если в математике не силен, то проблемантично.
В форуме есть один чел. которому это удалось.
хороший обзор, но я бы внес пару корректировок
L298 не назвал бы нормальным драйвером. жутко греется, падение напряжения
линейный стабилизатор пригоден для питания ардуины с датчиками. они потребляют мало обычно. даже стабилизатор необязателен если по току выдержит встроенный в ардуину
зарядник с балансировкой дорог. дешевые гавно, писалось уже об этом. если исполользовать 2 18650 аккумулятора дешевле купить зарядку с раздельным подсоеденением. тоже гавно, но стоит дешевле и косяков меньше с плохой балансировкой
насчет окружности можно проще. домножать шим на мотор который быстрее на 0,95 и так далее. короче перебором до равной скорости
цепи управления если моторами ловит не так много чтобы сильно сбоила ардуина. драйвер все таки берет на себя нагрузку а не ардуина. сервы питать только от отдельного стабилизатора иначе куча глюков и ардуина постоянно будет перезагружаться
аккумуляторы только li-ion. лично мое мнение
Пойдет ли этот способ замерить емкость батареи 18650? И например в дальнейшем раз в минуту определять оставшуюся ёмкость?
А зачем?
TL431 плюс три резюка и нема проблема.
Зачем грузить ардуину лишними задачами.
только зарядник нашел по этой схеме
Классический компаратор напряжения собирается на tl431 и трёх резисторах.
К сожалению не нашел информации по такой схеме.
TL431 это управляемый стабилитрон.
Схем на нем дофига и больше.
Например вот.
http://radio-hobby.org/modules/news/article.php?storyid=783
Если нужно не сигнализировать о падении напряжения до критического уровня, а вырубать нагрузку, то в схему нужно добавить N канальный МОП полевик (MOSFET) с необходимым напряжением открытия и током исток-сток.
Затвор полевика притянуть к плюсу через резистор в 10К, чтобы он был всегда открыт.
А закрывать подав минус на затвор через открывшийся TL431.
В протеусе можно отмоделировать, подобрав номиналы резисторов и полевика, в зависимости от требуемых условий.
А теоретически подковаться можно загуглив - "коммутирование мощной нагрузки с помощью mosfet"
Протеус еще хорош и тем, что можно ардуину эмулировать.
Т.е. смоделировать всё сразу, вместе с обвязкой.
Есть решения элегантнее но и подороже.
Это супервизоры питания (напряжения).
Бывают программируемые и нет.
С закрытым и открытым коллектором (выход высокоомный/низкоомный).
У них тоже встроенная термостабилизация, точность до 100мВ.
Встроенная защита от импульсных бросков тока имеется.
Встроенный источник опорного напряжения.
Моторолла такие выпускает, например MC34063.
STMicroelectronics специализируется на них.
В самом простом случае схема контроля на супервизоре питания выглядит так.
Две ноги на контролируемый источник питания, выход на исполнительный механизм (на прерывание ардуины по изменению сигнала, например).
Или на мощный полевик, если нужно вырубить нагрузку.
Типовые схемы включения например вот
http://radio-hobby.org/modules/news/article.php?storyid=1354
Если возиться совсем лень, на Ибее есть сигнализаторы пониженного напряжения на любой вкус и цвет.
И со звуковой индикацией и со светодиодной или дисплеем, на разное напряжение или универсальные.
Есть даже для многобаночных липолек, цепляются к балансиру и контролируют напругу на каждой банке.
Цена в районе 100 руб.
Там же на Ибее можно купить и ваттметр для аккумулятора, который точно подсчитает сколько мАч отдала батарея.
Цена от 10 зеленых американских рублей.
Motto спасибо, понял смысл вашего текста - сигнализатор разряда.
Но сначала хотелось бы замерить приблизительную реальную ёмкость аккумулятора.
Результат тестирования:
Подключил на A0 - GRD резистор 6.9 Ом на 2 Вт
Включил монитор порта, отображались знаки какие-то
Подключил батарейку, ничего не поменялось, спустя минуту обнаружил сильный нагрев и отключил
Осталось подключена батарейка к резистору. Полежало так пару минут, ризистор было очень горячий. Отсоединил для раздумывания.
Подскажите, не сголит ли ничего, и что не так в коде?
Вроде бы и с кодировкой все верно
Потратил время и деньги, проводя эксперименты с источниками питания.
Так да, лучше литиевых аккумов типа 18650 нет ничего.
2 шт. последовательно, емкостью 2600мАн хватает за глаза.
Только брать нужно с PCB платой защиты от переразряда.
Тогда можно не морочится с контролем напряжения.
И чтобы в литиевых аккумах не разочароваться, не нужно брать у китайцев всякий отстой типа UltraFire, по 10 баксов за пучок, емкостью от 3000 мАч.
Китайцы завышают емкость своих аккумов в 5-10 раз.
Чтобы ввести покупателей в заблуждение, пишут соответсвующий вес.
Лучшие умы еще не догадались впихать в элемент 18560 емкость более 2500-2600 мАч.
И по циклам китайцы тоже врут.
Заявляют не менее 500 (нормальные производители до 1000), а на деле их аккумы дохнут через 30-40 полных циклов или 100-120 частичных.
6 Ni-Mh батареек вместо 2-х литиевых получается слишком громоздко и тяжело, да и заряжаются они дольше (я не рассматриваю аккумы fast charge, ибо они дохнут быстро).
Литий-ионные или полимерные батареи 2S1P на 7,2В громоздки, тяжелы и не имеют контроллера переразряда.
Кстати, да не введет вас в заблуждение фраза - защита от короткого замыкания, в описаниях аккумов.
В баночных батареях эта защита являет собой металлическую полоску, которой соединены банки и которая отгорает при коротком замыкании.
В элементах 18650 тоже отгорающая металлическая полоска между плюсом и платой защиты PCB.
ага. так и есть
Так то оно так, но хотел замерить реальную ёмкость. Делал по ссылке но крягозяблы выдает сериал порт
Всем добрый день. Возникла проблема...
Перепаиваю под новую микросхемку, все работает отлично но...
При подключение блютус дергается "серво"
По коду всего одна строка Servo_Rotation.write(90);
При замере напряжения оно скачет, 3.99В - 4.02В
Питание сервы от 5В, после стабилизатора, серва на 5 пин
В итоге подключено: 12,13 - блютус (при 0, 1 тоже самое). Серво 5
Из-за чего может быть проблема?