1

Тема: Измерить индуктивности на LGT8F328

Основная статья - http://rcl-radio.ru/?p=131780

http://forum.rcl-radio.ru/uploads/images/2024/03/353ab3492ec65495a376c0450c7b551b.png

http://forum.rcl-radio.ru/uploads/images/2024/03/20e8c52c6636d0e357e3466737d678a3.png

http://forum.rcl-radio.ru/uploads/images/2024/03/d2878214264dfc1e03aa05dc7ee63dc3.png

http://forum.rcl-radio.ru/uploads/images/2024/03/315a6cdae72e6d38cf755efa12ee766b.png


#include <Wire.h> 
#include <U8glib.h>            // https://github.com/olikraus/u8glib/
//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);
U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE);  // I2C / TWI 

#define CAL 31249; 
#define CAP    1000.0 // pF

extern uint8_t SmallFont[],BigNumbers[];
unsigned long f_out,tic;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  PORTD |= (1 << PD5); // подтягивающий резистор на PD5 (вход T1)
  // TIMER_1 INPUT T1
  TCCR1A = 0;TCCR1B = 0;TCNT1=0;
  TCCR1B = (1 << CS12) | (1 << CS11) | (1 << CS10);
  TIMSK1 = (1 << TOIE1);
  TCKCSR = (1 << F2XEN) | (1 << TC2XS1);
// TIMER_3 1 SEC
// (32000000/((31249+1)x1024))=1 Hz
  TCCR3A = 0;
  TCCR3B = 0;
  TCNT3=0;
  TCCR3B = (1 << CS32) |(1 << CS30) | (1 << WGM32);
  TIMSK3 = (1 << OCIE3A);
  OCR3A = CAL;
// TIMER_2 OUTPUT 8 MHz
TCCR2A = 0;TCCR2B = 0;TCNT2=0;
  TCCR2A = 1 << COM2A0 |1 << WGM21;
  TCCR2B = 1 << CS20;
  OCR2A = 0;
  C0SR = 0;C0XR=0;
  C0XR |=(1<<C0OE); // C0OE[7] = 1, выход компаратора AC0 для внешнего порта PD2
  // ВЫБОР ИНВЕРСНОГО ВХОДА
  ADCSRB = 0b01000000;// ADMUX
  /*
  CME01[7] CME00[6] Источник входного сигнала AC0
  0        0        ACXN
  0        1        ADMUX
  1        0        DFFO
  */
  ADMUX = 0b00000000; // CHMUX[3:0] = 0000 Источник входного сигнала PC0 (A0)
  // ВЫБОР НЕИНВЕРСНОГО ВХОДА
  C0SR &=~(1<<C0BG);C0XR &=~(1<<C0PS0);
  /*
  C0BG C0PS0 Источник входного сигнала AC0
  0    0     AC0P
  0    1     ACXP
  1    0     DAO
  */
  delay(100);
}

void loop() {
 float l_iz = 1/(4*3.14*3.14*f_out*f_out*CAP*pow(10,-12))*1000000.0;
 if(l_iz>100000||l_iz<0){l_iz=0;}
 Serial.print(l_iz,2);Serial.println(" uH");
 Serial.print(f_out);Serial.println(" Hz");
  u8g.firstPage(); do {
  u8g.setFont(u8g_font_profont29r);u8g.setPrintPos(0,25);
    if(l_iz<1000){u8g.print(l_iz,2);u8g.drawStr(97,25,"uH");}
    if(l_iz>=1000){u8g.print(l_iz/1000,2);u8g.drawStr(97,25,"mH");}
  }while( u8g.nextPage() );
 delay(1000);
}


ISR(TIMER1_OVF_vect) {tic++;}

ISR(TIMER3_vect) {
  if (TIFR3 & (1 << OCF3A)){
      TIFR3 = 1 << OCF3A;
      f_out = tic*0xFFFF + TCNT1;
      tic=0;TCNT1=0;
  }} 

2

Re: Измерить индуктивности на LGT8F328

Здравствуйте!
Столкнулся со следующей ситуацией. При замере фабричных маркированных дросселей малых размеров(намотанных тонким проводом) показания совпадают с маркировкой, при замере же дросселей с малым количеством витков толстым проводом(как пример с материнских плат или на ферритовом  кольце с компьтерных б.п., где значения единицы  или доли микрогенри) значения не соответствуют реальным и имеют показания десятки миллигенри. В чём может быть проблема? Я нашёл промежуточное решение, но оно не является удобным. На вход последовательно с измеряемой индуктивностью ставлю промежуточный дроссель 100 микрогенри, считываю показания, разница и является приемлемым результатом. Может поправить скетч( мне самому не под силу)? С уважением Александр.

