» Elektronika » Detektory kovů »Detektor kovů na Arduino Pro Mini. Zpracování hloubek Kolokolov-Shchedrin podle principu „Přenos“

Detektor kovů na Arduino Pro Mini. Zpracování hloubek Kolokolov-Shchedrin podle principu „Přenos“


Recyklace hlubinného schématu Kolokolov-Shchedrin. Rozdíly oproti původnímu schématu:
1. Na čipu k561 .. není žádný krystalový oscilátor a křemen 32 kHz. Signál 32 kHz dává Arduino Pro Mini.
2. Zvukové notifikační obvody na několika mikroobvodech řady 561 také nejsou přítomny, Arduino také vyjadřuje cíl (a musím říci, že je to vynikající vyjádření ve srovnání se autorovým schématem).
3. Napájeno unipolárním napětím 12V (olověná baterie).
4. Pomocí tlačítek upravte citlivost. U stupnice ADC od 0 do 1023 je prahová hodnota odezvy nastavitelná od 1 do 38 (hodnotu lze snadno změnit v náčrtu).


Detektor kovů na Arduino Pro Mini. Zpracování hloubek Kolokolov-Shchedrin podle principu „Přenos“


A co je nejdůležitější, chtěl jsem v tomto článku ukázat, že je možné sestavit MD na Arduino ne méně než původní v citlivosti (to se vyřešilo, protože originály původního obvodu byly shromážděny řádově 10 kusů, takže existuje materiál pro srovnání). Původní obvod:


Když jsem poprvé začal pracovat s Arduino, byl jsem tak nadšený, že jsem si myslel, že na Arduinu mohu najít a sestavit jakýkoli obvod detektoru kovů z Internetu na Arduinu, který jsem snadno našel v obrovské skládce odpadu. V zásadě se to ukázalo tak, ale obvody byly založeny na frekvenčním čítači, který neumožňoval dosažení opravdu dobrého dosahu. Některé hračky pro děti a test pera + se pokouší vydělat peníze pro začátečníky. Originál tohoto MD je skutečný pracovní kůň, který vám umožní najít velké objekty ve vzdálenosti 2 m (viz kniha Kolokolov-Shchedrin v Google). O transformovaném md neexistují žádné statistiky. Doufám, že se objeví s podporou fanoušků MD a Arduino. Program spolupracoval s Arduino Uno a Arduino Pro Mini.

Dále je na odkazu uveden proces narození tohoto MD na webových stránkách páječky, která trvala déle než jeden rok a přiměla autora ke studiu programovacího duinu. Možná se zdá, že náčrtek bude někoho ubohý - rád přijmu vaše FIXY.




V současné době existuje nákres, který vám umožní nastavit bariéru citlivosti (pin 7 douins +1 k bariéře, pin 8 -1 k bariéře). .
Arduino o mini 5v, 16MHz, ATmega168 a displej jich používaly. Vedle váhy je adaptér Mini SD


Jak již bylo řečeno, 1602 stojí 86 rublů, ProMini - 82 rublů. Pokud si přejete, můžete si dokonce vzít nahou ATmega168, vyvinout pro ni desku a vyplnit do ní náčrt.A tak jsem například nainstaloval mámu tátu na MD desku pomocí konektoru. Na fotografii je Arduino 6-kolíková zástrčka, skrz kterou byly nality náčrtky přímo na tabuli.

Sketch-MD.Rx-Tx.ProMini.SrednjajaTochkaRegBar.ino

// Analogový vstup A3 pro voltmetr
// Analogový vstup A4 pro signál
// 6- závěr zook
// 9 - výstupní frekvence 31200 Hz
#include
Liquid Crystal lcd (12, 11, 5, 4, 3, 2);
                                       
  byte z1 [8] = {// ikona baterie
  0b01100, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110};
 
 int počítáno = 0; // proměnná pro uložení hodnoty úrovně měřítka
 int voltag = 0; // proměnná pro uložení hodnoty napětí
 int noll = 0; // proměnná pro uložení hodnoty středního bodu
   #define NUM_SAMPLES 10 // 10 analogových vzorků k odečtení za 1 sekundu
   int součet = 0; součet odebraných vzorků
   int sun = 0; // stejný, ale děleno 10
   unsigned char sample_count = 0; // aktuální číslo vzorku pomocí
   plovákové napětí = 0,0; // vypočtené napětí
   const int button1 = 7; // bariéra plus tlačítko
   tlačítko const int2 = 8; // bariéra-minus tlačítko
   int i = 5; // bariéra
   
