Страница 8 от 17 ПърваПърва ... 4 5 6 7 8 9 10 11 12 ... ПоследнаПоследна
Резултати 176 до 200 от 419

Тема: Релеен атенюатор с 32 стъпки + входен буфер + селектор с 3 входа

  1. #176
    A Lone Rider galinvayov's Avatar
    Членува от
    Apr 2010
    Адрес
    София
    Възраст
    38
    Мнения
    1,907
    На първо четене виждам грешка в SPI магистралата.
    — Мислим да реализираме и "Тайната вечеря".
    — А, да реализирате "Тайната вечеря"?“ Вече не се казва "Да скова кочина", вече се казва "Да реализирам кочина!"

    • #0
      Реклама от Google Реклама от Google
      Членува от
      Dec 2007
      Адрес
      Google.com

        
       

  2. #177
    Поясни:
    1. с няколко отделни енкодера (напр. три)?
    2. с един енкодер, към някоко функции, напр. избирателно, през меню (напр. три) ?
    С два енкодера, като единият ще си е само за нивото на звука, а другият за селектор, като със задържане за някакво време натиснат бутонът му, се превключва към яркост на индикацията. Същият бутон на този енкодер ще е за standby, но без задържане на бутона натиснат.

    Каква индикация и какво регулиране на яркостта ще правиш?
    За регулиране на яркостта мисля да използвам един от аналоговите изходи на контролера. Доколкото знам (дано не греша) на него може да има напрежение от 0 до захранващото чипа напрежение без ШИМ. Яркостта ще се променя с "повдигане" на масите на светодиодите за индикацията, като ще има да речем 10 степени на яркост.
    А самата индикация ще представлява Level meter с 32 светодиода на канал разположени около копчето за нивото на звука. При увеличаване на звука ще се изключва level meter-а за няколко секунди за да се вижда нивото на което е увеличен звукът. Например нивото ако е на 25 ще светят светодиодите на двата канала до 25-я включително, ако не се пипа нивото за няколко секунди (примерно 5) индикацията ще превключи на level meter

    Ако може няколко забележки по схемата. Това при преглед съвсем по диагонал.

    Сложи кондензатори към маса успоредно на контактите на енкодерите и превключвателите. Например, 1нано.
    Бях останал с впечатление че експандерите ще имат различни адреси. Не схемата са с един и същ.
    Не е добра идея са им спираш захранването. Ако все пак решиш да го спираш, преди това трябва да установиш всички изходи в лог. 0 и тогава да дърпаш шалтера. При пускане трябва първо да ги захраниш и тогава да установиш изходите в каквото ниво е необходимо.
    Гледам че дърпаш шалтера и на енкодерите. Тоест сигналите които са в лог. 1 ще станат лог 0. Съответно, ако не е предвидено, "софтуера" ще приеме че има натиснат бутон или е завъртян енкодер.
    Гасиш и инфрареда. След това как би трябвало устройството да се пусне от дистанционното?
    Сложи резистор G-S на клюна на захранването. Гейтовия резистор може да е с по-голяма стойност. Да кажем килоом.
    Не съм бачкал с тоя миктоконтролер, ама на ресета не иска ли и кондензатор?

    Апропо, има стабилизатори с пин за шътдаун. Защо не използваш такъв?
    Имай предвид че ако експандерите са с различни адреси и ги управляваш експандер по екдпандер ще имаш забавяне между тях. Например, от 7 ( 8 ) към 8 (9) или вторият ще изостане или ще се застъпят.
    Схемата е начертана набързо и има много забележки, но постепенно ще ги коригирам.
    Ще добавя кондензатори на енкодерите и бутоните им.
    По идея на veso74 експандерите са свързани паралелно и ще се управляват по адрес. Надявам се да няма голямо забавяне, скоростта за увеличаване/намаляване ще е ограничена заради застъпването на предходното/следващото или следващото/предходното релета за да не остава изходът на атенюатора свободен.
    Спирането на захранването на енкодерите, експандерите и погрешка на инфрареда е с цел минимална консумация в режим standby, но най-вероятно ще го спра само на релетата и индикацията.
    Дали има смисъл стабилизаторът да е с шътдаун, той така или иначе постоянно ще работи за да храни контролера

    На първо четене виждам грешка в SPI магистралата.
    Би ли споделил къде е за да я коригирам ?
    Редактирано от стефан990; 9 May 2019 в 18:47.

  3. #178
    Цитат Публикувано от стефан990 Покажи мнения
    ... Доколкото знам (дано не греша) на него може да има напрежение от 0 до захранващото чипа напрежение без ШИМ ...
    Грешиш. В Atmega328 няма вътрешен DAC. С външен чип: да, възможно е.

    analogWrite():
    https://www.arduino.cc/reference/en/...o/analogwrite/
    ---
    Бих използвал "активна нула" на бутоните. Разбирам, че схемата е първоначална и подлежи на анализ и последваща редакция.
    За управление по адрес е необходимо адресните им шини да са различно свързани: A1,A0 напр. на четирите ИС съответно 00, 01, 10, 11.
    Управлението към релетата е в микросекундната област. Забавянето ако ще влияе, то ще е от реакцията на релетата (милисекундна област).
    Редактирано от veso74; 9 May 2019 в 19:32.

  4. #179
    Гайкаджия ittso's Avatar
    Членува от
    Jul 2008
    Адрес
    София
    Мнения
    4,461
    Цитат Публикувано от veso74 Покажи мнения
    ...Управлението към релетата е в микросекундната област. Забавянето ако ще влияе, то ще е от реакцията на релетата (милисекундна област).
    Зависи на каква честота е пусната шината, и колко бързо смята сметалката. Съвсем на око - имаш да изпратиш device address, register address, data. Тоест, 24 бита. Ако бъсът е на мегахерц, имаш 24 микросекунди само за това. Още толкова за следващия експандер и т.н. Отделно колко ще се лянка микроконтролера докато си мести пиновете насам и натам, и още колко да сготви данните за да ги изпрати. Има и още места на които да позакъснее работата.
    Тоест, започваш от закъснение около поне 50 микросекунди. А може и да не е закъснение, а изпреварване. Зависи от посоката на изменение на волюма и последователността в която се сипват данните.
    Учените са открили, че 90% от хората са симулирали еволюцията.

  5. #180
    На Arduino UNO, Nano, Pro-Mini SPI е:
    the dividers available are 2, 4, 8, 16, 32, 64 or 128 ...
    The default setting is SPI_CLOCK_DIV4 ...
    4 Mhz for the boards at 16 MHz
    от: Arduino SPI: https://www.arduino.cc/en/Reference/SPISetClockDivider

    И да забави, не е определящо мисля за управление на релета спрямо тяхните милисекундни реакции (напр. RF реле OMRON: 1,2...3 ms).
    Редактирано от veso74; 9 May 2019 в 20:23.

  6. #181
    Гайкаджия ittso's Avatar
    Членува от
    Jul 2008
    Адрес
    София
    Мнения
    4,461
    Освен изброеното, има значение каква е максималната честота на управляваното устройство (експандера), какви ще са монтажните капацитети и как ще се омажат фронтовете от тях.
    А дали е фатално... То и изобщо да не тръгне, пак не е фатално, Земята ще продължи да се върти, и човечеството ще продължи да съществува.
    Интересното е каква "дупка" в аудио сигнала би се появила от подобно забавяне или застъпване. Че при 50us започваш да влизаш в чуваемия диапазон...
    Има и още една добра новина. Това са механични релета. Имат толеранси от екземпляр до екземпляр. Ако ги закачиш на общо управление и кажеш "аре хоп", те няма да сработят едновременно. Няма и да изключат едновременно. Тоест, има още едно място от което да се получат "дупки" в аудиото.
    Разглеждайки най-лошия сценарий, да не се окаже че при промяна на нивото е започнало да се чува пук и пляк...
    Учените са открили, че 90% от хората са симулирали еволюцията.

  7. #182
    A Lone Rider galinvayov's Avatar
    Членува от
    Apr 2010
    Адрес
    София
    Възраст
    38
    Мнения
    1,907
    Цитат Публикувано от стефан990 Покажи мнения
    Би ли споделил къде е за да я коригирам ?
    Щом ще използваш общ CS за четирите разширителя, трябва да им дадеш различни адреси чрез различни логически нива на изводи А0 и A1.
    — Мислим да реализираме и "Тайната вечеря".
    — А, да реализирате "Тайната вечеря"?“ Вече не се казва "Да скова кочина", вече се казва "Да реализирам кочина!"

  8. #183
    стефан990, ето управление с библиотеката Rotary.h на два енкодера с независимо действие. Примерна е реакцията на два брояча според посоката на въртене на съответния енкодер.

    Модифициай кода според твоите идеи. Променяй входовете към където искаш. Варианти винаги има.

    Имай предвид, че нито един от енкодерите не е свързан към хардуерно прекъсване (pin 2, 3) и при достатъчно сложна програма (условия и изпълнения в loop) е възможна забавена реакция (спрямо реакцията на кода с един енкодер от съобщенията по-горе). Все пак бих оставил по-бързоизменящото VOLUME по прекъсване спрямо нечесто използвания селектор на входовете.
    Прикрепени изображения Прикрепени изображения
    Прикрепени файлове Прикрепени файлове
    Редактирано от veso74; 9 May 2019 в 21:28.

  9. #184
    Ако вместо тези разширители се сложат преместващи регистри, всички релета ще могат да се задействат едновременно. Не, че с разширителите няма да стане де, но ще трябва да се свържат поотделно.

  10. #185
    Грешиш. В Atmega328 няма вътрешен DAC. С външен чип: да, възможно е.
    Лошоо, бил съм в голяма заблуда В такъв случай, за яркостта ще използвам колкото свободни извода останат на контролера, толкова ще са различните нива на яркост.

    Адресните шини A0 и A1 ще ги коригирам.
    Да, схемата подлежи на корекции и преди да започна да проектирам платката ще тествам почти всичко на експериментална платка за да няма изненади, но преди експерименталната платка е кодът.
    Под "активна нула" имаш в предвид бутоните да са свързани през резистор към +5v ?

    Забавяне или застъпване под мили секунда предполагам няма да е проблем, защото закъсненията на релетата ще са около 10mS, макар още да не мога да се оправя с тези закъснения.

    Благодаря ти veso74 за кода с двата енкодера, утре ще го тествам. Да питам този код е със същите предимства като другия, ако има прекъсване на стъпка в енкодера я прескача без да обърква работата му нали ?

  11. #186
    Цитат Публикувано от стефан990 Покажи мнения
    ...ако има прекъсване...
    ... на микроконтролера. Бъркаш понятията. Имах предвид хартуерно прекъсване на микроконтролера. Без четене няма да я бъде .
    А иначе не се е променила реакцията спрямо износени зъби на енкодера. Дори в повечето случаи доп. кондензатори не са необходими за хардуерен debounce на мех. контакти, но в схемите си слагам "по инерция" 1-10nF.
    ---
    Друг вариант за селектор на входове: с тактилни бутони: през резисторна матрица към един аналогов вход (не ми допада особено, но е вариант) / или с няколко входа (напр 4 бутона, през диоден шифратор ще са необходими 2 входа). Всяка функция винаги има по няколко варианта, това му е хубавото на "Направи си сам" .
    Редактирано от veso74; 9 May 2019 в 22:11.

  12. #187
    Гайкаджия ittso's Avatar
    Членува от
    Jul 2008
    Адрес
    София
    Мнения
    4,461
    Цитат Публикувано от употребител Покажи мнения
    Ако вместо тези разширители се сложат преместващи регистри, всички релета ще могат да се задействат едновременно...
    Вероятно ще стане и с тия експандери ако се свържат "на синджир", но е хубаво да се погледне и документацията им.

    @ Стефан. Аз бих монтирал разширителите на платките с релетата. Така между платките ще има само няколко сигнала с данни, захранвания и маси.
    Учените са открили, че 90% от хората са симулирали еволюцията.

  13. #188
    (OFFTOP: много е малко времето за редакция на съобщение! )

    отправна точка за прекъсване: attachInterrupt()
    https://www.arduino.cc/reference/en/...tachinterrupt/
    Редактирано от veso74; 9 May 2019 в 22:17.

  14. #189
    Цитат Публикувано от ittso Покажи мнения
    ... с тия експандери ако се свържат "на синджир"...
    Точно: бой на върволицата от последователни 32 бита, щрак ... и изходите - установени едновременно. Авторът си решава.
    Прикрепени изображения Прикрепени изображения

  15. #190
    Гайкаджия ittso's Avatar
    Членува от
    Jul 2008
    Адрес
    София
    Мнения
    4,461
    Това имах предвид, но е хубаво да се види какво пише в документацията. Че има разни чаркове на които данните не се появяват на изхода за данни като се напълни регистъра. Други пък имат "прозрачен" режим когато чип селекта им е в неактивно състояние.
    За да не се стигне до тъпата ситуация - платките са направени, но има грешка в концепцията и трябва да се режат писти, трябва да се види в документацията как и дали работи тоя чарк, в тая му част.
    Учените са открили, че 90% от хората са симулирали еволюцията.

  16. #191
    Не се появяват данните на изхода. Дори и да се появяват, изхода се задейства чрез писане в регистър, а няма как да се запишат всички наведнъж при последователно зареждане. Освен ако не се вържат паралелно интегралите към микроконтролера. На всяка вход и изход към контролера. Ако е 8 битов най-много 4 интеграли на порт ще се задействат едновременно. Клока, адресите и чип селект могат да са общи, на отделен порт, в друго време. Обаче комуникацията ще трябва да е софтуерна.

  17. #192
    В допълнение на идеята на ittso за матрично управление на релетата - така ще останат 4 свободни GPIO извода, които могат да се ползват за входове от 4 копчета. Чиповете имат регистър на входовете т.е. той работи като RS тригер и решава проблема с евентуални вибрации на контактите...

  18. #193
    machinow's Avatar
    Членува от
    Dec 2006
    Адрес
    София 16xx, BG
    Възраст
    40
    Мнения
    3,536
    Ами аз за управление на релета и изобщо цифрови изходи ползвам 4094-ки на синджир колкото ми е кеф, в случая 32 = 4x8 // 4x4094 //, зареждането е на практика едновременно. Може би е тъпичко за по-напреднали кат вас, но за мен е по-добре, щом мога сам да му измисля и напиша "драйвера"
    DIY и нестандартно: PC->Xmos USB->PCM1704 цап -> CMOS дискретен пред -> 3-лентов активен дискретен крос -> хубави стъпалца -> 26W8861T + ER15RLY + XT25TG30-04

  19. #194
    Гайкаджия ittso's Avatar
    Членува от
    Jul 2008
    Адрес
    София
    Мнения
    4,461
    Цитат Публикувано от machinow Покажи мнения
    ...за мен е по-добре, щом мога сам да му измисля и напиша "драйвера"
    Това не е толкова интересно. И да не се оправиш с писането на "драйвер", нетът е голям, все някой ще помогне...
    Учените са открили, че 90% от хората са симулирали еволюцията.

  20. #195
    Добавих и селектор към кода, но вмъкнах "стария" код за енкодер, който имах. Отделните библиотеки ще са само за волумето.
    PHP Code:
    // Volume Control with Relays
    // 2.05.2019, Arduino v1.8.9
    //---------------------------------------------------------------------------------------------------------
    #include "Rotary.h"
    #include <SPI.h>
    //---------------------------------------------------------------------------------------------------------
    const int encoderVolBut 4;
    int Mute 0;
    //---------------------------------------------------------------------------------------------------------
    int selector 1;      // Volume zapochva ot 1
    int step 1;        // stapka 1
    unsigned long currentTime;
    unsigned long loopTime;
    const 
    int pin_A 8;       // pin A1
    const int pin_B 9;       // pin A2
    unsigned char encoderSel_A;
    unsigned char encoderSel_B;
    unsigned char encoderSel_A_prev=0;
    int Dac A0;
    int Dek A1;
    int Vinyl A2;

    //---------------------------------------------------------------------------------------------------------
    const int chipSelect 10;
    bool ch_flag true;
    int enc_dir 0;
    int vol 0;
    int vol_old 1;
    Rotary r Rotary (23);                    // encoder -> pin 2, pin 3
    //---------------------------------------------------------------------------------------------------------
    void setup() 
    {  
       
    pinMode(pin_AINPUT);
      
    pinMode(pin_BINPUT);
      
    loopTime currentTime
      
      
    attachInterrupt(0rotary_encoderCHANGE);
      
    attachInterrupt(1rotary_encoderCHANGE);
      
    pinMode(encoderVolButINPUT);  
      
    pinMode(DacOUTPUT);
      
    pinMode(DekOUTPUT);
      
    pinMode(VinylOUTPUT);
      
    //--------------------------------------------------------------------------------------------------------- 

      
    SPI.begin();                               // initialize SPI:
      
    pinMode(chipSelectOUTPUT);
      
    digitalWrite(chipSelectHIGH);            // set the chipSelect as an output:
      
    MCP(0x000x00);                           // IOCON, Enables the MCP23S08 address pins, 
                                                 //  Sequential operation disabled, address pointer does not increment 
    }
    //---------------------------------------------------------------------------------------------------------

    void loop() 
    {
      
    Muting(); 
      
    Selector();
       
      if (
    ch_flag
     {
        
    ch_flag false;
        
    vol += enc_dir;
        
    vol constrain(vol05);
        if (
    vol != vol_old
        {
          
    set_relays();
          
    vol_old vol;
          
    Mute 0;
         
        }
        
    enc_dir 0;
     }
     
    }
    //---------------------------------------------------------------------------------------------------------
    void MCP(int address,int data
    {
      
    digitalWrite(chipSelectLOW);
      
    //  send in the address and value via SPI:
      
    delay(1);

     
     
      
    SPI.transfer(0x42);         // SPI addressing 0x40 with A0 and A1 set to ground and R/W bit set to output
       
      
    SPI.transfer(address);
      
    SPI.transfer(data);
      
    delay(1);

      
    // take the chipSelect pin high to de-select the chip:
      
    digitalWrite(chipSelectHIGH);
    }
    //---------------------------------------------------------------------------------------------------------
    void rotary_encoder() 
    {  
    // rotary encoder events        
      
    int result r.process();

      if (
    result
      
      {   
    ch_flag true;
        if (
    result == DIR_CW)        // clockwise
          
    enc_dir 1;
        else                         
    // counterclockwise
          
    enc_dir = -1;
      }
    }
    //---------------------------------------------------------------------------------------------------------
    void set_relays() 
    {
      if(
    vol == || Mute == 1)      MCP(0x090b00000001);
      else if(
    vol == && Mute == 0MCP(0x090b00000010);
      else if(
    vol == && Mute == 0MCP(0x090b00000100);
      else if(
    vol == && Mute == 0MCP(0x090b00001000);
      else if(
    vol == && Mute == 0MCP(0x090b00010000);
      else if(
    vol == && Mute == 0MCP(0x090b00100000);
    }
    //---------------------------------------------------------------------------------------------------------
    void Muting()

       
      if(
    digitalRead(encoderVolBut) == HIGH)
      {
        
    Mute++;
        
    delay(200);
       }
      if (
    Mute == 0); 
      else if (
    Mute == 1MCP(0x090b00000001);
      else 
         {
          
    Mute 0;
         }
     
      }

      
    void Selector()

    {
      
    currentTime millis();
      if(
    currentTime >= (loopTime 5))    
     {
        
    encoderSel_A digitalRead(pin_A);     
        
    encoderSel_B digitalRead(pin_B);         
        if((!
    encoderSel_A) && (encoderSel_A_prev))   
         { if(
    encoderSel_B
            {
            if (
    selector step >= 1selector -= step;  
                
    delay(200);  
            }    
            else 
            {
            if(
    selector step <= 3selector += step;
            
    delay(200);          
            }  
          }   
        
    encoderSel_A_prev encoderSel_A;    
         
           if (
    selector == 1
              {
    digitalWrite(DacHIGH);}
          else 
    digitalWrite(DacLOW);
      
           if (
    selector == 2
              {
    digitalWrite(DekHIGH);}
           else 
    digitalWrite(DekLOW);
       
           if (
    selector == 3
              {
    digitalWrite(VinylHIGH);}
           else 
    digitalWrite(VinylLOW);

        
    loopTime currentTime;
     }                       

    Не ми допада като вариант селекторът да е с бутони. На предния панел на усилвателя ще има само две копчета, голямо за нивото и по-малко за селектора. Индикацията ще е под тъмен плексиглас.

    @ Стефан. Аз бих монтирал разширителите на платките с релетата. Така между платките ще има само няколко сигнала с данни, захранвания и маси.
    Кабелите ще са дълги окло 30см, затова предпочитам да са в близост до контролера, а от там с 4 лентови кабела по 10 проводника към платките с релетата.


    От пост №188 нататък нещо не ми става ясно, тези 4 експандера, свързани по този начин, с различни адреси, ще могат ли да управляват 32 релета ? Като се има в предвид, че ще има само на един от изходите и на 4-те експандера високо ниво.

    За тестовете съм взел един чип MCP23S08 за TH монтаж, а останалите са ми SMD. Утре ще направя адаптери за останалите чипове и ще свържа 4 в паралел

  21. #196
    Цитат Публикувано от machinow Покажи мнения
    Ами аз за управление на релета и изобщо цифрови изходи ползвам 4094-ки на синджир колкото ми е кеф, в случая 32 = 4x8 // 4x4094 //, зареждането е на практика едновременно. Може би е тъпичко за по-напреднали кат вас, но за мен е по-добре, щом мога сам да му измисля и напиша "драйвера"
    Така е най-добре. Хем по-лесно, хем по-просто, хем по-бързо, хем по-икономично, хем по-универсално и хем по-качествено.
    Редактирано от употребител; 10 May 2019 в 19:41.

  22. #197
    За свързване по #188 адресите на MCP ще трябва да са еднакви, а зареждането ще е последователно: първата ИС зарежда втората, втората - третата ... т.е. преместващ регистър. След запис на данните изходите ще им се установят едновременно (при активиране на SS). Проиграй вариантите, виж предимствата, прецени дали ще са досатъчно изводите.

    Библиотеката е унверсална, не е необходим друг код за управление на друг енкодер: просто си обяви новия. Така има два кода за едно подобно действие при теб. С типовете данни от uint8_t към Arduino типове данни при теб има несъответствие: uint8_t не е int. Трудно ми е да проследя и логиката ти с MUTE. И други такива, но прогамката е твоя. Ще подсказваме малко по-малко.
    ---
    употребител, Arduino Mega 2560 mini с многобройните си изходи, с 40 mA max изходен ток, при управление на 10 mA релета, без разширители, без преместващи регистри, без драйвери за релета и др. ще е по-лесен, по-икономичен вариант, при цена примерно на 5 MCP чипа ще е и по-евтин вариант, но не е там идеята.
    Прикрепени изображения Прикрепени изображения
    Редактирано от veso74; 10 May 2019 в 19:55.

  23. #198
    Цитат Публикувано от veso74 Покажи мнения
    употребител, Arduino Mega 2560 mini с многобройните си изходи, с 40 mA max изходен ток, при управление на 10 mA релета, без разширители, без преместващи регистри, без драйвери за релета и др. ще е по-лесен, по-икономичен вариант, при цена примерно на 5 MCP чипа ще е и по-евтин вариант, но не е там идеята.
    По-добре ще е, да. Обаче само от към цена. И как 8 битов микроконтролер може да променя състоянието на повече от 8 извода едновременно? Ще стане като с разширителите, но по-евтино. Пак няма да включват по едно и също време. Освен това не бих управлявал релета без драйвер, директно от процесора, колкото и ток да му дават. Не е един от сигурните начини. Също така не е важно само колко дава един пин, а общо колко могат да предоставят всичките общо.

  24. #199
    Съгласен съм за "без буфер". И аз не бих го използвал, но е по-лесно. А в случая има само едно от 32 релета активно.

    Едновременно имах предвид почти, т.е. на "първо приближение" относно скоростта на превключване.

    Повече от 8 извода - последователно: един по един. Все пак е Ардуино (има достъп до състояние на един извод, digitalWrite(pin)).

    С Ардуиновското digitalWrite(pin), щом при управление на 5 x 7(+1 с dp)-сегментен LED индикатор (динамична индикация) просветване (светнати, за загасяне, но още не загасени) не забелязвам почти (опресняване около 500 Hz за 5-те) - да приемем, че релетата в изхода ще са едновременно задействани.
    Редактирано от veso74; 10 May 2019 в 20:27.

  25. #200
    Цитат Публикувано от veso74 Покажи мнения
    За свързване по #188 адресите на MCP ще трябва да са еднакви, а зареждането ще е последователно: първата ИС зарежда втората, втората - третата ... т.е. преместващ регистър. След запис на данните изходите ще им се установят едновременно (при активиране на SS). Проиграй вариантите, виж предимствата, прецени дали ще са досатъчно изводите.

    Библиотеката е унверсална, не е необходим друг код за управление на друг енкодер: просто си обяви новия. Така има два кода за едно подобно действие при теб. С типовете данни от uint8_t към Arduino типове данни при теб има несъответствие: uint8_t не е int. Трудно ми е да проследя и логиката ти с MUTE. И други такива, но прогамката е твоя. Ще подсказваме малко по-малко.
    ---
    употребител, Arduino Mega 2560 mini с многобройните си изходи, с 40 mA max изходен ток, при управление на 10 mA релета, без разширители, без преместващи регистри, без драйвери за релета и др. ще е по-лесен, по-икономичен вариант, при цена примерно на 5 MCP чипа ще е и по-евтин вариант, но не е там идеята.
    Утре ще тествам как ще е с четири чипа, с различни комбинации. Ще опитам с библиотеките да подкарам двата енкодера. Логиката с мутето ми е да се включи първото реле и да се изключат всички останали, волумето си остава на нивото на което си е било и след изключване на мутето се връща нивото което е било. Като използвам изводите на контролера работи както го описах, но с MCP то не се получава. Това с muteе въобще не е добре измислено, но засега толкова мога. Покрай експериментите научавам нови неща. Кодът ми сигурно изглежда много идиотски, но за мен си е постижение, преди две седмици се чудех как да накарам светодиод да свети. Напредвам малко по-малко, с вашата помощ разбира се.

Страница 8 от 17 ПърваПърва ... 4 5 6 7 8 9 10 11 12 ... ПоследнаПоследна

Права за публикуване

  • Вие не можете да започвате нова тема
  • Вие не можете да отговаряте в тема
  • Вие не можете да прикачвате към мненията си
  • Вие не можете да редактирате мненията си
  •  
  • BB кодове са Включени
  • Smilies са Включени
  • [IMG] кодове са Включени
  • [VIDEO] code is Включени
  • HTML кодове са Изключени