Mengitar semula skim dalam air Kolokolov-Shchedrin. Perbezaan dari skim asal:
1. Tidak ada pengayun kristal pada k561 .. cip dan 32 kHz kuarza. Isyarat 32 kHz memberikan Arduino Pro Mini.
2. Litar pemberitahuan bunyi pada 561 siri microcircuits juga tidak hadir, Arduino juga menyuarakan sasaran (Dan saya mesti katakan, ia adalah penyataan yang sangat baik, berbanding skim pengarang).
3. Dikuasakan oleh voltan unipolar 12v (bateri asid plumbum).
4. Laraskan kepekaan dengan butang. Dengan skala ADC dari 0 hingga 1023, ambang tindak balas boleh dilaraskan dari 1 hingga 38 (nilai dengan mudah boleh diubah dalam lakaran).
Yang paling penting, saya ingin menunjukkan dalam artikel ini bahawa ia mungkin untuk memasang MD pada Arduino tidak kalah dengan kepekaan yang asli (ini dihasilkan, kerana asal litar asli dikumpulkan atas perintah 10 keping, jadi terdapat bahan perbandingan). Litar asal:
Apabila saya mula bekerja dengan Arduino, saya sangat terinspirasi sehingga saya fikir saya dapat mencari dan memasang litar Detektor Logam dari Internet di Arduino yang saya dapat dengan mudah mencari di tempat pembuangan sampah yang luas. Pada dasarnya, ia ternyata seperti itu, tetapi litar-litar itu didasarkan pada kaunter kekerapan, yang tidak membenarkan jangkauan yang sangat baik. Sesetengah mainan kanak-kanak dan ujian pen + percubaan untuk membuat wang pada pemula. Asal MD ini adalah kerja keras sebenar yang membolehkan anda mencari objek besar pada jarak 2m (lihat buku Kolokolov-Shchedrin di Google). Tiada statistik mengenai perubahan md. Saya berharap dia muncul dengan sokongan peminat MD dan Arduino. Skim ini bekerja dengan Arduino Uno dan Arduino Pro Mini.
Lebih lanjut mengenai pautan itu dibentangkan proses kelahiran MD ini di laman web Iron Pematerian, yang berlangsung lebih dari satu tahun dan mendorong penulis untuk mempelajari pengaturcaraan duin. Mungkin lakaran itu kelihatannya celaka kepada seseorang - Saya dengan senang hati akan menerima FIXES anda.
Pada masa ini, ada lakaran yang membolehkan anda melaraskan halangan sensitiviti (pin 7 douins +1 ke halangan, pin 8 -1 ke halangan). .
Arduino mengenai mini 5v, 16MHz, ATmega168 dan paparan yang digunakan. Di sebelah skala adalah penyesuai Mini SD
Seperti yang dikatakan 1602 kos 86 Rubles, ProMini - 82 Rubles. Sekiranya anda mahu, anda boleh secara amnya mengambil ATmega168 telanjang, membangun papan untuknya dan mengisi lakaran terus ke dalamnya.Dan sebagainya, sebagai contoh, saya memasang ibu-bapa di papan MD menggunakan penyambung. Foto menunjukkan palam 6 pin Arduino, di mana sketsa dituangkan terus di papan.
Sketch-MD.Rx-Tx.ProMini.SrednjajaTochkaRegBar.ino
// Input analog A3 untuk voltmeter
// Input analog analog untuk isyarat
/ / 6 kesimpulan zook
// 9 - kekerapan output 31200 Hz
#include
Lcd kristal cecair (12, 11, 5, 4, 3, 2);
byte z1 [8] = {// icon bateri
0b01100, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110};
int countleds = 0; // berubah untuk menyimpan nilai tahap skala
int voltag = 0; // berubah untuk menyimpan nilai voltan
int noll = 0; // pemboleh ubah untuk menyimpan nilai titik tengah
#define NUM_SAMPLES 10 // 10 sampel analog untuk dibaca dalam 1 saat
int sum = 0; // jumlah sampel diambil
int sun = 0; / sama, tetapi dibahagikan dengan 10
char unsigned sample_count = 0; // nombor sampel semasa dengan
voltan terapung = 0.0; // voltan dikira
const int button1 = 7; / // penghalang ditambah butang
const int button2 = 8; / // butang halangan-tolak
int i = 5; // halangan
void setup () {
lcd.begin (16, 2); // paparan inisialisasi
lcd.setCursor (1, 0);
lcd.setCursor (10, 1);
lcd.print ("Rx-Tx");
kelewatan (3000);
lcd.clear ();
TCCR1A = TCCR1A & amp; 0xe0 | 2;
TCCR1B = TCCR1B & amp; 0xe0 | 0x09;
analogWrite (9, 126); / // pada pin 10 PWM = 50% f = 31200Hz
lcd.createChar (1, z1);
}
kekosongan gelung () {
int buttonState1 = HIGH; / // Butang butang adalah satu
int buttonState2 = HIGH; / // Dua butang butang
sample_count = 0; / / reset semula kontur bilangan penambahan
jumlah = 0; / / reset semula jumlah 10 penambahan
sementara (sample_count & lt; NUM_SAMPLES) {
jumlah + = analogRead (A4); // pengukuran seterusnya ditambah kepada jumlah
sample_count ++; // unit ditambah ke nombor pengukuran
matahari = jumlah / 10;} // mencari nilai purata dari 10 ukuran
nol = analogRead (A3) / 2; // kuasa midpoint
voltan terapung = peta (analogRead (A3), 0,1023,0,1500) /100.0;
// Voltmeter dibina pada input A3
jika (sun & gt; = noll + i) {dikira = peta (matahari, nol + i, nol * 2 - 250, 9, 14);
// jika hasil yang diterima adalah pada skala 9-15 skala
nada (6, dikira * 100);}
jika (sun & lt; = noll - i) {dikira = peta (matahari, 116, nol - i, 0, 7);
// jika hasil yang dihasilkan adalah skala segmen 0-7
nada (6, dikira * 50); }
jika (sun & lt; noll & amp; & amp; sun & gt; = noll - (i-1)) {dikira = 7;
noTone (6); } // pulau maya ZERO (7 segmen)
jika (sun & gt; noll & amp; sun & lt; = noll + (i-1)) {diketepikan = 8;
noTone (6); } // pulau skala ZERO maya (8 segmen)
{lcd.setCursor (dikhitungkan, 0); // tetapkan kursor ke lajur yang dikira, baris 0
lcd.print ("\ xff"); / // ikon diisi
lcd.setCursor (0, 1); // berpindah ke 2 baris, lajur-0
lcd.print (char (1)); // Indikasi Ikon Bateri
lcd.setCursor (1, 1); // berpindah ke petunjuk voltan
lcd.print (voltan); // voltan
lcd.setCursor (7, 0); / // 8 baris 1 baris pertama
jika (matahari & lt; noll) {lcd.print ("{");} // cetak
lcd.setCursor (8, 0); // Barisan ke-9 berturut-turut 1
jika (sun & gt; noll) {lcd.print ("}");} // print
lcd.setCursor (7, 1);
lcd.print ("B =");
lcd.setCursor (9, 1); // 11 lajur baris 2
lcd.print (i); // halangan
lcd.setCursor (13, 1); / // Kolum ke-13 ke-2
lcd.print (sun); / / mencetak nilai purata nilai ADC
kelewatan (100); // tunggu
buttonState1 = digitalRead (button1); // Baca Butang 1 Status
buttonState2 = digitalRead (button2); // Tekan butang 2 negeri
jika (buttonState1 == LOW) {i = i + 1; kelewatan (50);}
// Apabila butang ditekan, penghalang bertambah dengan 1. Tunda 50
jika (buttonState2 == LOW) {i = i - 1; kelewatan (50);}
// Apabila tombol ditekan, penghalang berkurang dengan 1. Tunda 50
jika (i & lt; 1) {i = 1;} // Batas bawah penghalang
jika (i & gt; 38) {i = 38;} // Batas atas penghalang
lcd.clear ();
}
}
Saya tidak menggunakan kereta. Dua elemen terakhir TL074 telah dibiarkan terbiar. Tetapi di litar dan papan mereka. Anda mungkin mahu membawa mereka ke keadaan kerja sedikit kemudian. Saya percaya bahawa saya telah mencapai matlamat saya. Unit paparan berfungsi dengan hebat. Segala-galanya bergantung kepada MD.