Импульсный металлоискатель ПИРАТ-4.
Здесь я решил применить миниатюрную [отладочную] плату Digispark.
Digispark - маленькая, с пятак, отладочная плата с микроконтроллером Attiny85:
В основном , схемотехника оригинального Пирата сохранена, только применил пьезоизлучатель вместо динамика
с целью уменьшения энергопотребления.
Первоначально сделал так:
Потом решил еще уменьшить количество деталей - выбросить отдельный стабилитрон и задействовать встроенный
на плате Digispar'ка стабилитрон 3,6V :
Преимущества:
По сраввнению с микроконтроллерными Пират-2, Пират-3
1. Не требуется программатор;
2. Не требуется кабель даже;
3. Еще меньше деталей;
4. И световая и звуковая индикация;
5. Широкий диапазон напряжения питания (7...35V)
6. Меньше энергопотребление ( применен пьезоизлучатель)
7. Открытые исходники.
Что требуется:
- требуется скачать и установить Arduino IDE c поддержкой Digispark, например здесь: http://sourceforge.net/projects/digistump/files/
- установить драйверы ( устанавливаются автоматически)
- плату Digispark можно приобрести на Ebay с бесплатной доставкой [из Китая] чуть дороже 100 руб.(по состоянию на ноябрь 2015)
Исходное ПО очень простое:
// PI metal detector Pirat-4D version_1_0_0_piezzo (C)alex---1967 2015
unsigned int pulse_time = 128; // продолжительность импульса в микросекундах
unsigned int time_between_pulse = 4; // период следования импульсов в
миллисекундах
int i=0;
byte s0 = 0;
int s0_summa = 0;
void setup()
{
pinMode(4, INPUT); // порт P4 настраиваем на вход
pinMode(0, OUTPUT); // порт Р0 - на выход
pinMode(1, OUTPUT); // порт Р1 - на выход
pinMode(2, OUTPUT); // порт р2 - на выход
digitalWrite(4,LOW); // включаем внутренний подтягивающий резистор
}
void loop()
{
digitalWrite(0,HIGH); // открываем ключ (turn on)
delayMicroseconds(pulse_time); // wait
digitalWrite(0,LOW); // закрывааем ключ, прерывая ток в поисковой катушке (turn
off - interrupt a circut in a search coil )
for( i=0; i < 128; i++ ) { // 128 раз подряд ...
s0 = digitalRead(4); // читаем порт P4
s0_summa = s0_summa + s0;
}
if (s0_summa > 0) // если хотя бы одно значение было больше нуля...
{
digitalWrite(2,HIGH); // ... то включаем звуковую ...
digitalWrite(1,HIGH); // и световую индикацию
}
delay(time_between_pulse); // пауза между импульсами
digitalWrite(2,LOW); // выключаем звуковую ...
digitalWrite(1,LOW); // ... и световую индикацию
s0_summa = 0; // обнуляем ранее прочитанные значения
В этом я вижу главное удобство этого аппарата - оперативную замену ПО.
Единственно какое неудобство есть - запаянный на плате металлоискателя Digispark не перепрошить, т.к. на занятый уже порт P4 приходят сигнал с USB. Я просто вытаскивал из панельки микросхему TL072 ( выход которой соединен со входом порта P4) и в таком виде перепрошивал
Digispark.Печатная плата: http://alex---1967.narod.ru/pirat_4_digispark_ver_2.lay6
Глубина обнаружения - так же , как и для всех приборов этого семейства, сильно зависит от настроек, подбора демпфирующих резисторов, от катушки и кабеля.
Главная страница Страница Всякое-разное
слова для поиска простой металлоискатель на микроконтроллере Пират-4 металлоискатель Пират-4