neplatné nastavení () {
     lcd.begin (16, 2); // zobrazení inicializace
     lcd.setCursor (1, 0);
     lcd.setCursor (10, 1);
     lcd.print ("Rx-Tx");
     zpoždění (3000);
     lcd.clear ();
     
     TCCR1A = TCCR1A & amp; 0xe0 | 2;
     TCCR1B = TCCR1B & amp; 0xe0 | 0x09;
     analogWrite (9, 126); // na pinu 10 PWM = 50% f = 31200 Hz
     
     lcd.createChar (1, z1);
     }
     
void loop () {
     int buttonState1 = HIGH; // Stav tlačítka je jeden
     int buttonState2 = HIGH; // Stav dvou tlačítek
   sample_count = 0; // resetuje obrys počtu přírůstků
   součet = 0; // resetuje součet 10 přírůstků
   while (sample_count  = noll - (i-1)) {počítáno = 7;
    noTone (6); } // ostrůvek virtuální nuly (7 segment)
     if (sun & noll & & & sun <= noll + (i-1)) {počítáno = 8;
    noTone (6); } // ostrov virtuální stupnice nuly (8 segmentů)

   
    {lcd.setCursor (počítáno, 0); // nastavte kurzor na sloupec počítání, řádek 0
    lcd.print ("\ xff"); // vyplněná ikona
    lcd.setCursor (0, 1); // přesuňte se na 2 řádky, sloupec-0
    lcd.print (char (1)); // Indikace ikony baterie
    lcd.setCursor (1, 1); // přejděte na indikaci napětí
    lcd.print (napětí); // napětí
    lcd.setCursor (7, 0); // 8. sloupec 1. řádek
    if (sun 
9.8
10
10

Přidejte komentář

    • úsměvúsměvyxaxaokdontknowyahoone
      šéfeškrábnutíhlupákanoano-anoagresivnítajemství
      promiňtanecdance2dance3prominoutpomocnápoje
      zastavitpřátelédobředobrá náladapískatlžícejazyk
      kouřtleskánícrayprohlásitvýsměšnýdon-t_mentionstáhnout
      teploirefulsmích1mdasetkánímoskingnegativní
      not_ipopcorntrestatčístvyděsitděsíhledat
      posměchděkujitototo_clueumnikakutnísouhlasím
      špatnévčelablack_eyeblum3červenat sechlubit senuda
      cenzurovánopleasantrysecret2hrozitvítězstvíyusun_bespectacled
      třástrespektlolprovedenívítejtekrutoyya_za
      ya_dobryipomocníkne_huliganne_othodibludzákazblízko
24 komentář
Autor
Díky puteec FU! Požádal jsem o to podruhé. Prošel jsem Arduino uno. Po aktualizaci bootloaderu problém zmizel. Nyní se zajímá, jak dále konfigurovat.
puteec fu
Jakékoli Arduino je vhodné pro atmega168, atmega328. O nano to s USB konektorem, pokud se nemýlí. Šijte v Arduino ide z příkladů Blink skici (blikající LED diody na pin 13, LED je nainstalován na desce). Ujistěte se, že používáte správný port, deska je vybrána správně, procesor na desce je správně vybrán, frekvence křemene na desce je správně vybrána a metoda firmwaru (μ2) je vybrána správně.
Došlo k chybě.
Vytvořte nový soubor v Arduino, zkopírujte skicu odtud do nové a čisté skici a bude to fungovat.Nejprve ale nechte LED na desce Arduino blikat standardním blikajícím příkladem. Pak jděte dál.
Arduino p nano jsem koupil pouze na procesoru Atmega328. Zkontrolovali jsme spoustu videí a fór ... říkali, že by to mělo přijít .... ale pak bummer NEBliká .... dává #include očekává "FILENAME" nebo . Setkal se s tím někdo?
Autor
Na této desce pracuje skica. Co přesně je zátka vytvořena?
Pokud nalijete poslední skicu, nelze nainstalovat všechny podrobnosti týkající se D3.3 a D3.4, jakož i samotné. Na páječce je toto téma překresleno
Anjey888
Ahoj. Toto téma má velký zájem. Chci sestavit zařízení. Vyrobil jsem pájecí desku z cesty ... a pak jsem uvízl. Protože mezi deskou a obvodem existuje mnoho neshod. Začal jsem porovnávat vaši desku ... to je velký rozdíl. Ale zaměňováno s postrojem v Arduinu.
Žádám o pomoc informované lidi.
Autor
Stejné jako u ostatních kovů. Hloubka detekce závisí na oblasti cíle. Čím více, čím hlouběji.
Host Eugene
Jaké jsou limity pro detekci objektů? Zlato, hliník, měď.
Host Alexander
Co dělat teď, protože stále existuje Schottkyho bariéra?
Autor
Tak tady! Téměř ani nejmenší hodnota není vyloučena! Díky za vysvětlení.
Citace: puteec_80
A lidé rychleji a intuitivněji pochopí, o čem mluvím.
V této chybě můžete pokračovat. ((Technicky gramotní lidé budou na rozpacích.
BARRIER, manžele.
1. Překážka (druh zdi, příčka) zasazená do cesty.
2. Oplocení, oplocení.

THRESHOLD, práh, manželi.
1. Ve vědě a technologii se práh nazývá nejmenší hodnotou, stupněm projevu něčeho.
Prahová hodnota citlivosti zařízení. | Práh pro slyšení. | Prahová hodnota bolesti. | Senzor se spustí, když je překročena nastavená teplota.
úsměv
Autor
Zůstaňme s našimi vlastními. Napíšu „zvýšení bariéry o jednu jednotku“ a „citlivost přijímače byla 5 μV.“ A píšete „Zvyšování práhu provozu o jednu jednotku“ a „práh citlivosti přijímače ...“ Navíc lidé rychleji a intuitivněji pochopí, o čem mluvím.
A vysvětlím v tomto příkladu. Není přesně stanovena prahová hodnota, protože neexistuje jasná referenční stupnice. Existuje nějaký druh výřezu plovoucího pásma z plovoucího signálu. Zdá se mi tedy, že definice bariéry je pro tento „plovoucí“ proužek mnohem vhodnější než pro práh.
Obecně zbytečné a hloupé argumenty. Máte nějaké dotazy?
Citace: puteec_80
Jaké jsou jejich dolní a horní prahy?
Možná významy přeložených slov se neshodují nebo se mírně neshodují. Dokonale však popisují tento proces a postupně vstupují do slangu.
Přesně to, co je prahová hodnota. Prahová hodnota odezvy je ve vašem případě. Vysvětlete prosím, jak „bariéra“ popisuje proces.
Pokud jde o připojení slangu - teď je zde spousta nejrůznějších nedorozumění. ((
Autor
V tomto případě stále používám slovo „bariéra“, protože je to bariéra, která je nastavena v textu programu, ale nespadá do jeho rozsahu, mikrokontrolér tento signál vnímá jako užitečný. A je to bariéra, protože Má dvě hodnoty - horní a dolní mez záběhu, tzn. k operaci dochází nad „horním“ a pod „dolním“ okrajem bariéry na stupnici ADC. Ale víte to lépe. Jaké jsou jejich dolní a horní prahy?
Možná významy přeložených slov se neshodují nebo se mírně neshodují. Dokonale však popisují tento proces a postupně vstupují do slangu.
Mimochodem. Citlivost a bariéra jsou úplně jiné věci.
AnoProtínají se. Ale už ne.
Citace: puteec_80
U zahraničních MD je v nabídce uvedeno „Barier“.

Možná vás překvapím, ale mnoho anglických slov, která vypadají podobně jako ta naše, mají jiný význam, někdy blízko, někdy ne. Hledejte slova „falešní překladatelé“.
Nyní v podstatě. V ruštině technické dokumentace ne prostě neexistuje žádná taková fráze „bariéra citlivosti“ - a to je vše! Existuje „práh citlivosti“, v některých případech lze říci „limit citlivosti“, ale nikoli „bariéra citlivosti“. Možná v některých jiných oborech znalostí se používá, ale ne v elektronice.
Autor
To znamená, že všichni zahraniční inženýři skákají přes hůl na silnici. Na zahraničním MD, menu říká "Barier". Soudruhu Ivane, padáš mi do očí s tak malicherným dusením! Kde jsou vaše připomínky k zásluhám? Potom musíte tleskat rukama na čele? Často jste mě kazili trestat
Rozdíl je významný: prahová hodnota je technický pojem, překážkou je „přilnavost přes silnici“.
Autor
Možná. Ale nevidím ten rozdíl.
Možná ne „bariéra“, ale práh? ;)
Autor
Schéma nezobrazuje tlačítka pro nastavení bariéry. Jsou spojeny s kolíky 7 a 8 Arduino. Každý vytáhl s odporem 10k na plus, uzavře se, když stisknete hmotnost.
Autor
void loop () {
int buttonState1 = HIGH; // Stav tlačítka je jeden
int buttonState2 = HIGH; // Stav dvou tlačítek

int pot = analogRead (A4); // filtr pro rychlou změnu signálu
sign = sign * (1-K) + pot * K;

noll = noll * (1-L) + znaménko * L; // dlouhodobý filtr signálu
// Voltmetr zabudovaný na vstupu A3
plovákové napětí = mapa (analogRead (A3), 0,1023,0, 1500) / 100,0;

if (sign> = noll + i) {countleds = map (sign, noll + i, 1023, 9, 14);
// pokud je přijatý výsledek na segmentu 9–15 stupnice
tón (6, počet * 100);}
if (sign <= noll - i) {countleds = map (sign, 0, noll - i, 0, 7);
// pokud je výsledný výsledek 0-7 segment měřítka
tón (6, počet * 50); }
if (sign = noll - (i-1)) {countleds = 7;
noTone (6); } // ostrůvek virtuální nuly (7 segment)
if (sign> noll && sign <= noll + (i-1)) {countleds = 8;
noTone (6); } // ostrov virtuální stupnice nuly (8 segmentů)


{lcd.setCursor (počítáno, 0); // nastavte kurzor na sloupec počítání, řádek 0
lcd.print ("\ xff"); // vyplněná ikona
lcd.setCursor (0, 1); // přesuňte se na 2 řádky, sloupec-0
lcd.print (char (1)); // Indikace ikony baterie
lcd.setCursor (1, 1); // přejděte na indikaci napětí
lcd.print (napětí); // napětí
lcd.setCursor (7, 0); // 8. sloupec 1. řádek
if (sign lcd.setCursor (8, 0); // 9. sloupec 1. řádek
if (sign> noll) {lcd.print ("}");} // print
lcd.setCursor (7, 1);
lcd.print ("B =");
lcd.setCursor (9, 1); // 11 sloupec 2. řádek
lcd.print (i); // bariéra
lcd.setCursor (13, 1); // 13. sloupec 2. řádek
lcd.print (sign); // vytiskne průměrnou hodnotu hodnoty ADC
zpoždění (10); // počkej

buttonState1 = digitalRead (button1); // Stav tlačítka 1 pro čtení
buttonState2 = digitalRead (button2); // Stav tlačítka 2 pro čtení
if (buttonState1 == LOW) {i = i + 1; zpoždění (50);}
// Po stisknutí tlačítka se bariéra zvětšuje o 1. Zpoždění 50
if (buttonState2 == LOW) {i = i - 1; zpoždění (50);}
// Po stisknutí tlačítka se bariéra sníží o 1. Zpoždění 50
if (i <1) {i = 1;} // Dolní hranice bariéry
if (i> 38) {i = 38;} // Horní hranice bariéry

lcd.clear ();
}
}
Autor
Nová skica. Algoritmus pro detekci užitečného signálu byl změněn. Schéma je zjednodušená, neexistují žádné prvky D3.4 a D3.3 se všemi jejich vazbami. Pokud si vezmete svůj vlastní podpis, pak všechny tyto údaje nelze jednoduše nainstalovat. Více citlivosti. Žádné falešné pozitivy.
Náčrt:

// Analogový vstup A3 pro voltmetr Nastavitelný potenciometrem R32.
// Analogový vstup A4 pro signál. Nastavte s minimálním signálem na D3.2
// odpor R40 pro hodnoty ADC asi 510.
// 6- závěr zook
// 9 - výstupní frekvence 31200 Hz
#include
Liquid Crystal lcd (12, 11, 5, 4, 3, 2);

byte z1 [8] = {// ikona baterie
0b01100, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110};
int počítáno = 0; // proměnná pro uložení hodnoty úrovně měřítka

plovákové napětí = 0,0; // vypočtené napětí
const int button1 = 7; // bariéra plus tlačítko
tlačítko const int2 = 8; // bariéra-minus tlačítko
int i = 5; // bariéra
const float K = 0,1; // rychlé sledování změn filtru (koeficient. čím menší, tím silnější)
const float L = 0,07; // změny sledování sledování filtru po dlouhou dobu
float znaménko = 0; // filtr
float noll = 0;

neplatné nastavení () {
lcd.begin (16, 2); // zobrazení inicializace
lcd.createChar (1, z1);
pinMode (9, VÝSTUP);
pinMode (6, VÝSTUP);
TCCR1A = TCCR1A & 0xe0 | 2;
TCCR1B = TCCR1B & 0xe0 | 0x09;
analogWrite (9, 126); // na pinu 10 PWM = 50% f = 31200 Hz
// ve skutečnosti, pro PWM = 50% musíte nastavit osciloskop nejméně 220 výplní
// duin to nezvládne. To není kritické.
}
Autor
Ti, kteří budou sledovat náčrt. Znaky> = a <= byly nahrazeny podivnými kombinacemi & gt a

Doporučujeme si přečíst:

Podejte to pro smartphone ...