Kolokolovo-Ščedrino giliųjų vandenų schemos perdirbimas. Skirtumai nuo pradinės schemos:
1. K561 .. mikroschemoje ir 32 kHz kvarce nėra kristalų generatoriaus. 32 kHz signalas suteikia „Arduino Pro Mini“.
2. Garso pranešimų grandinių, esančių keliose 561 serijos mikroschemose, taip pat nėra. Arduino taip pat skelbia taikinį (ir turiu pasakyti, kad, palyginti su autoriaus schema, jis turi puikų balsą).
3. Maitinamas vienpoliu 12 V įtampa (švino-rūgšties akumuliatorius).
4. Mygtukais sureguliuokite jautrumą. Naudojant ADC skalę nuo 0 iki 1023, atsako slenkstį galima reguliuoti nuo 1 iki 38 (reikšmę galima lengvai pakeisti eskize).
Svarbiausia, kad šiame straipsnyje norėjau parodyti, kad Arduino MD galima surinkti ne prastesniu nei originalas jautrumu (tai pavyko, nes originalios grandinės originalai buvo surinkti 10 vienetų užsakymu, taigi yra medžiagos palyginimui). Originali grandinė:
Kai pirmą kartą pradėjau dirbti su „Arduino“, buvau toks įkvėptas, kad pamaniau, jog Arduino tinkle galiu rasti ir surinkti bet kurią metalo detektoriaus schemą iš interneto, kurią nesunkiai galiu rasti didžiulėje šiukšlių saugykloje. Iš principo paaiškėjo, kad taip, tačiau grandinės buvo pagrįstos dažnio skaitikliu, kuris neleido pasiekti tikrai gero diapazono. Kai kurie vaikų žaislai ir rašiklio testas + bandoma užsidirbti pinigų pradedantiesiems. Šio MD originalas yra tikras darbo arklys, leidžiantis surasti didelius objektus 2m atstumu (žr. „Kolokolov-Shchedrin“ knygą „Google“). Nėra duomenų apie transformuotą md. Tikiuosi, kad ji pasirodys palaikant MD ir Arduino gerbėjus. Schema veikė kartu su „Arduino Uno“ ir „Arduino Pro Mini“.
Toliau šioje nuorodoje pateikiamas šio MD gimimo procesas „Lituoklio“ tinklalapyje, kuris truko daugiau nei vienerius metus ir paskatino autorių studijuoti programavimo duetas. Galbūt eskizas kam nors atrodys apgailėtinas - aš mielai priimu jūsų FIXES.
Šiuo metu yra eskizas, leidžiantis sureguliuoti jautrumo barjerą (7 kaištis daro +1 + kliūtį, 8-kailis –1 – barjerą). .
Arduino apie mini 5v, 16MHz, ATmega168 ir ekraną naudojo šiuos. Šalia mastelio yra „Mini SD“ adapteris
Kaip jau minėta, 1602 kainuoja 86 rublius, „ProMini“ - 82 rublius. Jei norite, paprastai galite pasiimti plika ATmega168, sukurti jai lentą ir užpildyti eskizą tiesiai į ją.Taigi, pavyzdžiui, naudodamas jungtį, MD plokštėje įdiegiau mamą-tėtį. Nuotraukoje parodytas „Arduino“ 6 kontaktų kištukas, per kurį eskizai buvo pilami tiesiai ant lentos.
„Sketch-MD.Rx-Tx.ProMini.SrednjajaTochkaRegBar.ino
// A3 analoginis įėjimas voltmetrui
// A4 analoginis įėjimas signalui
// 6- zoko išvada
// 9 - išvesties dažnis 31200 Hz
# įtraukti
Skystųjų kristalų LCD (12, 11, 5, 4, 3, 2);
baitas z1 [8] = {// akumuliatoriaus piktograma
0b01100, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110};
int sąskrydžiai = 0; // kintamasis, kad būtų išsaugota skalės lygio reikšmė
int voltagas = 0; // kintamasis įtampos vertei laikyti
int noll = 0; // kintamasis, kad būtų galima išsaugoti vidurio taško vertę
#define NUM_SAMPLES 10 // 10 analoginių pavyzdžių, kuriuos reikia perskaityti per 1 sekundę
int suma = 0; // paimtų mėginių suma
int saulė = 0; // tas pats, bet padalintas iš 10
nepasirašytas char pavyzdys_skaičius = 0; // dabartinis mėginio numeris su
plūdės įtampa = 0,0; // apskaičiuota įtampa
const int mygtukas1 = 7; // barjerinis pliuso mygtukas
const int mygtukas2 = 8; // barjero-minuso mygtukas
int i = 5; // užtvara
negaliojanti sąranka () {
lcd.begin (16, 2); // ekrano inicijavimas
„lcd.setCursor“ (1, 0);
„lcd.setCursor“ (10, 1);
lcd.print („Rx-Tx“);
vėlavimas (3000);
lcd.clear ();
TCCR1A = TCCR1A & amp; 0xe0 | 2;
TCCR1B = TCCR1B & amp; 0xe0 | 0x09;
„analogWrite“ (9, 126); // kaištyje 10 PWM = 50% f = 31200Hz
lcd.sukurtiChar (1, z1);
}
tuščia kilpa () {
int buttonState1 = AUKŠTA; // Mygtuko būsena yra viena
int buttonState2 = AUKŠTA; // Dviejų mygtukų būsena
pavyzdys_skaičius = 0; // atkurti papildymų skaičiaus kontūrą
suma = 0; // atkurti 10 papildymų sumą
o (pavyzdžio_skaičius & lt; NUM_SAMPLES) {
suma + = analoginis skaitymas (A4); // kitas matas pridedamas prie sumos
pavyzdys_skaičius ++; // vienetas pridedamas prie matavimo skaičiaus
saulė = suma / 10;} // raskite vidutinę vertę iš 10 matavimų
noll = analogRead (A3) / 2; // vidurio galia
plūdės įtampa = žemėlapis (analoginis skaitymas (A3), 0,1023,0,1500) /100,0;
// voltmetras, pastatytas ties A3 įėjimu
if (sun & gt; = noll + i) {countleds = map (sun, noll + i, noll * 2 - 250, 9, 14);
// jei gautas rezultatas yra 9-15-ajame skalės segmente
tonas (6, kreipiasi * 100);}
if (sun & lt; = noll - i) {countleds = map (sun, 116, noll - i, 0, 7);
// jei gautas rezultatas yra 0–7 skalės segmentas
tonas (6, kreipiasi * 50); }
if (saulė & noll & saulė = noll - (i-1)) {countleds = 7;
„noTone“ (6); } // virtualios NULĖS salelė (7 segmentas)
if (sun & noll & amp; sun & lt; = noll + (i-1)) {countleds = 8;
„noTone“ (6); } // virtualios NULL skalės sala (8 segmentai)
{lcd.setCursor (pataria, 0); // nustatykite žymeklį į countleds stulpelį, 0 eilutę
lcd.print („\ xff“); // užpildyta piktograma
lcd.setCursor (0, 1); // pereiti prie 2 eilutės, 0 stulpelio
lcd.print (char (1)); // Baterijos piktogramos indikacija
„lcd.setCursor“ (1, 1); // pereiti prie įtampos indikacijos
lcd.print (įtampa); // įtampa
„lcd.setCursor“ (7,0); // 8-ojo stulpelio 1-oji eilutė
if (sun & lt; noll) {lcd.print ("{");} // print
„lcd.setCursor“ (8, 0); // 9 stulpelio 1 eilutė
if (sun & gt; noll) {lcd.print ("}");} // spausdinti
„lcd.setCursor“ (7, 1);
lcd.print („B =“);
„lcd.setCursor“ (9, 1); // 11 stulpelio 2 eilutė
lcd.print (i); // užtvara
„lcd.setCursor“ (13, 1); // 13 stulpelio 2 eilutė
lcd.print (saulė); // išspausdinkite vidutinę ADC reikšmę
vėlavimas (100); // palauk
buttonState1 = digitalRead (mygtukas1); // Skaitykite 1 mygtuko būseną
buttonState2 = digitalRead (2 mygtukas); // Skaitykite 2 mygtuko būseną
if (buttonState1 == LOW) {i = i + 1; vėlavimas (50);}
// Paspaudus mygtuką, užtvara padidėja 1. Atidėti 50
if (buttonState2 == LOW) {i = i - 1; vėlavimas (50);}
// Paspaudus mygtuką, barjeras sumažėja 1. Delay 50
if (i & lt; 1) {i = 1;} // Apatinė užtvaros riba
if (i> 38) {i = 38;} // Viršutinė užtvaros riba
lcd.clear ();
}
}
Aš nenaudojau automobilio. Paskutiniai du TL074 elementai nebuvo naudojami. Bet grandinėje ir plokštėje jie yra. Galbūt norėsite juos šiek tiek vėliau pasiekti į darbinę būklę. Tikiu, kad pasiekiau savo tikslą. Ekranas puikiai veikia. Visa kita priklauso nuo MD.