Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12
  1. #1
    Продвинутый
    Регистрация
    19.02.2010
    Возраст
    46
    Сообщений
    244
    Вес репутации
    225

    По умолчанию Контроль "remote" усилителей средствами ардуино.

    Приветствую, уважаемые!

    Задача такая.
    CarPC. Включать и выключать усилители планирую через ардуино.
    Алгоритм таков:
    ПК выходит из ждущего режима, ждет инициализации звуковой карты (внешняя USB), отправляет сигнал ардуино, тот включает ключ, управляющий "remote".
    Вроде все просто, но. Сигнал ардуино должен получать периодически.
    Раз в 10 сек, например. Если сигнал не получен, пин управления переходит в LOW, отключая усилители.
    Нужно это на случай зависания ПК.

    Помогите со скетчем, плз. Желательно с использованием таймера.

    Спасибо!

    зы: если было (поиск юзал), просьба не пинать, а наставить тру-линком на путь истинный

  2. #2
    Гуру Аватар для St@rz
    Регистрация
    20.06.2008
    Возраст
    49
    Сообщений
    2,293
    Вес репутации
    863

    По умолчанию Re: Контроль "remote" усилителей средствами ардуино.

    Может тебе эта тема будет интересна?

  3. #3
    Продвинутый
    Регистрация
    19.02.2010
    Возраст
    46
    Сообщений
    244
    Вес репутации
    225

    По умолчанию Re: Контроль "remote" усилителей средствами ардуино.

    Не совсем...
    Суть в том, что у меня уже используется прерывание для генерации ШИМ сигнала.
    Думаю, к этому прерыванию привязаться.

    Вот часть кода. Но что-то я пока не могу нормально согласовать процесс "отправил запрос от контроллера - получил ответ от ПК".

    Колдую.

    PHP код:
    void AmpsRemoteContorl()
    {
      
    Serial.write(1);
      
    incomingByte Serial.read();
      
    remoteOn = (incomingByte == 33);
      if (
    remoteOndigitalWrite(remotePinHIGH); else digitalWrite(remotePinLOW);
      
    incomingByte 0;
    //обработчик вашего прерывания

    //****************обработчик прерывания******************** 
    ISR(TIMER2_OVF_vect)  

        
    TCNT2 tcnt2;
        
    remoteCount++;
        if (
    remoteCount == 1000)
        {
          
    remoteCount 0;
          
    AmpsRemoteContorl();
        } 

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

    По умолчанию Re: Контроль "remote" усилителей средствами ардуино.

    Попробуй вот так данные от ПК принимать
    if (Serial.available() > 0) {
    incomingByte = Serial.read(); }

  5. #5
    Продвинутый
    Регистрация
    19.02.2010
    Возраст
    46
    Сообщений
    244
    Вес репутации
    225

    По умолчанию Re: Контроль "remote" усилителей средствами ардуино.

    Вобщем, вот так работает.
    Верю, что не очень грамотно, но работает.
    Комп каждые 15 сек шлет сигнал, сбрасывая remoteCount в ноль.
    Если сигнал не пришел, пин управления устанавливается в LOW.

    PHP код:
    //****************обработчик прерывания******************** 
    ISR(TIMER2_OVF_vect)  

        
    TCNT2 tcnt2;
        
    remoteCount++;
        if (
    remoteCount 30000)
        {
          
    remoteOn false;
          
    remoteCount 0;
        }
     
    //if (Serial.available() > 0) 
     
    incomingByte Serial.read();
     if (
    incomingByte 32)  
       {
         switch (
    incomingByte
         {
           case 
    49bytes[0] = 25; break;
           case 
    50bytes[0] = 50; break;
           case 
    51bytes[0] = 75; break;
           case 
    52bytes[0] = 100; break;
           case 
    53bytes[0] = 125; break;
           case 
    54bytes[0] = 150; break;
           case 
    55bytes[0] = 175; break;
           case 
    56bytes[0] = 200; break;
           case 
    57bytes[0] = 230; break;
           case 
    48remoteOn trueremoteCount 0; break;
         };
         
    //if (incomingByte == 50) bytes[0] = 50;
         //Serial.write(bytes, 1);
         //Serial.write(incomingByte);
         //Serial.write(remoteCount);
           //Serial.write(10000, DEC);
         
    if (remoteOndigitalWrite(remotePinHIGH); else digitalWrite(remotePinLOW);
       } 
     
    pwm_time++;       
        if(
    bytes[0] > pwm_time)  D13_High; else D13_LOW;

    ----------------------------------------------
    что-то я погорячился видимо на счет 15 сек...
    надо поменьше.
    иначе, включение звука произойдет с основательной задержкой, что не айс.
    Последний раз редактировалось BlkDem; 17.05.2010 в 15:40.

  6. #6
    Продвинутый
    Регистрация
    19.02.2010
    Возраст
    46
    Сообщений
    244
    Вес репутации
    225

    По умолчанию Re: Контроль "remote" усилителей средствами ардуино.

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

    нид хэлп..
    -----------------------------------
    уже не надо

    опять с типами данных намудрил.
    int - для remoteCount как-то не подходило...

    как-то так:
    PHP код:
    volatile long remoteCount 0
    Последний раз редактировалось BlkDem; 17.05.2010 в 15:27.

  7. #7
    Продвинутый
    Регистрация
    19.02.2010
    Возраст
    46
    Сообщений
    244
    Вес репутации
    225

    По умолчанию Re: Контроль "remote" усилителей средствами ардуино.

    Код подполировал. Замечание Chip не оставил без внимания. Все отлично!
    ШИМ работает, кнопки на руль работают, вкл/выкл усей работает.
    Осталось все в машину перенести.

  8. #8
    Продвинутый
    Регистрация
    19.02.2010
    Возраст
    46
    Сообщений
    244
    Вес репутации
    225

    По умолчанию Re: Контроль "remote" усилителей средствами ардуино.

    Перенес... А тема не понадобилась
    Процессор Alpine PXA-H700 все делает сам.
    Т.е., у него специальный вывод есть "Rem Out",
    который активируется после загрузки процессора.
    Проц подключен по оптике через M-Audio Transit.
    Никаких посторонних шумов/цыков нет.

    ps: вдруг кому-то пригодится?
    Последний раз редактировалось BlkDem; 18.05.2010 в 21:33.

  9. #9
    Местный
    Регистрация
    23.01.2010
    Возраст
    52
    Сообщений
    162
    Вес репутации
    210

    По умолчанию Re: Контроль "remote" усилителей средствами ардуино.

    Блок питания М 4 АТ имеет выход на управление реле РЕМОУТ усилителя и прочей нагрузки.

  10. #10
    Продвинутый
    Регистрация
    19.02.2010
    Возраст
    46
    Сообщений
    244
    Вес репутации
    225

    По умолчанию Re: Контроль "remote" усилителей средствами ардуино.

    Мне оно не надо. Нет у меня блоков питания, в обычном смысле. Ноут у меня.
    Если внимательно прочитать задачу, то можно еще увидеть контроль зависания ПК. Как М4 реагирует на зависание? А уси остались включенными...и аккум скончалсо

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Ваши права

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