3

Re: Измерить индуктивности на LGT8F328

Здесь я не смогу Вам помочь, при определенных параметра колебательный контур не будет работать, срыв частоты и тд. Тем более компаратор выполнен на микроконтроллере, а он имеет ряд ограничений.

http://rcl-radio.ru/?p=28914

Вот пример расчета колебательного контура, для измерения малых индуктивностей нужно уменьшать емкость конденсатора, при этом резонансная частота будет стабильна, но компаратор возможно не сможет работать на очень высокой частоте, если наоборот увеличить емкость, то компаратор будет нормально работать на более низкой частоте, но резонансная система может не запуститься на выбранных компонентах.

Поэтому Ваш метод добавлять промежуточный дроссель самое оптимальное решение.

4

Re: Измерить индуктивности на LGT8F328

Ув-й Leman324, благодарю за развёрнутый ответ! Еще раз убедился, что порой простые решения более менее сложных задач, являются самыми оптимальными для конкретных ситуаций.

5

Re: Измерить индуктивности на LGT8F328

На ардуинке будет работать? Через некоторое время хочу попробовать на ардуинкею

6

Re: Измерить индуктивности на LGT8F328

Нет, регистры компаратора имеют большие различия.

7

Re: Измерить индуктивности на LGT8F328

день добрый!
повторил конструкцию, генерации нет.

22:28:26.560 -> 0 Hz
22:28:27.612 -> 0.00 uH
22:28:27.612 -> 0 Hz
22:28:28.678 -> 0.00 uH

измерения соответственно тоже нет.
менял ёмкость 120 pF, не помогло.(+- 10,20,30 pF).
LGT проверил на "блинк".
скетч транслируется без ошибок.

Writing | ################################################## | 100% 3.34s
avrdude: 12796 bytes of flash written
avrdude done.  Thank you.

посоветуйте что-нибудь...

С уважением Александр.

8

Re: Измерить индуктивности на LGT8F328

Установите емкость по номиналу 1000 пФ

9

Re: Измерить индуктивности на LGT8F328

Вечер добрый!
я менял ёмкость в 120 pF (D2-D5).
емкость 1000 pF подобрана +- 2%
резисторы все по номиналу.
на LTG (плата как в статье - фиолетовая) кварц 16.000 MHz - это имеет какой либо значение?

С уважением Александр.

10

Re: Измерить индуктивности на LGT8F328

на LTG (плата как в статье - фиолетовая) кварц 16.000 MHz - это имеет какой либо значение?

- думаю что это не имеет значение

11

Re: Измерить индуктивности на LGT8F328

что же, тогда вероятно, что LTG  как то не выходит на режим генерации....(

12

Re: Измерить индуктивности на LGT8F328

Проверьте настройки платы

http://forum.rcl-radio.ru/uploads/images/2026/01/12acf9c634c7b4315077af4fd50550a4.png

13

Re: Измерить индуктивности на LGT8F328

arduino-1.8.15

14

Re: Измерить индуктивности на LGT8F328

установки аналогичные, только порт 11
версия 2.3.3
сейчас попробую на 1.8....

15 (2026-01-14 17:24:43 отредактировано mamont56)

Re: Измерить индуктивности на LGT8F328

увы, результат тот же самый...
20:23:14.639 -> 0.00 uH
20:23:14.639 -> 0 Hz
20:23:16.687 -> 0.00 uH
20:23:16.687 -> 0 Hz
20:23:18.697 -> 0.00 uH

ps - картинки не получается вставить (

16

Re: Измерить индуктивности на LGT8F328

К сожалению у меня пока нет идей по чему не работает.

17

Re: Измерить индуктивности на LGT8F328

отнесём к непонятному ....))))
Благодарю за ответы-консультацию!

18

Re: Измерить индуктивности на LGT8F328

Может быть помеха по питанию? Срыв генерации.

19

Re: Измерить индуктивности на LGT8F328

нет.
проверил от USB, лаб БП (трансформаторный), и от батареи 18650 через стабилизатор-регулятор 5V/
в симуляторе набросал схему (без процессора) - ОУ, резисторы + контур ...
генерирует, собака! )
наверное все таки чип неудачный попался...

20

Re: Измерить индуктивности на LGT8F328

Если емкость которая 1000 пФ, уменьшить или увеличить в 2-3 раза, индуктивность разную померить

21 (2026-01-14 17:51:01 отредактировано mamont56)

Re: Измерить индуктивности на LGT8F328

вот это не пробовал...
индуктивности подсовывал всякие, но кондёр не менял - так и стоит в 1000 pF.
ладно, помучаю и его....