IIuIIa

Программа Для Моего Кодового Замка

22 сообщения в этой теме

IIuIIa    11

Ребят помогите. Нарисовал схему кодового замка но программу сколько не пытался так и не получается написать.

Хочу сделать так: МК в ждушем режиме нажимаеш на любую кнопку он выходит изждушего режима на экране появляется надпись "Введите пин" в нижней строке в вод пароля идет - звездочками. Если введеный код совпадает с тем что в памяти то на экране написать "доступ открыт" и зажигается земеный светодиод и подать напряжени на электромагнит и по истечению 3 сек убирать напряжение. Если введеный код не совпадает то написать "доступ закрыт" и зажеч красный светодиод после в течение 10 сек перейти в ждущий режим. Снутри кнопка открывания.

Вот сылка на схему: http://ifolder.ru/14463596 , в схеме точки А,В - подключение магнита.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Knazev33    3

Какой экран используеш? если 16х2, то особой проблемы недолжно вызвать,

какие наработки, в смысле кода, уже есть?

Изменено пользователем Knazev33

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IIuIIa    11

экран 16х2.

есть немного кодов на клавиатуру на асемблее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Knazev33    3

А ну если ассемблер то всё понятно, почему всё неклеится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IIuIIa    11

Мне лучше на СИ, я немного знаю как сделать, но все вместе не могу сделать! Помогите плиз

Изменено пользователем IIuIIa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IIuIIa    11

Вот код клавиш ща ЛСД выложу помогите чтобы все вместе работало:

#include <mega16.h>
#asm
   .equ __lcd_port=0x15
#endasm

#include <lcd.h>
#include <stdio.h>
#include <delay.h>


// quartz crystal frequency [Hz]
#define F_XTAL 3686400L
// PINB0..3 will be row inputs
#define KEYIN PINB
// PORTB4..7 will be column outputs
#define KEYOUT PORTB
// used for TIMER0 count initialization
#define INIT_TIMER0 TCNT0=0x100L-F_XTAL/64L/500L
#define FIRST_COLUMN 0x80
#define LAST_COLUMN 0x10

typedef unsigned char byte;
// store here every key state as a bit,
// bit 0 will be KEY0, bit 1 KEY1,...
unsigned keys;
// LCD display buffer
char buf[33];

// TIMER 0 interrupt at every 2 ms
interrupt [TIM0_OVF] void timer0_int(void)
{
static byte key_pressed_counter=20;
static byte key_released_counter,column=FIRST_COLUMN;
static unsigned row_data,crt_key;
// reinitialize TIMER0
INIT_TIMER0;
row_data<<=4;
// get a group of 4 keys in in row_data row_data|=~KEYIN&0xf;
column>>=1;
if (column==(LAST_COLUMN>>1))
  {
  column=FIRST_COLUMN;
  if (row_data==0) goto new_key;
  if (key_released_counter) --key_released_counter;
  else
     {
     if (--key_pressed_counter==9) crt_key=row_data;
     else
        {
        if (row_data!=crt_key)
           {
           new_key:
           key_pressed_counter=10;
           key_released_counter=0;
           goto end_key;
           };
        if (!key_pressed_counter)
           {
           keys=row_data;
           key_released_counter=20;
           };
        };
     };
  end_key:;
  row_data=0;
  };
// select next column, inputs will be with pull-up
KEYOUT=~column;
}

// test if a key was pressed
unsigned inkey(void)
{
unsigned k;
if (k=keys) keys=0;
return k;
}

void init_keypad(void)
{
DDRB=0xf0;
INIT_TIMER0;
TCCR0=3;
TIMSK=2;
#asm("sei")
}

main() {
unsigned k;
init_keypad();
lcd_init(16);
lcd_putsf("CVAVR Keypad");
// read keys and display key code
while (1)
     {
     lcd_gotoxy(0,1);
     if (k=inkey())
        {
        sprintf(buf,"Key code=%Xh",k);
        lcd_puts(buf);
        }
     else lcd_putsf("NO KEY        ");
     delay_ms(500);
     }
}

Изменено пользователем wowa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Knazev33    3

Рекомендую в главном цикле замутить структуру из кейсов,

а то что написано у тебя ненужно,

Типо того:

switch (Mode) {

case :1

lcd_gotoxy(0,0); lcd_putsf("Please Enter Code"); //просьба ввода кода

lcd_gotoxy(place,1); lcd_putsf("*");

//if((place<10) &(press any key)){place++; delay_ms(10);} //сдвигать звёздочки при любом нажатии

break;

case :2

lcd_gotoxy(0,0); lcd_putsf("Code is OK"); //режим вывода правельного кода

break;

case :3

lcd_gotoxy(0,0); lcd_putsf("Invalid Code"); //код неверен

break;

};

