Страница 11 из 19 ПерваяПервая ... 567891011121314151617 ... ПоследняяПоследняя
Показано с 101 по 110 из 184
  1. #101
    Модератор
    Регистрация
    06.07.2008
    Возраст
    46
    Сообщений
    414
    Вес репутации
    436

    По умолчанию Re: Замена ручного управления печкой

    за свое отвечу:
    #define DeltaConst 3

    Есть текущее значение CurrentInput и есть нужное положение var_n. Если CurrentInput<var_n, то CurrentInput нужно увеличить, наоборот - уменьшить. Так?
    Делаем мы это включая двигатель в разные стороны.

    Можно написать что-то вроде

    Код:
    if (CurrentInput<var_n)
    {
        digitalWrite(m3_r,HIGH);
        digitalWrite(m3_l,LOW);
    }
    else
    if (CurrentInput>var_n)
    {
        digitalWrite(m3_r,LOW);
        digitalWrite(m3_l,HIGH);
    }
    else
    {
        digitalWrite(m3_r,LOW); //выключаем двигатель, мы в нужной точке!
        digitalWrite(m3_l,LOW);
    }
    Написав такой код мы столкнемся с одной проблемой: жужжание.
    Связано оно с тем, что двигатель имеет инерцию, в редукторе есть люфты, а аналого-цифровой преобразователь шумит - даже при одном и том же входящем напряжении может выдавать, к примеру, то 170, то 171, то 169. А если еще по шине питания процессора идет какой-то ток, то и на 10-20 прыгать.
    Что с этим делать? Надо заменить точку назначения интервалом, положение внутри которого считается нормальным и двигатель выключать. Обозначим начало интервала var_n1, а конец var_n2.

    Код:
    if (CurrentInput<var_n1)
    {
        digitalWrite(m3_r,HIGH);
        digitalWrite(m3_l,LOW);
    }
    else
    if (CurrentInput>var_n2)
    {
        digitalWrite(m3_r,LOW);
        digitalWrite(m3_l,HIGH);
    }
    else
    {
        digitalWrite(m3_r,LOW);
        digitalWrite(m3_l,LOW);
    }
    так? Делаем интервал достаточно широким и наслаждаемся тишиной.

    Но для этого нам же придется вместо одного значения var_n хранить два var_n1 и var_n2! А это нехорошо, учитывая, что у нас на самом деле не одно значение, а массив! Сделаем интервал чуть по-другому - будем хранить только середину интервала var_n и точность DeltaConst.
    То есть
    var_n1=var_n-DeltaConst
    var_n2=var_n+DeltaConst

    получаем
    Код:
    if (CurrentInput<var_n-DeltaConst)
    {
        digitalWrite(m3_r,HIGH);
        digitalWrite(m3_l,LOW);
    }
    else
    if (CurrentInput>var_n+DeltaConst)
    {
        digitalWrite(m3_r,LOW);
        digitalWrite(m3_l,HIGH);
    }
    else
    {
        digitalWrite(m3_r,LOW);
        digitalWrite(m3_l,LOW);
    }
    А теперь еще раз оптимизируем - меняем этот код на

    if (CurrentInput<var_n-DeltaConst)
    digitalWrite(m3_r,HIGH);
    else
    digitalWrite(m3_r,LOW);
    if (CurrentInput>var_n+DeltaConst)
    digitalWrite(m3_l,HIGH);
    else
    digitalWrite(m3_l,LOW);

    Он становится менее понимаемым, но результат у него абсолютно тот же.
    Проверить несложно, поставив мысленный эксперимент - что происходит при всех трех положениях
    CurrentInput<var_n-DeltaConst
    var_n-DeltaConst<CurrentInput<var_n+DeltaConst
    CurrentInput>var_n+DeltaConst

  2. #102
    Модератор
    Регистрация
    06.07.2008
    Возраст
    46
    Сообщений
    414
    Вес репутации
    436

    По умолчанию Re: Замена ручного управления печкой

    sensors.requestTemperatures();
    temp2 = sensors.getTempC(Thermometer2);
    temp3 = sensors.getTempC(Thermometer3);

    Думаю, что речь идет о далласовских датчиках. Тогда у них протокол такой - им дают команду на измерение, а через некоторое время считывают отдельной командой результат. При этом команда на измерение может даваться сразу всем датчикам, что тут и делается.

  3. #103
    Ломастер Аватар для basurman971
    Регистрация
    13.02.2011
    Возраст
    52
    Сообщений
    396
    Вес репутации
    318

    По умолчанию Re: Замена ручного управления печкой

    Ух,блин как много всего,есть пища для размышлений.Спасибо,однако.
    Дисплей кстати показывает все нормально,просто фонт 5х7 убрать захотел и вместо него символы,как у иносранных авто.Дисплей приспособил другой,мелт по размерам не влазил.Может быть и не озадачился я бы электронным отопителем,но есть но и не одно.Во-первых после переделки рамки под моник ,родные крутилки смотрятся коряво,во вторых чтобы подкрастца к монитору надо пол торпеды разобать(инженеры вольво "гении" не иначе) и в-третьих декоративная накладка сильно постарела и место ей на помойке.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Изменение размера IMG_0215.jpg 
