| Ваш IP: 3.238.232.88 | Online(34) - гости: 5, боты: 29 | Загрузка сервера: 0.39 ::::::::::::

Темброблок 5.1 на PT2323 и PT2322 (Arduino)

Темброблок состоит из двух микросхем PT2323 и PT2322, управление осуществляется при помощи Arduino Nano.

Плата Arduino Nano с аудиопроцессорами PT2323 и PT2322 обмениваются данными на шине I2C по линиям SDA (data — данные) и SCL (clock — синхронизация).

PT2323 представляет собой коммутатор аудио сигналов. Микросхема имеет 4-е стерео входа и один шести канальный вход формата 5.1. Стерео сигнал подаваемый на входы микросхемы преобразуется в аудио сигнал формата 5.1, а аудио сигнал формата 5.1 поступает на выход 5.1 без изменений.

PT2323 имеет следующие аудио выходы:

  • FR — правый канал фронт
  • FL — левый канал фронт
  • SR — правый канал тыл
  • SL — левый канал тыл
  • CT — центральный канал
  • SUB — канал сабвуфера

Параметры PT2323:

  • Напряжение питания 9 В (4,5 В минимальное)
  • КНИ при входном напряжении сигнала 0.2 Vrms не более 0,005 %
  • Отношение сигнал / шум 100 дБ
  • Максимальное входное напряжение 3,75 Vrms

PT2322 представляет собой регулятор 3-х полосной регулятор тембра и громкости, микросхема имеет 6 входов и 6 выходов (FR, FL, SR, SL, CT, SUB), по канальный аттенюатор, 3D — эффект.

Параметры PT2322:

  • Напряжение питания от 5 до 12 В (9 рекомендуемое)
  • Ток потребления 25…40 мА
  • Входное сопротивление 50 кОм
  • Разделение каналов 107 дБ
  • Отношение сигнал / шум 98 дБ
  • КНИ при входном напряжении сигнала 0.2 Vrms не более 0,005 %
  • Регулировка тембра ± 14 дБ с шагом 2 дБ
  • Регулировка громкости от -79 дБ до 0 дБ
  • Аттенюатор (не зависимый для каждого канала) от -15 дБ до 0 дБ

Библиотеки

PT2323.zip  https://github.com/liman324/PT2323.git

PT2322.zip  https://github.com/liman324/PT2322.git

 

Пример скетча показанный ниже позволяет управлять параметрами  PT2323 и PT2322 при помощи 4-х кнопок с выводом информации на LCD1602 (ЖК-дисплей на базе HD44780).

Управление параметрами темброблока достаточно простое, при помощи кнопки МЕНЮ можно выбрать регулируемый параметр и изменить его при помощи кнопок ПЛЮС и МИНУС, четвертая кнопка — выбор входа. Режим MUTE активируется одновременным нажатием кнопок ПЛЮС и МИНУС.

Все параметры заносятся в энергонезависимую память.

#include <Wire.h>
#include <PT2323.h>
#include <PT2322.h>
#include <LiquidCrystal.h>
#include <EEPROM.h>
 PT2323 pt0; 
 PT2322 pt1;
 LiquidCrystal lcd(7, 6, 2, 3, 4, 5);// RS,E,D4,D5,D6,D7 подключение LCD
   byte a1[8]={0b00000,0b11011,0b11011,0b11011,0b11011,0b11011,0b11011,0b00000};
   byte a2[8]={0b00000,0b11000,0b11000,0b11000,0b11000,0b11000,0b11000,0b00000};
   unsigned long time;
   int menu,w,vol,vol_d,z,in,bass,bass_d,mid,mid_d,treb,treb_d,attfl,attfl_d,attcn,attcn_d,attsub,attsub_d,ddd,tembro,x,attfr,attfr_d,atttl,atttl_d,atttr,atttr_d,mute;
 
void setup() {
  Wire.begin();Serial.begin(9600);
  lcd.begin(16, 2);lcd.createChar(0,a1);lcd.createChar(1,a2);
  pinMode(A0,INPUT); // menu
  pinMode(A1,INPUT); // +
  pinMode(A2,INPUT); // -
  pinMode(A3,INPUT); // input
  vol = EEPROM.read(0);in = EEPROM.read(1);bass = EEPROM.read(2)-7;mid = EEPROM.read(3)-7;treb = EEPROM.read(4)-7;
  attfl = EEPROM.read(5)-14;attcn = EEPROM.read(7)-14;attsub = EEPROM.read(8)-14;ddd = EEPROM.read(9);tembro = EEPROM.read(10);
  attfr = EEPROM.read(11)-14;atttl = EEPROM.read(12)-14;atttr = EEPROM.read(13)-14;
  delay(500);
  audio1();audio2();
}
 