Структура клавиатуры както фигова заделана.

Изменено пользователем Knazev33

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IIuIIa    11

Вот как примерно у меня получилось только ошибку выдет:

#include <mega16.h>
#include <stdio.h>
#include <delay.h>
#include <stdlib.h>
// Буквенно-цифровой ЖК-модуль функции
#asm  

  .equ __lcd_port=0x15;PORTC
#endasm
#include <lcd.h>
#case <>
// Кварцевый резонатор
#define F_XTAL 4000000UL
// PINB0..3 входы
#define KEYIN PINB
// PORTB4..6 выходы
#define KEYOUT PORTB 
// Таймер 0
#define INIT_TIMER0 TCNT0=0x100L-F_XTAL/64L/500L
#define FIRST_COLUMN 0x80
#define LAST_COLUMN 0x10

typedef unsigned char byte;
unsigned keys;
// LCD display buffer
char buf[33];

interrupt [TIM0_OVF] void timer0_int(void)
{

static byte key_pressed_counter=20;
static byte key_released_counter,column=FIRST_COLUMN;
static unsigned row_data,crt_key;
// reinitialize TIMER0
INIT_TIMER0;
row_data<<=4;
// get a group of 4 keys in in row_data
row_data|=~KEYIN&0xf;
column>>=1;
if (column==(LAST_COLUMN>>1))
  {
  column=FIRST_COLUMN;
  if (row_data==0) goto new_key;
  if (key_released_counter) --key_released_counter;
  else
  {
  if (--key_pressed_counter==9) crt_key=row_data;
  else
	 {
	 if (row_data!=crt_key)
		{
		new_key:
		key_pressed_counter=10;
		key_released_counter=0;
		goto end_key;
		};
	 if (!key_pressed_counter)
		{
		keys=row_data;
		key_released_counter=20;
		};
	 };
  };
  end_key:;
  row_data=0;
  };
// select next column, inputs will be with pull-up
KEYOUT=~column;
}

// test if a key was pressed
unsigned inkey(void)
{
unsigned k;
if (k==keys) keys=3100;
return k;
}

void init_keypad(void)
{
DDRB=0xf0;
INIT_TIMER0;
TCCR0=3;
TIMSK=2;
#asm("sei")
}

