-
Re: Н-Мост на MOSFET+Arduino
if (li >= 750) {analogWrite (R, 255-(1000-li)); analogWrite (L, 0);}
так я о чем и говорю, согласно этой строчке когда импульс равен 1,5 мс то выполняется действие {analogWrite (R, 255-(1000-li)); analogWrite (L, 0);} значит это действие выполняется сразу после включения пульта, так как нейтральное положение 1,5 мс
-
Re: Н-Мост на MOSFET+Arduino
Правильно , если пульт в нейтральном положении то попадет сюда и ШИМ будет выдавать 5. 255-(1000-750)=5 при значении 5 мотор не будет крутится
-
Re: Н-Мост на MOSFET+Arduino
У всех пультов (готовых) есть триммеры. Ни один комплект (передатчик - приёмник) не бывает настроен идеально и всегда приходится больше или меньше настраивать среднее положение, пороги, а в приличных пультах ещё и кривую (не только линейную можно сделать. экспоненту, к примеру...). Так что "дрожание" в 0 - "это нормально". Бороться либо триммерами либо установкой софтом более широкого "нуля". Общая борьба с радио и электрическими помехами хорошо помогает.
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
edw123
У всех пультов (готовых) есть триммеры. Ни один комплект (передатчик - приёмник) не бывает настроен идеально и всегда приходится больше или меньше настраивать среднее положение, пороги, а в приличных пультах ещё и кривую (не только линейную можно сделать. экспоненту, к примеру...). Так что "дрожание" в 0 - "это нормально". Бороться либо триммерами либо установкой софтом более широкого "нуля". Общая борьба с радио и электрическими помехами хорошо помогает.
Все верно, поэтому я и выставлял сначало таймер на 1 микросекунду, колибровал нейтральный сигнал и затем уже экспирименты со скетчем. Сейчас все работает, единственное что после выключения пульта хапает помехи. Так как помехи возникают хотично и имеют длинну примерно от 100 до 500 мкс а то и все 1000 мкс, планирую побороть это методом замера не высокого, а низкого уровня сигнала.
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
XsanderS
Сейчас все работает
В чем проблема была?
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
Chip
В чем проблема была?
В рамках замера сигнала. Не такой он уж и стандартный как кажется на первый взгляд и при тактовке таймера в 2мкс не совпадали установленые рамки длинны сигнала. Происходило какбы наложение длинны сигнала. Выставлял таймер с тактом в 1мкс и эксперементальным путем выяснял действительные размеры сигналов, разница со стандартами не большая но при 2мкс это кретично. Щас начал переделывать код под считывание сигнала LOW чтобы побороть помехи и выставил рамки замера сигнала с учетом того что сигнал может варьировать. Пробовал 3 разных пульта все работают нормально.
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
XsanderS
... планирую побороть это методом замера не высокого, а низкого уровня сигнала.
А может усреднение по 10ти измерениям на предмет отклонений не более 5%, к примеру? Вообще с отключеным передатчиком с приёмников, особенно не дорогих, действительно тако-о-о-о-е прёт...
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
edw123
А может усреднение по 10ти измерениям на предмет отклонений не более 5%,
конкретные предложения?
Цитата:
Сообщение от
edw123
к примеру? Вообще с отключеным передатчиком с приёмников, особенно не дорогих, действительно тако-о-о-о-е прёт...
поборол это методом замера низкого уровня. Если на пальцах то чем больше помех тем меньше вероятность ложного сробатывания в режиме когда пулт выключкн. Работаю над разными вареантами, как будут конкретные результаты или вопросы сразу отпишу.
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
XsanderS
конкретные предложения?.
Куда уж конкретнее: прежде чем сигнал "зафиксировать", сделать 10 измерений (10 периодов) и если они лежат в пределах 1,05 - 0,95, считать сигнал верным и работать с ним.
Цитата:
Сообщение от
XsanderS
Если на пальцах
А если на коде?
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
edw123
Куда уж конкретнее: прежде чем сигнал "зафиксировать", сделать 10 измерений (10 периодов) и если они лежат в пределах 1,05 - 0,95, считать сигнал верным и работать с ним.
Как показывает правктика 3-х замеров достаточно
-
Re: Н-Мост на MOSFET+Arduino
Извиняюсь за такое обяснение... Вот последний рабочий скетч. На данный момент средний уровень устанавливается нажатием кнопки CentrSet (когда D12==HIGH) хотелось бы реализовать это автаматически. Тоесть при включении arduino выполнялась одноразовая команда "записать длинну сигнала в переменную centr
PHP код:
#include <TimerOne.h>
#define BTNPIN 2 // Вход сигнала
#define SET 12 // Кнопка CentrSet
#define L 5 // Выход на H-Мост вращение в лево
#define R 6 // Выход на H-Мост вращение в право
int centr = 150; //значение по умолчанию пока не будет нажата кнопка CentrSet
volatile uint16_t lengthImpuls, timerCount;
void setup()
{
/* LOW — вызов прерывания всякий раз,
когда на порту низкий уровень напряжения;
CHANGE – прерывание вызывается при изменении
значения на входе;
RISING – вызов прерывания при изменении уровня
напряжения с низкого (LOW) на высокое(HIGH)
FALLING – вызов прерывания при изменении уровня
напряжения с высокого (HIGH) на низкое (LOW)*/
lengthImpuls=0;
pinMode (BTNPIN, INPUT);
pinMode (SET, INPUT);
pinMode (L, OUTPUT);
pinMode (R, OUTPUT);
analogWrite (L, 0);
analogWrite (R, 0);
Timer1.initialize(10);
Timer1.attachInterrupt(callback);
attachInterrupt(0, fireUp, RISING);
}
void callback() { timerCount++; }
void loop()
{
uint16_t li = lengthImpuls;
if (li > (centr-50) && li < (centr+50))
{
if (li > (centr+1)) {analogWrite (R, (li-centr)*5); analogWrite (L, 0);}
else if (li > (centr+45)) {analogWrite (R, 255); analogWrite (L, 0);}
if (li < (centr-1)) {analogWrite (L, (centr-li)*5); analogWrite (R, 0);}
else if (li < (centr-45)) {analogWrite (L, 255); analogWrite (R, 0);}
if (li > (centr-1) && li < (centr+1)) {analogWrite (L, 0); analogWrite (R, 0);}
if (digitalRead (12)== HIGH) {centr = li;}
}
}
// Функция обработки прерывания на подъем
void fireUp()
{
timerCount=0;
detachInterrupt(0);
attachInterrupt(0, fireDown, FALLING);
}
// Функция обработки прерывания на падение
void fireDown()
{
lengthImpuls = timerCount;
detachInterrupt(0);
attachInterrupt(0, fireUp, RISING);
}
-
Re: Н-Мост на MOSFET+Arduino
В теле void setup() сделай маленькую паузу и опроси начальное положение, заноси в переменную centr = li; и все.
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
Mastar
В теле void setup() сделай маленькую паузу и опроси начальное положение, заноси в переменную centr = li; и все.
Не все так просто, на момент выполнения void setup() переменные lengthImpuls, timerCount пусты. Так как обработка прерываний и запись длинны сигнала в них обрабатываются в void fireUp() и void fireDown() Думаю что надо в теле void setup() прописать одноразовую обработку прерываний, либо прописать выполнение fireUp() и void fireDown() затем запись в переменную типа uint16_t а уже с нее брать значение в переменную centr, и все это в теле void setup()
-
Re: Н-Мост на MOSFET+Arduino
Я все равно доконца не понимаю как это должно работать.
Опиши подробно проект что должен делать контроллер
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
Chip
Я все равно доконца не понимаю как это должно работать.
Опиши подробно проект что должен делать контроллер
Собираю свой блок управления моторами для RC модели типа вот такова. Мой блок предназначается для моделей полевой техники. трактаров, экскаваторов, танков... Там где нужно много моторов. Например Актуальная модель К700 2 моста и рулевая и того уже 3 блока управления моторами. Я хочу собрать 1 для 2х моторов. Хотел больше но ресурсов atmegi 168 и 328 маловато изза ограниченных возможностей обработки внешнх прерываний и числа выходов ШИМ. Более навороченную Atmegu например 1280 ставить не бюджетно... В планах создание полностю своего девайса на базе 168й атмеги с разведением платы и всем что к этому относится.
Что касается конкретной задачи с оприделением среднего сгнала, то в планах реализовать чтоб блок сам при включении захватил средний сигнал и от него так сказать плясал. Нужно это для банального удобства чтоб при включении модель не дергалась если подстроечный рычаг на пульту случайно сдвинулся на несколько шагов от середины. Большенство производителей решают это тупо установкой мертвой зоны на шагов 10 в каждую сторону. В следствии чего теряется чувствительность руля и моторы работают не на полную мощность в максимальном положении рычага управления.
-
Re: Н-Мост на MOSFET+Arduino
А если прописать средний сигнал в энергонезависимую память?
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
Chip
А если прописать средний сигнал в энергонезависимую память?
Я так понял имеется ввиду EEPROM? можно и так, только я не знаю как это сделать, и сигнал должен перезаписываться каждый раз когда включается модель, не знаю как это отразится на EEPROM, запись в него ведь ограниченна, кажется 10000 раз. Например выключил модель, положил пульт, рычажок сдвинулся немного и при следующем включении блок сам скоректировал среднее положение.
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
XsanderS
Собираю свой блок управления моторами для RC модели типа вот
такова.
Так, минуточку. Этот регулятор без реверса, а имеет только вращение в одну сторону и тормоз, который можно отключить перемычкой.
Самое прикольное, что то о чем Вы просите, в этом регуляторе уже есть. При включении питания, он считывает положение стика и принимает его как нулевое значение.
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
Mastar
Так, минуточку. Этот регулятор без реверса, а имеет только вращение в одну сторону и тормоз, который можно отключить перемычкой.
Самое прикольное, что то о чем Вы просите, в этом регуляторе уже есть. При включении питания, он считывает положение стика и принимает его как нулевое значение.
Я просто привел его как пример чтобы было понятно о чем речь. Конечно такие регуляторы как брушлес и остальные солидные марки уже имеют эту функцию... Я собираю так сказать регулятор на 2 мотора с вращением в обе стороны. когда это будет работать нормально, буду расширять блок наример поворотники, стоп сигналы, мигалки и тому подобное.
-
Re: Н-Мост на MOSFET+Arduino
Так а зачем заморачиваться на изобретение велосипеда? Просто берете готовое изделие со всеми нужными функциями, есть и с реверсом для коллекторников, только в поиске нужно набирать брашед(Brushed Speed Controller) например такой, а на счет варианта включения по одному каналу разных дискретных каналов, то можно такой вариант на 7 ключей по выходу.
Хотя можно через ардуину это задействовать, но смысла не вижу.
-
Re: Н-Мост на MOSFET+Arduino
Реально советую изложить саму задачу от А до Я, а тут, достаточно специалистов в разных направлениях, которые думаю Вам подскажут наиболее быстрое и правильное решение. Согласитесь, в нашей жизни время - это самое то, что мы меньше всего ценим.
Из личного опыта.
Занимался я разработкой ноу-хау, но за 2 года моей разработки, появился копеечный аналог моей работы. Все в урну, купил и доработал под свои нужды.
-
Re: Н-Мост на MOSFET+Arduino
Все равно мне не понятно как должен происходить процесс захвата среднего положения.
Откуда ардуино узнает что пульт в среднем положении?
Если даже синхронно включить то разность времени между ними может быть существенной и в процессе ожидания включения пульта может поймать помеху от соседней RC модели
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
Chip
Все равно мне не понятно как должен происходить процесс захвата среднего положения.
Откуда ардуино узнает что пульт в среднем положении?
Если даже синхронно включить то разность времени между ними может быть существенной и в процессе ожидания включения пульта может поймать помеху от соседней RC модели
А тут не важно где среднее положение у передатчика, просто реальное положение стика в момент приема сигнала от передатчика принимает за середину и все, будь он выше или ниже середины. После включения первый прием является установочным.
p.s. В более продвинутых регуляторах, если первый принятый сигнал более 2 мс., то регулятор заходит в режим программирования и можно выбирать запрограммированные режимы по списку.
-
Re: Н-Мост на MOSFET+Arduino
Тогда думаю что нужно сделать в бесконечный цикл в setup, в цикле опрашивать приемник и как появится сигнал то считать 10 периодов усреднить и записать в переменную, после этого прервать цикл
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
Chip
Тогда думаю что нужно сделать в бесконечный цикл в setup, в цикле опрашивать приемник и как появится сигнал то считать 10 периодов усреднить и записать в переменную, после этого прервать цикл
Звучит не плохо, только не знаю как это сделать. в setup безконечный цыкл должен как я понимаю содержать установки обработки прерываний... слабо представляю себе как это написать. И усреднение если 10 периодов то надо назначить 10 переменных которые надо сложить а потом разделить, так?
-
Re: Н-Мост на MOSFET+Arduino
В setup нужно сначала инициализировать прерывание , а потом его использовать.
переменные пишутся в массив. Если не получится завтра помогу
-
Re: Н-Мост на MOSFET+Arduino
Цитата:
Сообщение от
Chip
В setup нужно сначала инициализировать прерывание , а потом его использовать.
переменные пишутся в массив. Если не получится завтра помогу
Спасибо. Завтра уезжаю на работу на неделю, но лептоп с монтажкой и arduino беру с собой. Если вечером не усну после работы, попрбую накорябать как я это понимаю, тогда если что подскажещь и направишь.
-
Re: Н-Мост на MOSFET+Arduino
В приведённой Схеме на IRF7319 подскажите какие транзисторы взять и мощность резисторов какая нужна, я просто в эл. не чего не понимаю а хотелось бы управлять с ардуины двигателем на 12В с мак. током 0,5А. Заранее спасибо.
-
Re: Н-Мост на MOSFET+Arduino
Транзисторы BC817 или аналогичный N-P-N
резисторы на схеме прописаны
http://www.compcar.ru/forum/attachme...7&d=1318787025
-
Re: Н-Мост на MOSFET+Arduino
Chip, привет!
Посоветуй какие транзисторы поставить вместо IRF7319, если у меня пусковой ток электромоторов 8А, рабочий 3-4А?
-
Re: Н-Мост на MOSFET+Arduino
Будет использоваться с ШИМ или в ключевом режиме?
-
Re: Н-Мост на MOSFET+Arduino
-
Re: Н-Мост на MOSFET+Arduino
Схема может работать как в ШИМ так и в ключевом режиме.
Какая частота ШИМ будет?
-
Re: Н-Мост на MOSFET+Arduino
Это понятно, мне нужно собрать Н-мост для работы с моторами у которых пусковой ток 8А, рабочий 3-4. irf7319 немного не дотягивает до этих параметров, а хотелось бы с запасом.
Частоту не знаю. Обычная Ардуиновская частота.
-
Re: Н-Мост на MOSFET+Arduino
Если будет работать в режиме ШИМ то схема немного изменится.
Транзисторы IRLU8259
-
Re: Н-Мост на MOSFET+Arduino
Изменится?
Не мог бы ты тогда набросать рабочую схему с наименованием деталей Н-моста рассчитанного на ток до 8А(можно с запасом). Мост будет использоваться в т.ч. для ШИМ.
-
Вложений: 1
Re: Н-Мост на MOSFET+Arduino
Мощный полумостовой драйвер BTS7960B – интегральный полумостовой драйвер, разработанный Infineon для интеллектуального управления электродвигателями.
Вложение 14561
-
Re: Н-Мост на MOSFET+Arduino
~260р шт.
на 2 двигателя нужно 4 = 1040р :( Да и не продается в обычных магазинах.
Печалька
-
Re: Н-Мост на MOSFET+Arduino
Вот здесь цену посмотри, доставка включена в стоимость
Или готовый драйвер можно купить
Если найдешь пару P-channel к транзистору IRLU8259, то я тебе нарисую схему с этой парой
-
Re: Н-Мост на MOSFET+Arduino
допустим IRF4905 (P-канал, -74А)