Главная » Микроконтроллеры » Импульсный металлоискатель (PI) на микроконтроллере Attiny13

Импульсный металлоискатель (PI) на микроконтроллере Attiny13

В этом экспериментальном проекте показано, как можно построить простой металлоискатель с импульсной индукцией (PI) на основе микроконтроллера ATtiny13/AVR.

Блок питания 0...30 В / 3A
Набор для сборки регулируемого блока питания...
Подробнее

Моей целью было сделать схему максимально простой и использовать только популярные/дешевые электронные компоненты. Устройство было протестировано с очень маленькой катушкой (диаметр 55 мм, около 30 витков 0,5 мм) и питанием только 3 В.

Это моя первая разработка PI металлоискателя, и я очень доволен результатами! Прототип мог обнаруживать маленькие монеты на расстоянии 6 см и провода в стене. Код находится на Github здесь.

Импульсный металлоискатель (PI) на микроконтроллере Attiny13

Импульсный металлоискатель — как это работает?

Представленный металлоискатель использует метод PI для генерации всплеска напряжения в поисковой катушке, подключенной параллельно конденсатору.

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

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

Обратите внимание, что в типичных конструкциях PI-детекторов отсутствует резонансный контур, и измеренный коэффициент немного отличается!

Инструкции пользователя

  1. Включите устройство. Процесс калибровки занимает около секунды и заканчивается сигналом зуммера.
  2. Используйте переменный резистор для регулировки чувствительности детектора (вы можете найти его где-то между непрерывным сигналом зуммера и полной тишиной).
  3. Устройство готово к работе!

Необходимые детали:

  • ATtiny13
  • T1 — полевой транзистор IRF3205 (N-канальный )
  • LED1 — светодиод
  • D1 — диод 1N4007
  • D2, D3 — диод 1N4148
  • R1- переменный резистор 10 кОм
  • R2, R3 – резистор 220 Ом (5%)
  • R4 – резистор 330 Ом (5%)
  • R5, R6 – резистор10 кОм (5%)
  • C1 – конденсатор 470 нФ
  • L1 – катушка диаметр 50-55 мм, около 30 витков, провод 0,5 мм.
Плата разработки Attiny13
Attiny13A, кнопка сброса, две отдельные кнопки, два светодиода, потенциометр, 5В или 3,3 В...
Подробнее

Принципиальная электрическая схема

Программное обеспечение

Этот код написан на C и может быть скомпилирован с помощью avr-gcc. Вся информация о том, как скомпилировать этот проект, находится здесь.

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

#define COIL_PIN PB2
#define BUZZER_PIN PB3
#define LED_PIN PB4

#define PULSE_WIDTH (32) // микросекунды
#define CALIBRATION_ATTEMPTS_MAX (128)
#define MEASUREMENT_ATTEMPTS_MAX (2048)

#define SIGNAL_ON() (PORTB |= _BV(LED_PIN)|_BV(BUZZER_PIN))
#define SIGNAL_OFF() (PORTB &= ~(_BV(LED_PIN)|_BV(BUZZER_PIN)))

static uint16_t
measure_decay(void)
{
 uint16_t i, counter = 0, decay = 0;
 PORTB |= _BV(COIL_PIN); // импульс on
 _delay_us(PULSE_WIDTH); // импульс задержка
 PORTB &= ~_BV(COIL_PIN); // импульс off

 for (i = 0; i < MEASUREMENT_ATTEMPTS_MAX; ++i) {
 if (ACSR & _BV(ACO)) {
 decay = counter;
 }
 counter++;
 }
 return decay;
}
static uint16_t
calibration(void)
{
 uint8_t i;
 uint16_t tmp, decay = 0;
 /* процесс калибровки */
 for (i = 0; i < CALIBRATION_ATTEMPTS_MAX; ++i) {
 tmp = measure_decay();
 if (tmp > decay) {
 decay = tmp;
 }
 }
 /* сигнализировать об окончании калибровки */
 for (i = 0; i < 3; ++i) {
 for (tmp = 0; tmp < 64; ++tmp) {
 SIGNAL_ON();
 _delay_ms(0.3);
 SIGNAL_OFF();
 _delay_ms(0.3);
 }
 _delay_ms(64);
 }
 return decay;
}
int
main(void)
{
uint16_t decay_cur, decay_max;
 /* setup */
 DDRB = _BV(COIL_PIN)|_BV(LED_PIN)|_BV(BUZZER_PIN); // установить контакты COIL, LED и BUZZER как выход
 ACSR = 0; // очистить регистр
 decay_max = calibration() - 1;
 _delay_ms(500);
 /* loop */
 while (1) {
 decay_cur = measure_decay();
 if (decay_cur < decay_max) {
 SIGNAL_ON();
 _delay_us(100);
 }
 SIGNAL_OFF();
 }
}

Источник

Цифровой мультиметр AN8009
Большой ЖК-дисплей с подсветкой, 9999 отсчетов, измерение TrueRMS...
Подробнее

Оставить комментарий

Ваш email нигде не будет показан. Обязательные для заполнения поля помечены *

*