<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[forum.rcl-radio.ru &mdash; PT2322]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=29</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=29&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «PT2322».]]></description>
		<lastBuildDate>Fri, 09 Apr 2021 13:12:39 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: PT2322]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=3406#p3406</link>
			<description><![CDATA[<p>да, все верно.</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Fri, 09 Apr 2021 13:12:39 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=3406#p3406</guid>
		</item>
		<item>
			<title><![CDATA[Re: PT2322]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=3405#p3405</link>
			<description><![CDATA[<p>Спасибо ! Правильно ли я сделал ?<br /></p><div class="codebox"><pre><code>void PT2322::setFront_lk_att(int f_lk_att){
             f_lk_att = 15-f_lk_att;
             writeWire(f_lk_att + 0b00010000);
}

void PT2322::setFront_rk_att(int f_rk_att){
             f_rk_att = 15-f_rk_att;
             writeWire(f_rk_att + 0b00100000);
}

void PT2322::setCenter_att(int c_att){
             c_att = 15-c_att;
             writeWire(c_att + 0b00110000);
}

void PT2322::setRear_lk_att(int r_lk_att){
             r_lk_att = 15-r_lk_att;
             writeWire(r_lk_att + 0b01000000);
}

void PT2322::setRear_rk_att(int r_rk_att){
             r_lk_att = 15-r_lk_att;
             writeWire(r_rk_att + 0b01010000);
}

void PT2322::setSub_att(int sub_att){
             sub_att = 15-sub_att;
             writeWire(sub_att + 0b01100000);
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (avshturm)]]></author>
			<pubDate>Fri, 09 Apr 2021 13:05:59 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=3405#p3405</guid>
		</item>
		<item>
			<title><![CDATA[Re: PT2322]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=3404#p3404</link>
			<description><![CDATA[<p>void PT2322::setFront_lk_att(int f_lk_att){<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;writeWire(f_lk_att + 0b00010000);<br />}<br />замените на <br />void PT2322::setFront_lk_att(int f_lk_att){<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;f_lk_att = 15-f_lk_att;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;writeWire(f_lk_att + 0b00010000);<br />}</p><p>И так во всех функциях аттенюаторов.</p><p>В фукции используйте число int от -15 до 0.</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Fri, 09 Apr 2021 12:45:18 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=3404#p3404</guid>
		</item>
		<item>
			<title><![CDATA[Re: PT2322]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=3403#p3403</link>
			<description><![CDATA[<p>liman324 скажите есть ли возможность как то поменять в библиотеке управляющие значения в настройках аттенюаторов как описано в даташите&nbsp; -15...0, в самой же библиотеке эти значения 15...0. Что очень неудобно при построении алгоритма &quot;Баланс&quot; и &quot;Фаддер&quot;, можно легко запутаться в значения либо -15...0 или 15...0. А может в комментарии к коду ошибка?</p><div class="codebox"><pre><code> ///////////////// аттенюаторы ////////////////////////
        void setFront_lk_att(int f_lk_att);// att front L
        void setFront_rk_att(int f_rk_att);// att front R
        void setCenter_att(int c_att);     // att center
        void setRear_lk_att(int r_lk_att); // att rear L
        void setRear_rk_att(int r_rk_att); // att rear R
        void setSub_att(int sub_att);      // att SUB
            // -15...0 dB (int 15...0)
     ////////////////////////////////////////////////////// </code></pre></div>]]></description>
			<author><![CDATA[null@example.com (avshturm)]]></author>
			<pubDate>Fri, 09 Apr 2021 12:37:57 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=3403#p3403</guid>
		</item>
		<item>
			<title><![CDATA[PT2322]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=36#p36</link>
			<description><![CDATA[<p>PT2322 представляет собой регулятор 3-х полосной регулятор тембра и громкости, микросхема имеет 6 входов и 6 выходов (FR, FL, SR, SL, CT, SUB), по канальный аттенюатор, 3D — эффект.</p><p>Параметры PT2322:</p><p>Напряжение питания от 5 до 12 В (9 рекомендуемое)<br />Ток потребления 25…40 мА<br />Входное сопротивление 50 кОм<br />Разделение каналов 107 дБ<br />Отношение сигнал / шум 98 дБ<br />НИ при входном напряжении сигнала 0.2 Vrms не более 0,005 %<br />Регулировка тембра ± 14 дБ с шагом 2 дБ<br />Регулировка громкости от -79 дБ до 0 дБ<br />Аттенюатор (не зависимый для каждого канала) от -15 дБ до 0 дБ</p><p>PT2322.h</p><div class="codebox"><pre><code>#ifndef  PT2322_H
#define  PT2322_H

#define  PT2322_address 0x44 // адрес

#include &lt;Arduino.h&gt;
class  PT2322
{
  public:
     PT2322();
     ///////////////// аттенюаторы ////////////////////////
        void setFront_lk_att(int f_lk_att);// att front L
        void setFront_rk_att(int f_rk_att);// att front R
        void setCenter_att(int c_att);     // att center
        void setRear_lk_att(int r_lk_att); // att rear L
        void setRear_rk_att(int r_rk_att); // att rear R
        void setSub_att(int sub_att);      // att SUB
            // -15...0 dB (int 15...0)
     //////////////////////////////////////////////////////   
        
        void setFunc(int mute, int ddd, int tembr);// FUNC:  
                                                  // mute - 0 выкл, 1 вкл 
                                                  // ddd - 0 вкл, 1 выкл
                                                  // тембр - 0 вкл, 1 выкл
                                                  // (int 0,0,0) - по умолчанию
        
        void setBass(int bass);            // BASS    -14...0...14 dB (int -7...0...7)
        void setMiddle(int mid);           // MIDDLE  -14...0...14 dB (int -7...0...7)
        void setTreble(int treb);          // TREBLE  -14...0...14 dB (int -7...0...7)
        
        void setVol(int vol);              // VOLUME  -79...0 dB (int 0...79)
  private:
    void writeWire(char a);
};
    
#endif // PT2322_H</code></pre></div><p>PT2322.cpp</p><div class="codebox"><pre><code>#include &lt;Arduino.h&gt;
#include &lt;Wire.h&gt;
#include &quot;PT2322.h&quot;

PT2322::PT2322(){
    Wire.begin();
}

void PT2322::setFront_lk_att(int f_lk_att){
             writeWire(f_lk_att + 0b00010000);
}

void PT2322::setFront_rk_att(int f_rk_att){
             writeWire(f_rk_att + 0b00100000);
}

void PT2322::setCenter_att(int c_att){
             writeWire(c_att + 0b00110000);
}

void PT2322::setRear_lk_att(int r_lk_att){
             writeWire(r_lk_att + 0b01000000);
}

void PT2322::setRear_rk_att(int r_rk_att){
             writeWire(r_rk_att + 0b01010000);
}

void PT2322::setSub_att(int sub_att){
             writeWire(sub_att + 0b01100000);
}

void PT2322::setFunc(int mute, int ddd, int tembr){
                   switch(mute){
                      case 0: mute = 0b00000000; break;
                      case 1: mute = 0b00001000; break;
                      }
                   switch(ddd){
                      case 0: ddd = 0b00000000; break;
                      case 1: ddd = 0b00000100; break;
                      }
                   switch(tembr){
                      case 0: tembr = 0b00000000; break;
                      case 1: tembr = 0b00000010; break;
                      }
             writeWire(0b01110000 + mute + ddd + tembr);
}

void PT2322::setBass(int bass){
                   switch(bass){
                      case -7: bass = 0b00000000; break;
                      case -6: bass = 0b00000001; break;
                      case -5: bass = 0b00000010; break;
                      case -4: bass = 0b00000011; break;
                      case -3: bass = 0b00000100; break;
                      case -2: bass = 0b00000101; break;
                      case -1: bass = 0b00000110; break;
                      case  0: bass = 0b00000111; break;
                      
                      case  7: bass = 0b00001000; break;
                      case  6: bass = 0b00001001; break;
                      case  5: bass = 0b00001010; break;
                      case  4: bass = 0b00001011; break;
                      case  3: bass = 0b00001100; break;
                      case  2: bass = 0b00001101; break;
                      case  1: bass = 0b00001110; break;
                      }
               writeWire(0b10010000 + bass);
}

void PT2322::setMiddle(int mid){
                   switch(mid){
                      case -7: mid = 0b00000000; break;
                      case -6: mid = 0b00000001; break;
                      case -5: mid = 0b00000010; break;
                      case -4: mid = 0b00000011; break;
                      case -3: mid = 0b00000100; break;
                      case -2: mid = 0b00000101; break;
                      case -1: mid = 0b00000110; break;
                      case  0: mid = 0b00000111; break;
                      
                      case  7: mid = 0b00001000; break;
                      case  6: mid = 0b00001001; break;
                      case  5: mid = 0b00001010; break;
                      case  4: mid = 0b00001011; break;
                      case  3: mid = 0b00001100; break;
                      case  2: mid = 0b00001101; break;
                      case  1: mid = 0b00001110; break;
                      }
               writeWire(0b10100000 + mid);
}

void PT2322::setTreble(int treb){
                   switch(treb){
                      case -7: treb = 0b00000000; break;
                      case -6: treb = 0b00000001; break;
                      case -5: treb = 0b00000010; break;
                      case -4: treb = 0b00000011; break;
                      case -3: treb = 0b00000100; break;
                      case -2: treb = 0b00000101; break;
                      case -1: treb = 0b00000110; break;
                      case  0: treb = 0b00000111; break;
                      
                      case  7: treb = 0b00001000; break;
                      case  6: treb = 0b00001001; break;
                      case  5: treb = 0b00001010; break;
                      case  4: treb = 0b00001011; break;
                      case  3: treb = 0b00001100; break;
                      case  2: treb = 0b00001101; break;
                      case  1: treb = 0b00001110; break;
                      }
               writeWire(0b10110000 + treb);
}
 
void PT2322::setVol(int vol){
            vol = vol - 78;
            vol = abs(vol);
            int vol_10 = vol / 10;
            int vol_1 = vol - vol_10 * 10;
  writeWire(vol_10 + 0b11100000);
  writeWire(vol_1 + 0b11010000);
}


void PT2322::writeWire(char a){
  Wire.beginTransmission(PT2322_address);
//  Wire.write (0b11111111); // очистка регистра
  Wire.write (0b11000111); // активация входов
  Wire.write (0b00000000);
  Wire.write (a);
  Wire.endTransmission();
}</code></pre></div><p>Тестовый скетч</p><div class="codebox"><pre><code>#include &lt;Wire.h&gt; 
#include &lt;PT2322.h&gt;

PT2322 pt1;
 
void setup(){}

void loop(){
audio();
delay(1000);
}
  
 void audio(){
pt1.setFront_lk_att(0);// att front L
pt1.setFront_rk_att(0);// att front R
pt1.setCenter_att(0);  // att center
pt1.setRear_lk_att(0); // att rear L
pt1.setRear_rk_att(0); // att rear R
pt1.setSub_att(0);     // att sub
// int -7...7 = -14...+14 dB 

pt1.setFunc(0,0,0);// FUNC:  
                   // mute - 0 выкл, 1 вкл 
                   // 3d - 0 вкл, 1 выкл
                   // тембр - 0 вкл, 1 выкл
                   // (int 0,0,0) - по умолчанию
        
pt1.setBass(0);            // BASS    -14...0...14 dB (int -7...0...7)
pt1.setMiddle(0);          // MIDDLE  -14...0...14 dB (int -7...0...7)
pt1.setTreble(0);          // TREBLE  -14...0...14 dB (int -7...0...7)
        
pt1.setVol(65); // 0...79
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Sat, 24 Aug 2019 16:15:32 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=36#p36</guid>
		</item>
	</channel>
</rss>