Просмотров:	1191 
Размер:	137.7 Кб 
ID:	14226  

  4. #104
    Ломастер Аватар для basurman971
    Регистрация
    13.02.2011
    Возраст
    52
    Сообщений
    396
    Вес репутации
    318

    По умолчанию Re: Замена ручного управления печкой

    Блин,но мотор почему то всеравно дергаеся иногда,как будто резистор протерт. Залил свою писанину не дергается,встает сразу,заливаю переделанную трясется.

  5. #105
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    393

    По умолчанию Re: Замена ручного управления печкой

    Попробуй увеличить DeltaConst где-нибудь до 10-15. Резистор там +- километр, да и привод не мгновенно останавливается. Что интересно, на десятке в стоке используется шаговый двигатель для одной из заслонок (в подробности не вникал). Подозреваю, что как раз из-за точности позиционирования.

  6. #106
    Ломастер Аватар для basurman971
    Регистрация
    13.02.2011
    Возраст
    52
    Сообщений
    396
    Вес репутации
    318

    По умолчанию Re: Замена ручного управления печкой

    Совсем ослеп
    #define DeltaConst 3 установлен диапазон значений для АЦП
    .И кстати проверят резистор в приводе,работает четко,все таки буржуи умеют запчасти делать(привод от ауди).

  7. #107
    Ломастер Аватар для basurman971
    Регистрация
    13.02.2011
    Возраст
    52
    Сообщений
    396
    Вес репутации
    318

    По умолчанию Re: Замена ручного управления печкой

    Поставил 10 все работает четко.Спасибо всем еще раз.

  8. #108
    Местный
    Регистрация
    23.01.2011
    Возраст
    44
    Сообщений
    183
    Вес репутации
    237

    По умолчанию Re: Замена ручного управления печкой

    А чем дисплеи WG12864 от МТ-12864 отличаются кроме названий выводов ? А то повторил схему а изображения нет

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

    По умолчанию Re: Замена ручного управления печкой

    Нужно даташиты обоих дисплеев смотреть

  10. #110
    Местный
    Регистрация
    23.01.2011
    Возраст
    44
    Сообщений
    183
    Вес репутации
    237

    По умолчанию Re: Замена ручного управления печкой

    Приветствую. У меня вот такой модуль получился. Управление за счет джойстика Sony, который под рулем стоит. Плюсом еще стоит эквалайзер.




    Сделан усилитель для колонок и линейный выход для саба.
    Усилитель от автомагнитолы и цифровой эквалайзер от конструктора. Питание через Кренки. Ваше мнение ?

Страница 11 из 19 ПерваяПервая ... 567891011121314151617 ... ПоследняяПоследняя

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

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

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

Ваши права

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