main() {
unsigned k;
init_keypad();
lcd_init(16);
lcd_putsf("CVAVR Keypad");




while (1)
	{ 
   switch (mode){
case :1 
lcd_gotoxy(0,0); lcd_putsf("Please Enter Code"); //просьба ввода кода
lcd_gotoxy(place,1); lcd_putsf("*"); 
if((place<10) &(press any key)){place++; delay_ms(10);} //сдвигать звёздочки при любом нажатии
break; 
case :2 
lcd_gotoxy(0,0); lcd_putsf("Code is OK"); //режим вывода правельного кода
break;
case :3 
lcd_gotoxy(0,0); lcd_putsf("Invalid Code"); //код неверен
break;
};  {


   while if(PINB.7==0)
		   {
		   lcd_gotoxy(0,1);
		   lcd_putsf("OPEN");}
	  if else lcd_gotoxy(0,1)
			lcd_putsf("CLOSET");

};
}
   ";

Изменено пользователем IIuIIa

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Knazev33    3

Что за ошибку?, а левая процедура опроса кнопок работает?

На счёт кода, у тебя необьявлена переменная Mode,

строка if((place<10) &(press any key)){place++; delay_ms(10);} является примером!,

флаговая переменая press_any_key выступает в роли определителя нажатия любой кнопки,

если она равна1 и place<10, то добавилять * на экран, флаг press_any_key должен выставлятся и сбрасоватся

в функции опроса кнопок, и тоже должна быть объявлена,

такие фишки как цикл while if(PINB.7==0) ненужно делать в данной проге.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IIuIIa    11

А как переменную MODE обьявить а то я незнаю как ее обьявить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IIuIIa    11

написал еще код кнопок но выдает ошибки:

1.invalid expression.

1.undefined symbol 'port'

#include <mega16.h>
#include <delay.h>
#asm
  .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>


void decodecod (int code)
{
unsigned char symbol;
switch (code)
{
case 11: symbol = ‘1?; break;
case 21: symbol = ‘2?; break;
case 31: symbol = ‘3?; break;
case 12: symbol = ‘4?; break;
case 22: symbol = ‘5?; break;
case 32: symbol = ‘6?; break;
case 13: symbol = ‘7?; break;
case 23: symbol = ‘8?; break;
case 33: symbol = ‘9?; break;
case 14: symbol = ‘0?; break;
case 24: symbol = ‘*’; break;
case 34: symbol = ‘#’; break;
default : break;
}
UDR = symbol;
}

/*Фунуция чиатающих портов*/
void keyread()
{
int byte=0;
delay_us(400);
//Читаем линию [1]
if (PIND.2 == 0)
{
byte = port + 1;
port = 0;
}

//Читаем линию [2]
if (PIND.3 == 0)
{
byte = port + 2;
port = 0;
}

//Читаем линию [3]
if (PIND.4 == 0)
{
byte = port + 3;
port = 0;
} 

//Читаем линию [4]
if (PIND.5 == 0)
{
byte = port + 4;
port = 0;
}
if (byte > 0)
{
decodecod(byte);
}
}

/*Функция сканирующих портов*/
void keyscan()
{
//Сканируем столбик [1]
PORTD.4=0;
PORTD.5=1;
PORTD.6=1;
port = 30;
keyread();
delay_ms(1000);

//Сканируем столбик [2]
PORTD.4=1;
PORTD.5=0;
PORTD.6=1;
port = 20;
keyread();
delay_ms(1000);
//Сканируем столбик [3]
PORTD.4=1;
PORTD.5=1;
PORTD.6=0;
port = 10;
keyread();
delay_ms(1000);
}

void main(void)
{
PORTA=0x03;
DDRA=0x03;
PORTB=0x00;
DDRB=0x03;

PORTC=0x00;
DDRC=0x00;

PORTD=0x8F;
DDRD=0x70;

TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

MCUCR=0x00;
MCUCSR=0x00;

TIMSK=0x00;

ACSR=0x80;
SFIOR=0x00;

lcd_init(16);

while (1)
     {
           };
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Knazev33    3
А как переменную MODE обьявить а то я незнаю как ее обьявить?

<_< Если незнаеш как обьявлять переменные то, весь последующий разговор превращается в метод тыка ;) , советую почетать какую нибудь книжку про программирование мк,

объявляется в начале проги unsigned char MODE; .

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IIuIIa    11

Я читал книжку "написание на си" вроде Шпак написал только фигово некоторое понимаю

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Knazev33    3

нужно читать не просто про какой попало Си, а си ореентированный на совместную работу с МК,

Если пишеш прогу в CodeVisionAVR, то прочти книгу А.В Белова,(Создаём ус-ва на МК),

или хороший самоучитель на сайте Николаева .

А то что у вас написанно в проге неимеет смысла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IIuIIa    11

вот код написал клава опрашивается но на лсд ни чего не выводится подскажите что может быть:

#include <mega16.h>


#asm
  .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

#include <stdio.h>
#include <delay.h>

#define F_XTAL 3686400L
// PIND0..3 will be row inputs
#define KEYIN PIND
// PORTD4..7 will be column outputs
#define KEYOUT PORTD
// used for TIMER0 count initialization
#define INIT_TIMER0 TCNT0=0x100L-F_XTAL/64L/500L
#define FIRST_COLUMN 0x80
#define LAST_COLUMN 0x10
typedef unsigned char byte;
// store here every key state as a bit,
// bit 0 will be KEY0, bit 1 KEY1,...
unsigned keys;
// TIMER 0 interrupt at every 2 ms


interrupt [TIM0_OVF] void timer0_int(void)
{
static byte key_pressed_counter=20;
static byte key_released_counter,column=FIRST_COLUMN;
static unsigned row_data,crt_key;

INIT_TIMER0;
row_data<<=4;

row_data|=~KEYIN&0xf;
column>>=1;
if (column==(LAST_COLUMN>>1))
  {
  column=FIRST_COLUMN;
  if (row_data==0) goto new_key;
  if (key_released_counter) --key_released_counter;
  else
     {
     if (--key_pressed_counter==9) crt_key=row_data;
     else
        {
        if (row_data!=crt_key)
           {
           new_key:
           key_pressed_counter=10;
           key_released_counter=0;
           goto end_key;
           };
        if (!key_pressed_counter)
           {
           keys=row_data;
           key_released_counter=20;
           };
        };
     };
  end_key:;
  row_data=0;
  };
// select next column, inputs will be with pull-up
KEYOUT=~column;
}
unsigned inkey(void)
{
unsigned k;
if(k=3100)keys=0;
return k;
}
void main(){
{
PORTA=0x03;
DDRA=0xFF;

PORTB=0x00;
DDRB=0xFF;

PORTC=0x00;
DDRC=0x00;

PORTD=0x0F;
DDRD=0xF0;

TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

MCUCR=0x00;
MCUCSR=0x00;

TIMSK=0x00;

ACSR=0x80;
SFIOR=0x00;

lcd_init(16);
}
{
unsigned char Mode;
      unsigned char place;


while (1)
     {
     {switch (Mode) {
case 1 :
lcd_gotoxy(0,0);
lcd_putsf("Please Enter Code"); //просьба ввода кода
lcd_gotoxy(place,1); lcd_putsf("*");
break;
case 2 :
lcd_gotoxy(0,0);
lcd_putsf("Code is OK"); //режим вывода правельного кода
break;
case 3 :
lcd_gotoxy(0,0); lcd_putsf("Invalid Code"); //код неверен
break;
default :
};       
}
};
}  
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Knazev33    3

Что уже так быстро прочитал книжку? :rolleyes:

В коде всё не так :huh: ,

Вот примерный код твоего кодового замка:

#include <mega16.h>
#include <delay.h>
// x    выход бегущего нуля
#define x1 PORTA.0
#define x2 PORTA.1
#define x3 PORTA.2
// y    вход для  бегущего нуля
#define y1 PINA.3
#define y2 PINA.4
#define y3 PINA.5 
#asm
  .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

unsigned char Mode=1;       
unsigned char place;
bit press;
unsigned char m1[4] ={0, 1, 1, 1};     //массив матрицы
unsigned char m2[4] ={1, 0, 1, 1};
unsigned char m3[4] ={1, 1, 0, 1};
unsigned char Key_count=0;          //счётчик матрицы
unsigned char Baza[5];
unsigned char i;


interrupt [TIM2_COMP] void timer2_key_counter(void)
{ 
x1=m1[Key_count]; 
x2=m2[Key_count]; 
x3=m3[Key_count]; 
if(Key_count>4){Key_count=0;}
// опрос ккнопок 1-3 
if((!x1)&(!y1)){press=1;   i++; Baza[i]=1;     delay_ms(200);  }     //1
if((!x2)&(!y1)){press=1;   i++; Baza[i]=2;     delay_ms(200);  }
if((!x3)&(!y1)){press=1;   i++; Baza[i]=3;     delay_ms(200);  }  
//   4-6
if((!x1)&(!y2)){press=1;   i++; Baza[i]=4;   delay_ms(200); } 
if((!x2)&(!y2)){press=1;   i++; Baza[i]=5;   delay_ms(200);  }
if((!x3)&(!y2)){press=1;   i++; Baza[i]=6;  delay_ms(200);  }  
//   6-9
if((!x1)&(!y3)){press=1;   i++; Baza[i]=7;  delay_ms(200);  } 
if((!x2)&(!y3)){press=1;   i++; Baza[i]=8;   delay_ms(200);  }
if((!x3)&(!y3)){press=1;   i++; Baza[i]=9;  delay_ms(200);  } 

if(i>5)
{
i=0; lcd_clear();  Mode=5;     //переход
}
}   

void main(void)
{

PORTA=0x3F;
DDRA=0x07;

PORTB=0x00;
DDRB=0xFF;

//   вкл счётчик №2
TCCR2=0x0F;                              //  предделитель для таймера2 
TCNT2=0x20;                              //  начальное значение
OCR2=0xFF;                               //   вершина таймера
//

TIMSK=0x80; 


ACSR=0x80;
SFIOR=0x00;

#asm("sei") 
lcd_init(16);

while (1)
     {
switch (Mode)   //переключения между режимами
{
case 1 :lcd_gotoxy(0,0);lcd_putsf("Please Enter Cod"); //просьба ввода кода
if((place<5) &(press)){place++; lcd_gotoxy(place,1); lcd_putsf("*"); press=0; delay_ms(10); }
if(place>4){place=0; lcd_clear();}
break;
case 2 :
lcd_gotoxy(0,0);lcd_putsf("Code is OK"); //режим вывода правельного кода
break;
case 3 :
lcd_gotoxy(0,0); lcd_putsf("Invalid Code"); //код неверенbreak;
delay_ms(3000);   lcd_clear(); place=0;  Mode=1;
break;
case 4 :
if((Baza[1]==3)&(Baza[2]==5)&(Baza[3]==2)&(Baza[4]==1)){lcd_clear(); Mode=2;}
else
{lcd_clear(); Mode=3;}
// COD=*3521*
break;
           }
     };
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IIuIIa    11

А почему в порт C ни чего не подается лсд молчит

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Knazev33    3
А почему в порт C ни чего не подается лсд молчит

А как ты проверяеш?, случаем не в Протеусе случайно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Knazev33    3

А то, что Протеус ASIS модуль, мягко говоря отстой, неспособен адекватно симулировать работу мк, даже для мощьных пк, нужно железо и только железо...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
foxit    0

Здравствуйте

Интересно чем окончился проект с кодовым замком?

Если можно поделитесь проектом(схема, печатка, исходник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сообщения

    • Откалибровал. сейчас медь 71-75 пятак 45-47 на 25 см.
    • А меня интересует МАКСИМАЛЬНАЯ  мощность лампового УНЧ. И измеряется она всегда всеми при 10% КНИ! Потому что максимальной  мощностью  в ламповом УНЧ  считать мощность  при 1% КНИ это  бред полнейший. Потому что  1% КНИ наступает при 1,5 ватта на выходе в современном ламповом УНЧ на лампе  любимой меломанов 300В. А 10% наступает при 8 ваттах,вот это и есть максимальная  мощность  Однотакта  стоимостью 7 миллионов рублей на лампе 300В  https://audionote.su/amplifier/mono/ , а ты продолжай измерять по своему! Ни в одном  усилителе современном фирменном высококачественном ламповом нет данных выходной мощности при 1%  КНИ.https://china-hifi-audio.ru/shop/10/desc/bewitch-l845  Ну и вот твой  скрин,где здесь указано  что при 1% КНИ  измеряется  мощность максимальная и что за КНИ  0,005 %  в ламповом УНЧ  нулевой  сложности группе. Ты сможешь  сделать ламповый мощный УНЧ с КНИ 0,005% ,ни когда ни кто не сможет. Видишь  написано,что ламповые УНЧ  нулевой группы сложности  изготавливаются по ТУ а не по ГОСТу . Все эти ГОСТы  для транзисторных и микросхемных  УНЧ. Ламповые  усилители закончили делать в 1975 году примерно и ГОСТ  твой 80х  годов ни как не может относится  к ламповым УНЧ. Тот ГОСТ СССР   был 1968-69 года,вот он был для ламповых УНЧ. По нему мы и работали.И все измеряли  при 10% КНИ максимальную выходную мощность. Почему был такой предел, потому что не было измерителей  КНИ в Радиотелевизионных ателье и тем более в мастерских и у радиолюбителей и только при 10%  становилось видно искажение синусоиды на экране осциллографа. А 1% КНИ ни кто бы не увидел осциллографом.. Ты привёл данные паспортные,рухляди со свалок Америки и Европы ,а не высококачественных усилителей! . Ты современные посмотри,которые скрины я привёл,те что сейчас фирмами выпускаются! Такие и делают  ребята себе,без ГОСТов! Где ты видишь у мною приведённых усилков КНИ 1%? Покажи! . Зайди по моей ссылке туда где продаются современные усилители ламповые фирменные стоимостью как 5-10 автомобилей,где там в данных 1% КНИ. Там во всех  усилителях разные КНИ стоят и 0,8% и 1,5% и 5% и 8% нет ни в одном 1% что б стояло.Вот уж упёртый! И нафик нам нужны какие то ГОСТы? Все усилители и продукты давным давно делаются по ТУ. Какое  хочет  ТУ такое и пишет производитель. И в твоём ГОСТе  на производство кстати , а не на  измерение  мощности чётко прописана  фраза  при 1% если не указаны другие  ТУ. Вот график,может дойдёт наконец то почему нельзя считать максимальной мощностью,мощность при 1% КНИ в ламповом современном УНЧ.  
    • Читай, Валера. Страница 88 и далее. Это тебе не физика для первокурсников.  http://window.edu.ru/resource/976/77976/files/TOE_1.pdf
    • Согласен шо перемотанный по всем канонам и просто подключенный как есть - две боольшие разницы   Я кондёрчик пока боюсь убирать - после того как в лоб почти прилетел кусок микросхемы звуковой (у меня комп открыт всегда)
    • Отсутствует как таковой в конструкциях что я делал. Думаю всё проще-мала индуктивность и отсутствует секционирование. Про отзывы о нём промолчу(как говориться оставим на совести отзывающихся  )
    • Странно, обычно отзываются о нём как о хорошо передающем низа (авторитетность отзывов оставим за скобками, но тем не менее) Кондёрчик на входе мог быть маловат, мало ли... у меня пока очень мало собственной статистики чтобі предположить что либо...
    • Есть ссылка на этот усилитель? Интересно посмотреть как сделан преобразователь. Интересно намотан трансформатор, видно поверх вторички намотана первичка в один виток. Если верить автору, то мне и одного трансформатора хватит.