void loop() {
   if(analogRead(A0)>900&&mute!=1){menu++;cl();time=millis();w=1;if(menu>11){menu=0;}}// меню
 
/////////////////////////////// volume ///////////////////////////////////////////////
 if(menu==0){
   if(analogRead(A1)>900){vol++;w=1;if(vol>79){vol=79;}audio2();cl();time=millis();}// 79 максимальная громкость  
   if(analogRead(A2)>900){vol--;w=1;if(vol<0){vol=0;}audio2();cl();time=millis();}// 0 минимум громкости 
    lcd.setCursor(0,0);lcd.print("Volume   ");
    lcd.print(-79+vol);lcd.setCursor(13,0);lcd.print("dB");vol_d=vol/2-15;
   if(vol_d>=0){for(z=0;z<=vol_d;z++){lcd.setCursor(z/2,1);lcd.write((uint8_t)0);}}
   if((vol_d)%2==0){lcd.setCursor(z/2,1);lcd.write((uint8_t)1);}
   lcd.setCursor(13,1);lcd.print(vol);lcd.print(" ");}
 /////////////////////////////////////////////////////////////////////////////////////
 
  /////////////////////// индикация тембр НЧ + управление кнопками -14...14 дБ ///////////////////
   if(menu==1){
   if(analogRead(A1)>900){bass++;w=1;if(bass>7){bass=7;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){bass--;w=1;if(bass<-7){bass=-7;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("Bass      ");
  lcd.print(bass*2);lcd.setCursor(13,0);lcd.print("dB");bass_d=bass+7;
   if(bass_d>=0){for(z=0;z<=bass_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((bass_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
   /////////////////////// индикация тембр CЧ + управление кнопками -14...14 дБ ///////////////////
   if(menu==2){
   if(analogRead(A1)>900){mid++;w=1;if(mid>7){mid=7;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){mid--;w=1;if(mid<-7){mid=-7;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("Middle    ");
  lcd.print(mid*2);lcd.setCursor(13,0);lcd.print("dB");mid_d=mid+7;
   if(mid_d>=0){for(z=0;z<=mid_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((mid_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
    /////////////////////// индикация тембр BЧ + управление кнопками -14...14 дБ ///////////////////
   if(menu==3){
   if(analogRead(A1)>900){treb++;w=1;if(treb>7){treb=7;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){treb--;w=1;if(treb<-7){treb=-7;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("Treble    ");
  lcd.print(treb*2);lcd.setCursor(13,0);lcd.print("dB");treb_d=treb+7;
   if(treb_d>=0){for(z=0;z<=treb_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((treb_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
//////////////////////////////////// rock pop classic //////////////////////      
  if(menu==4){
    if(analogRead(A1)>900){tembro++;w=1;if(tembro>4){tembro=0;}cl();time=millis();} 
    if(analogRead(A2)>900){tembro--;w=1;if(tembro<0){tembro=4;}cl();time=millis();}
    lcd.setCursor(0,0);lcd.print(" Preset timbre  ");
    if(tembro==0){lcd.setCursor(0,1);lcd.print("  manual mode  ");}
    if(tembro==1){lcd.setCursor(0,1);lcd.print("      ROCK     ");bass=4,mid=-2;treb=5;x=1;}
    if(tembro==2){lcd.setCursor(0,1);lcd.print("      POP      ");bass=-3,mid=3;treb=-2;x=1;}
    if(tembro==3){lcd.setCursor(0,1);lcd.print("    CLASSIC    ");bass=0,mid=0;treb=-2;x=1;}
    if(tembro==4){lcd.setCursor(0,1);lcd.print("    default    ");bass=0,mid=0;treb=0;x=1;}
    if(x==1){audio2();x=0;}
  }
////////////////////////////////////////////////////////////////////////////////
 
  /////////////////////// ATT FL ///////////////////
   if(menu==5){
   if(analogRead(A1)>900){attfl++;w=1;if(attfl>0){attfl=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){attfl--;w=1;if(attfl<-14){attfl=-14;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("ATT FL   ");
  lcd.print(attfl);lcd.setCursor(13,0);lcd.print("dB");attfl_d=attfl+14;
   if(attfl_d>=0){for(z=0;z<=attfl_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((attfl_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
   /////////////////////// ATT FR ///////////////////
   if(menu==6){
   if(analogRead(A1)>900){attfr++;w=1;if(attfr>0){attfr=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){attfr--;w=1;if(attfr<-14){attfr=-14;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("ATT FR   ");
  lcd.print(attfr);lcd.setCursor(13,0);lcd.print("dB");attfr_d=attfr+14;
   if(attfr_d>=0){for(z=0;z<=attfr_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((attfr_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
 /////////////////////// ATT TL ///////////////////
   if(menu==7){
   if(analogRead(A1)>900){atttl++;w=1;if(atttl>0){atttl=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){atttl--;w=1;if(atttl<-14){atttl=-14;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("ATT TL   ");
  lcd.print(atttl);lcd.setCursor(13,0);lcd.print("dB");atttl_d=atttl+14;
   if(atttl_d>=0){for(z=0;z<=atttl_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((atttl_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
 
 /////////////////////// ATT TR ///////////////////
   if(menu==8){
   if(analogRead(A1)>900){atttr++;w=1;if(atttr>0){atttr=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){atttr--;w=1;if(atttr<-14){atttr=-14;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("ATT TR   ");
  lcd.print(atttr);lcd.setCursor(13,0);lcd.print("dB");atttr_d=atttr+14;
   if(atttr_d>=0){for(z=0;z<=atttr_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((atttr_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
  /////////////////////// ATT CN ///////////////////
   if(menu==9){
   if(analogRead(A1)>900){attcn++;w=1;if(attcn>0){attcn=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){attcn--;w=1;if(attcn<-14){attcn=-14;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("ATT CN   ");
  lcd.print(attcn);lcd.setCursor(13,0);lcd.print("dB");attcn_d=attcn+14;
   if(attcn_d>=0){for(z=0;z<=attcn_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((attcn_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
   /////////////////////// ATT SUB ///////////////////
   if(menu==10){
   if(analogRead(A1)>900){attsub++;w=1;if(attsub>0){attsub=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){attsub--;w=1;if(attsub<-14){attsub=-14;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("ATT SUB  ");
  lcd.print(attsub);lcd.setCursor(13,0);lcd.print("dB");attsub_d=attsub+14;
   if(attsub_d>=0){for(z=0;z<=attsub_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((attsub_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////// 3d ///////////////////////////////////////////////
 if(menu==11){
   if(analogRead(A1)>900){ddd++;w=1;if(ddd>1){ddd=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){ddd--;w=1;if(ddd<0){ddd=1;}audio2();cl();time=millis();}
   lcd.setCursor(0,0); if(ddd==0){lcd.print("     3D  ON  ");}else{lcd.print("     3D  OFF  ");}
 }
 
 ////////////////////////////////////////////////////////////////////////////////
  if(analogRead(A3)>900){in++;if(in>4){in=0;}audio1();cl();lcd.setCursor(0,0);lcd.print("    INPUT  ");lcd.print(in+1);delay(2000);time=millis();w=1;}// in
//  if(analogRead(A3)>900){in++;if(in>5){in=0;}audio1();cl();lcd.setCursor(0,0);lcd.print(" INPUT ");lcd.print(in+1);delay(2000);time=millis();w=1;}// если in = 5 то включен шести канальный вход 
//////////// mute ////////////////////////
  if(mute==1&&(analogRead(A1)>900||analogRead(A2)>900)){mute=0;menu=0;audio1();cl();}  
  if(analogRead(A1)>900&&analogRead(A2)>900){mute=1;menu=100;audio1();cl();}
  if(mute==1){lcd.setCursor(0,0);lcd.print("      MUTE      ");delay(300);}
 
 
 
///////////////////////////////eeprom//////////////////////////////////////////////// 
  if(millis()-time>10000&& w==1&&mute==0){
     EEPROM.update(0,vol);EEPROM.update(1,in);EEPROM.update(2,bass+7);EEPROM.update(3,mid+7);EEPROM.update(4,treb+7);
     EEPROM.update(5,attfl+14);EEPROM.update(7,attcn+14);EEPROM.update(8,attsub+14);EEPROM.update(9,ddd);EEPROM.update(10,tembro);
     EEPROM.update(11,attfr+14);EEPROM.update(12,atttl+14);EEPROM.update(13,atttr+14);
     menu=0;w=0;cl();}
/////////////////////////////////////////////////////////////////////////////////////
}// loop
 
 
void cl(){delay(300);lcd.clear();}
void audio1(){
  pt0.setInput(in); 
  pt0.setMute(0,0,0,0,0,0,mute); 
  pt0.setFeature(1,1); 
}
 
void audio2(){
  pt1.setFront_lk_att(abs(attfl));// att front L
  pt1.setFront_rk_att(abs(attfr));// att front R
  pt1.setCenter_att(abs(attcn));  // att center
  pt1.setRear_lk_att(abs(atttl)); // att rear L
  pt1.setRear_rk_att(abs(atttr)); // att rear R
  pt1.setSub_att(abs(attsub));     // att sub
  pt1.setFunc(0,ddd,0); // mute,3d,тембр on/off
  pt1.setBass(bass);            // BASS    -14...0...14 dB (int -7...0...7)
  pt1.setMiddle(mid);          // MIDDLE  -14...0...14 dB (int -7...0...7)
  pt1.setTreble(treb);          // TREBLE  -14...0...14 dB (int -7...0...7)
  pt1.setVol(vol); // 0...79
}

  • ir.ino.zip — ИК пульт (пример скетча)

  • pt2323_pt2322_IR_Enc.zip (скетч протестирован) — энкодер, кнопки IN и MUTE, ИК — пульт дублирующий полностью энкодер и кнопку IN (видео работы скетча показано ниже)

В мониторе порта можно получить коды кнопок Вашего пульта.

Для нормальной работы скетча необходимо скачать дополнительные библиотеки:

IRremote.zip — библиотека изменена

MsTimer2.ZIP

Encoder.zip

Комментарии

  • ashiq:

    how to use pt2323 with tda7439..what are the changes should do in the code??

  • nevermind345:

    привет, мой английский не очень хорош, я не знаю русского, я использую гугл переводчик Моя проблема: я собирался установить файл pt2323_pt2322_IR_Enc на Arduino uno, но Arduino uno выдает ошибку компиляции, необходимые библиотеки доступны Файл ir.ino не выдает эту ошибку, мне нужна ваша помощь

  • nevermind345:

    Arduino:1.8.15 (Windows 7), Kart:»Arduino Uno»

    In file included from C:\Users\güven\Desktop\pt2323_pt2322_IR\pt2323_pt2322_IR.ino:8:0:
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/private/IRTimer.cpp.h: In function ‘void timerConfigForSend(uint8_t)’:
    C:\Users\g�ven\Documents\Arduino\libraries\Arduino_DY_IRDaikin-master/boarddefs.h:57:20: error: ‘F_CPU’ was not declared in this scope
    # define SYSCLOCK F_CPU // main Arduino clock
    ^
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/private/IRTimer.cpp.h:51:15: note: in expansion of macro ‘SYSCLOCK’
    #define F_CPU SYSCLOCK
    ^~~~~~~~
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/private/IRTimer.cpp.h:339:30: note: in expansion of macro ‘F_CPU’
    const uint16_t pwmval = (F_CPU / 2000) / (aFrequencyKHz); // 210,52 for 38 kHz @16 MHz clock, 2000 instead of 1000 because of Phase Correct PWM
    ^~~~~
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/private/IRTimer.cpp.h: In function ‘void timerConfigForReceive()’:
    C:\Users\g�ven\Documents\Arduino\libraries\Arduino_DY_IRDaikin-master/boarddefs.h:57:20: error: ‘F_CPU’ was not declared in this scope
    # define SYSCLOCK F_CPU // main Arduino clock
    ^
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/private/IRTimer.cpp.h:51:15: note: in expansion of macro ‘SYSCLOCK’
    #define F_CPU SYSCLOCK
    ^~~~~~~~
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/private/IRTimer.cpp.h:355:27: note: in expansion of macro ‘F_CPU’
    #define TIMER_COUNT_TOP (F_CPU * MICROS_PER_TICK / 1000000)
    ^~~~~
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/private/IRTimer.cpp.h:364:13: note: in expansion of macro ‘TIMER_COUNT_TOP’
    OCR2A = TIMER_COUNT_TOP;
    ^~~~~~~~~~~~~~~
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/IRSend.cpp.h: In member function ‘void IRsend::enableIROut(uint8_t)’:
    C:\Users\g�ven\Documents\Arduino\libraries\Arduino_DY_IRDaikin-master/boarddefs.h:57:20: error: ‘F_CPU’ was not declared in this scope
    # define SYSCLOCK F_CPU // main Arduino clock
    ^
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/private/IRTimer.cpp.h:51:15: note: in expansion of macro ‘SYSCLOCK’
    #define F_CPU SYSCLOCK
    ^~~~~~~~
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/IRremote.h:179:48: note: in expansion of macro ‘F_CPU’
    #define PULSE_CORRECTION_NANOS (48000000000L / F_CPU) // 3000 @16MHz, 666 @72MHz
    ^~~~~
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/IRSend.cpp.h:465:76: note: in expansion of macro ‘PULSE_CORRECTION_NANOS’
    periodOnTimeMicros = (((periodTimeMicros * IR_SEND_DUTY_CYCLE) + 50 — (PULSE_CORRECTION_NANOS / 10)) / 100U); // +50 for rounding
    ^~~~~~~~~~~~~~~~~~~~~~
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/IRSend.cpp.h: In member function ‘unsigned int IRsend::getPulseCorrectionNanos()’:
    C:\Users\g�ven\Documents\Arduino\libraries\Arduino_DY_IRDaikin-master/boarddefs.h:57:20: error: ‘F_CPU’ was not declared in this scope
    # define SYSCLOCK F_CPU // main Arduino clock
    ^
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/private/IRTimer.cpp.h:51:15: note: in expansion of macro ‘SYSCLOCK’
    #define F_CPU SYSCLOCK
    ^~~~~~~~
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/IRremote.h:179:48: note: in expansion of macro ‘F_CPU’
    #define PULSE_CORRECTION_NANOS (48000000000L / F_CPU) // 3000 @16MHz, 666 @72MHz
    ^~~~~
    C:\Users\g�ven\Documents\Arduino\libraries\IRremote\src/IRSend.cpp.h:473:12: note: in expansion of macro ‘PULSE_CORRECTION_NANOS’
    return PULSE_CORRECTION_NANOS;
    ^~~~~~~~~~~~~~~~~~~~~~
    exit status 1
    Arduino Uno kartı için derleme hatası.

    This report would have more information with
    «Show verbose output during compilation»
    option enabled in File -> Preferences.

  • Adam:

    Hello. can you give suggestions on sketches using oled screens? Like oled 128×64 ic drive ssd1306 for example?. Thanks a lot

  • nevermind345:

    У меня pt2347, как мне найти и передать адрес spi?

  • nevermind345:

    I touched the sda ​​and scl pins of pt2347-s with a jumper cable from arduino, it wrote 0x63, is this real? (pt2347-s is mounted on car audio so I didn’t solder any wires)

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • Arduino HC-06 + DS18B20 (Терморегулятор)

    Arduino HC-06 + DS18B20 (Терморегулятор)

    При помощи Bluetooth модуля HC-06 и платы Arduino можно осуществить управление различными исполнительными механизмами c помощью смартфона. В данном случае речь пойдет от терморегуляторе. В качестве датчика температуры используется цифровой датчик DS18B20, температура регулируется при помощи реле (модуля реле) которое управляет нагревательным элементом. На плате Arduino осуществляется измерение температуры и …Подробнее...
  • Двухобъектный цифровой термометр

    Двухобъектный цифровой термометр

    Для измерения температуры воздуха в помещении и вне его необходимо 2  термометра, данное устройство позволяет измерять температуру двумя датчиками и одним цифровым термометром, причем как в ручном режиме так и автоматическом. Основа прибора АЦП двойного интегрирования на КР572ПВ5 и интегральных датчиков К1019ЕМ1. Питание АЦП осуществляется от биполярного источника. Положительное напряжение …Подробнее...
  • Универсальный усилитель

    Универсальный усилитель

    На рис.1 показана схема усилителя, имеющего хорошую линейность и динамичность усиления, малый начальный ток и выходную мощность 1 Вт. Базовое смещение транзисторов пропорционально амплитуде звукового сигнала благодаря германиевому диоду VD1 — его устанавливают при отсутствии сигнала подбором резистора R1, чтобы ток покоя усилителя составлял 8…10 мА. Кремниевые диоды VD2 и …Подробнее...
  • R2A15908SP — стерео аудиопроцессор (Arduino)

    R2A15908SP — стерео аудиопроцессор (Arduino)

    R2A15908SP — простой но высококачественный аудиопроцессор с микроконтроллерным управлением (I2C). Основные характеристики аудиопроцессора R2A15908SP: Регулировка громкости от -87 до 0 дБ (шаг 1 дБ) 5-и канальный коммутатор входов Режим MUTE Независимый для каждого входа предусилитель с диапазоном регулировки от 0 до 20 дБ (шаг 2 дБ) Регуляторы тембра ВЧ и …Подробнее...
  • Простой измеритель емкости(от 100пФ до 1мкФ)

    На рисунке представлена схема простого стрелочного измерителя емкости, который позволяет относительно точно измерить емкость конденсаторов от 100пФ до 1 мкФ. В измерителе емкости 4-е предела: 100…1000пФ, 1000пФ…0,01мкФ(10000пФ), 0,01…0,1мкФ, 0,1…1,0мкФ. Главное достоинство измерителя — простота конструкции, низкая себестоимость, относительно низкая погрешность измерения. На DD1.1 — DD1.3 собран опорный генератор на 100кГц. …Подробнее...