Страница 5 из 10 ПерваяПервая 12345678910 ПоследняяПоследняя
Показано с 41 по 50 из 97

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Местный
    Регистрация
    10.11.2010
    Сообщений
    144
    Вес репутации
    209

    По умолчанию Re: Н-Мост на MOSFET+Arduino

    У всех пультов (готовых) есть триммеры. Ни один комплект (передатчик - приёмник) не бывает настроен идеально и всегда приходится больше или меньше настраивать среднее положение, пороги, а в приличных пультах ещё и кривую (не только линейную можно сделать. экспоненту, к примеру...). Так что "дрожание" в 0 - "это нормально". Бороться либо триммерами либо установкой софтом более широкого "нуля". Общая борьба с радио и электрическими помехами хорошо помогает.

  2. #2
    Модератор Аватар для XsanderS
    Регистрация
    05.05.2008
    Возраст
    42
    Сообщений
    829
    Вес репутации
    405

    По умолчанию Re: Н-Мост на MOSFET+Arduino

    Цитата Сообщение от edw123 Посмотреть сообщение
    У всех пультов (готовых) есть триммеры. Ни один комплект (передатчик - приёмник) не бывает настроен идеально и всегда приходится больше или меньше настраивать среднее положение, пороги, а в приличных пультах ещё и кривую (не только линейную можно сделать. экспоненту, к примеру...). Так что "дрожание" в 0 - "это нормально". Бороться либо триммерами либо установкой софтом более широкого "нуля". Общая борьба с радио и электрическими помехами хорошо помогает.
    Все верно, поэтому я и выставлял сначало таймер на 1 микросекунду, колибровал нейтральный сигнал и затем уже экспирименты со скетчем. Сейчас все работает, единственное что после выключения пульта хапает помехи. Так как помехи возникают хотично и имеют длинну примерно от 100 до 500 мкс а то и все 1000 мкс, планирую побороть это методом замера не высокого, а низкого уровня сигнала.
    хороший модем должен качать пиво!
    Мой проект

  3. #3
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Н-Мост на MOSFET+Arduino

    Цитата Сообщение от XsanderS Посмотреть сообщение
    Сейчас все работает
    В чем проблема была?

  4. #4
    Модератор Аватар для XsanderS
    Регистрация
    05.05.2008
    Возраст
    42
    Сообщений
    829
    Вес репутации
    405

    По умолчанию Re: Н-Мост на MOSFET+Arduino

    Цитата Сообщение от Chip Посмотреть сообщение
    В чем проблема была?
    В рамках замера сигнала. Не такой он уж и стандартный как кажется на первый взгляд и при тактовке таймера в 2мкс не совпадали установленые рамки длинны сигнала. Происходило какбы наложение длинны сигнала. Выставлял таймер с тактом в 1мкс и эксперементальным путем выяснял действительные размеры сигналов, разница со стандартами не большая но при 2мкс это кретично. Щас начал переделывать код под считывание сигнала LOW чтобы побороть помехи и выставил рамки замера сигнала с учетом того что сигнал может варьировать. Пробовал 3 разных пульта все работают нормально.
    хороший модем должен качать пиво!
    Мой проект

  5. #5
    Местный
    Регистрация
    10.11.2010
    Сообщений
    144
    Вес репутации
    209

    По умолчанию Re: Н-Мост на MOSFET+Arduino

    Цитата Сообщение от XsanderS Посмотреть сообщение
    ... планирую побороть это методом замера не высокого, а низкого уровня сигнала.
    А может усреднение по 10ти измерениям на предмет отклонений не более 5%, к примеру? Вообще с отключеным передатчиком с приёмников, особенно не дорогих, действительно тако-о-о-о-е прёт...

  6. #6
    Модератор Аватар для XsanderS
    Регистрация
    05.05.2008
    Возраст
    42
    Сообщений
    829
    Вес репутации
    405

    По умолчанию Re: Н-Мост на MOSFET+Arduino

    Цитата Сообщение от edw123 Посмотреть сообщение
    А может усреднение по 10ти измерениям на предмет отклонений не более 5%,
    конкретные предложения?
    Цитата Сообщение от edw123 Посмотреть сообщение
    к примеру? Вообще с отключеным передатчиком с приёмников, особенно не дорогих, действительно тако-о-о-о-е прёт...
    поборол это методом замера низкого уровня. Если на пальцах то чем больше помех тем меньше вероятность ложного сробатывания в режиме когда пулт выключкн. Работаю над разными вареантами, как будут конкретные результаты или вопросы сразу отпишу.
    Последний раз редактировалось XsanderS; 23.10.2011 в 05:44.
    хороший модем должен качать пиво!
    Мой проект

  7. #7
    Модератор Аватар для XsanderS
    Регистрация
    05.05.2008
    Возраст
    42
    Сообщений
    829
    Вес репутации
    405

    По умолчанию 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 lengthImpulstimerCount;

    void setup() 
    {   

    /* LOW — вызов прерывания всякий раз,  
        когда на порту низкий уровень напряжения; 
        CHANGE – прерывание вызывается при изменении  
        значения на входе; 
        RISING – вызов прерывания при изменении уровня  
        напряжения с низкого (LOW) на высокое(HIGH) 
        FALLING – вызов прерывания при изменении уровня  
        напряжения с высокого (HIGH) на низкое (LOW)*/ 
        
      
    lengthImpuls=0
       
      
    pinMode (BTNPININPUT);
      
    pinMode (SETINPUT);  
      
    pinMode (LOUTPUT); 
      
    pinMode (ROUTPUT); 
      
    analogWrite (L0); 
      
    analogWrite (R0);

      
    Timer1.initialize(10);               
      
    Timer1.attachInterrupt(callback);   

      
    attachInterrupt(0fireUpRISING);

    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 (L0);}  
        else if (
    li > (centr+45)) {analogWrite (R255); analogWrite (L0);}
        
        if (
    li < (centr-1)) {analogWrite (L, (centr-li)*5); analogWrite (R0);}
        else if (
    li < (centr-45)) {analogWrite (L255); analogWrite (R0);}
        
        if (
    li > (centr-1) && li < (centr+1)) {analogWrite (L0); analogWrite (R0);}
        
        if (
    digitalRead (12)== HIGH) {centr li;}
    }
    }

    // Функция обработки прерывания на подъем 
    void fireUp() 

      
    timerCount=0
      
    detachInterrupt(0);
      
    attachInterrupt(0fireDownFALLING); 


    // Функция обработки прерывания на падение 
    void fireDown() 

       
    lengthImpuls timerCount
      
    detachInterrupt(0); 
      
    attachInterrupt(0fireUpRISING); 

    хороший модем должен качать пиво!
    Мой проект

  8. #8
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    60
    Сообщений
    241
    Вес репутации
    229

    По умолчанию Re: Н-Мост на MOSFET+Arduino

    В теле void setup() сделай маленькую паузу и опроси начальное положение, заноси в переменную centr = li; и все.
    Последний раз редактировалось Mastar; 20.11.2011 в 16:32.
    Мои проекты - Катер для рыбалки

  9. #9
    Модератор Аватар для XsanderS
    Регистрация
    05.05.2008
    Возраст
    42
    Сообщений
    829
    Вес репутации
    405

    По умолчанию 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()
    хороший модем должен качать пиво!
    Мой проект

  10. #10
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Н-Мост на MOSFET+Arduino

    Я все равно доконца не понимаю как это должно работать.
    Опиши подробно проект что должен делать контроллер

Страница 5 из 10 ПерваяПервая 12345678910 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •