Genanvendelse af Kolokolov-Shchedrin-dybvandsordningen. Forskelle fra det originale skema:
1. Der er INGEN krystaloscillator på k561 .. -chippen og 32 kHz kvarts. 32 kHz signalet giver Arduino Pro Mini.
2. Lydanmeldelseskredsløb på flere 561-serier mikrokredsløb er heller ikke til stede, Arduino udtaler også målet (Og jeg må sige, det er fremragende stemme i forhold til forfatterens skema).
3. Drevet af unipolær spænding 12v (bly-syrebatteri).
4. Juster følsomheden med knapperne. Med ADC-skalaen fra 0 til 1023 kan responstærsklen justeres fra 1 til 38 (værdien kan let ændres i skitsen).
Vigtigst af alt ønskede jeg at vise i denne artikel, at det er muligt at samle MD'er på Arduino, som ikke er underordnet originalens følsomhed (dette gik ud, fordi originaler fra det originale kredsløb blev samlet i størrelsesordenen 10 stykker, så der er materiale til sammenligning). Oprindeligt kredsløb:
Da jeg først begyndte at arbejde med Arduino, blev jeg så inspireret, at jeg troede, at jeg kunne finde og samle ethvert metaldetektor-kredsløb fra Internettet på Arduino, som jeg let kan finde i det store affaldsdepot. I princippet viste det sig på den måde, men kredsløbene var baseret på en frekvens tæller, som ikke gjorde det muligt at opnå et rigtig godt interval. Nogle børns legetøj og en test af pennen + forsøger at tjene penge på begyndere. Originalen til denne MD er en rigtig arbejdshest, der giver dig mulighed for at finde store objekter i en afstand af 2 m (se Kolokolov-Shchedrin-bogen i Google). Der er ingen statistik om den transformerede md. Jeg håber, hun vises med støtte fra fans af MD og Arduino. Ordningen arbejdede med Arduino Uno og Arduino Pro Mini.
Yderligere på linket er beskrevet processen med fødsel af denne MD på lodningen af webstedet, der varede i mere end et år og fik forfatteren til at studere programmeringsduin. Måske vil skitsen virke elendig for nogen - jeg vil med glæde acceptere dine FIXES.
I øjeblikket er der en skitse, der giver dig mulighed for at justere følsomhedsbarrieren (pin 7 douins +1 til barrieren, pin 8 -1 til barrieren). .
Arduino omkring mini 5v, 16MHz, ATmega168 og displayet brugte disse. Ved siden af skalaen er Mini SD-adapteren
Som allerede nævnt koster 1602 86 rubler, ProMini - 82 rubler. Hvis du ønsker det, kan du generelt tage en nøgen ATmega168, udvikle en tavle til den og fylde skitsen direkte ind i den.Og så installerede jeg for eksempel mor-far på MD-tavlen ved hjælp af stikket. Billedet viser Arduinos 6-polede stik, hvorigennem skitser blev hældt direkte på brættet.
Sketch-MD.Rx-Tx.ProMini.SrednjajaTochkaRegBar.ino
// A3 analog indgang til voltmeter
// A4 analog indgang til signal
// 6- konklusion af zooken
// 9 - udgangsfrekvens 31200 Hz
#include
Flydende krystal lcd (12, 11, 5, 4, 3, 2);
byte z1 [8] = {// batteriikon
0b01100, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110};
int countleds = 0; // variabel for at gemme skalaniveauværdien
int voltag = 0; // variabel til at gemme spændingsværdien
int noll = 0; // variabel for at gemme midtpunktværdien
#definér NUM_SAMPLES 10 // 10 analoge prøver, der skal læses på 1 sekund
int sum = 0; // summen af de udtagne prøver
int sol = 0; // samme, men divideret med 10
usigneret char sample_count = 0; // aktuelle prøvenummer med
float spænding = 0,0; // beregnet spænding
const int-knap1 = 7; // barriere plus-knap
const int-knap2 = 8; // barriere-minus-knap
int i = 5; // barriere
ugyldig opsætning () {
lcd.begin (16, 2); // vis initialisering
lcd.set markør (1, 0);
lcd.set markør (10, 1);
lcd.print ("Rx-Tx");
forsinkelse (3000);
lcd.clear ();
TCCR1A = TCCR1A & amp; 0xe0 | 2;
TCCR1B = TCCR1B & amp; 0xe0 | 0x09;
analogWrite (9, 126); // ved pin 10 PWM = 50% f = 31200Hz
lcd.createChar (1, z1);
}
void loop () {
int-knapStat1 = HØJ; // Knapens tilstand er én
int-knapState2 = HØJ; // To-knapstilstand
sample_antal = 0; // nulstille konturen for antallet af tilføjelser
sum = 0; // nulstil summen af 10 tilføjelser
mens (sample_count & lt; NUM_SAMPLES) {
sum + = analoglæse (A4); // den næste måling føjes til summen
sample_count ++; // enheden føjes til måleenummeret
sun = sum / 10;} // find gennemsnitsværdien fra 10 målinger
noll = analog læse (A3) / 2; // midpoint power
float spænding = kort (analog læse (A3), 0,1023,0,1500) /100,0;
// Voltmeter bygget ved indgang A3
if (sol & gt; = noll + i) {countleds = kort (sol, noll + i, noll * 2 - 250, 9, 14);
// hvis det modtagne resultat ligger i skalaen 9.-15
tone (6, tellede * 100);}
if (sol & lt; = noll - i) {countleds = kort (sol, 116, noll - i, 0, 7);
// hvis det resulterende resultat er 0-7 segment af skalaen
tone (6, optalt * 50); }
if (sol & lt; noll & amp; & amp; sol & gt; = noll - (i-1)) {countleds = 7;
noTone (6); } // Islet af virtuel NUL (7 segment)
if (sol & gt; noll & amp; & amp; sol & lt; = noll + (i-1)) {countleds = 8;
noTone (6); } // ø med virtuel NUL-skala (8 segment)
{lcd.setCursor (countleds, 0); // indstil markøren til kolonnen med talt antal, linje 0
lcd.print ("\ xff"); // fyldt ikon
lcd.set markør (0, 1); // Gå til 2 række, kolonne-0
lcd.print (char (1)); // Indikation af batteriikon
lcd.set markør (1, 1); // gå til spændingsindikation
lcd.print (spænding); // spænding
lcd.set markør (7, 0); // 8. søjle 1. række
if (sun & lt; noll) {lcd.print ("{");} // print
lcd.set markør (8, 0); // 9. søjle 1. række
if (sol & gt; noll) {lcd.print ("}");} // print
lcd.set markør (7, 1);
lcd.print ("B =");
lcd.set markør (9, 1); // 11 kolonne 2. række
lcd.print (i); // barriere
lcd.set markør (13, 1); // 13. søjle 2. række
lcd.print (sol); // udskriv den gennemsnitlige værdi af ADC-værdien
forsinkelse (100); // vent
buttonState1 = digitalRead (knap1); // Læs knap 1-status
buttonState2 = digitalRead (knap2); // Læs knap 2-tilstand
if (buttonState1 == LAV) {i = i + 1; forsinkelse (50);}
// Når der trykkes på knappen, vokser barrieren med 1. Forsinkelse 50
if (buttonState2 == LAV) {i = i - 1; forsinkelse (50);}
// Når der trykkes på knappen, formindskes barrieren med 1. Forsinkelse 50
if (i & lt; 1) {i = 1;} // Undergrænsen for barrieren
if (i & gt; 38) {i = 38;} // Den øverste grænse af barrieren
lcd.clear ();
}
}
Jeg brugte ikke bilen. De sidste to elementer i TL074 blev tilbage. Men på kredsløb og bord er de det. Du ønsker måske at bringe dem i funktionsdygtighed lidt senere. Jeg tror, at jeg har nået mit mål. Displayenheden fungerer vidunderligt. Alt andet afhænger af MD.