Рециклиране на дълбоководната схема Колоколов-Щедрин. Разлики от първоначалната схема:
1. В чипа k561 .. няма кристален осцилатор и кварц от 32 kHz. Сигналът от 32 kHz дава Arduino Pro Mini.
2. Звукови схеми за известяване на няколко микросхема от серия 561 също не присъстват, Arduino също огласява целта (И трябва да кажа, че е отличен глас, в сравнение със схемата на автора).
3. Захранва се от еднополярно напрежение 12v (оловно-кисела батерия).
4. Настройте чувствителността с бутоните. С ADC скалата от 0 до 1023, прагът на отговор е регулируем от 1 до 38 (стойността може лесно да бъде променена в скицата).
Най-важното е, че в тази статия исках да покажа, че е възможно да се сглобяват MD-та на Arduino, които не са по-ниски от оригинала по чувствителност (това се получи, защото оригиналите на оригиналната схема бяха събрани от порядъка на 10 броя, така че има материал за сравнение). Оригинална схема:
Когато за първи път започнах да работя с Arduino, бях толкова ентусиазиран, че мислех, че мога да намеря и сглобя всякаква верига на металотърсач от интернет на Arduino, че лесно бих могъл да намеря в огромния боклук. По принцип се оказа така, но веригите се основаваха на честотен брояч, което не позволяваше да се постигне наистина добър диапазон. Някои детски играчки и тест на писалката + опити да печелят пари за начинаещи. Оригиналът на този MD е истински работен кон, който ви позволява да намирате големи предмети на разстояние 2 м (вижте книгата на Колоколов-Щедрин в Google). Няма статистически данни за преобразувания md. Надявам се тя да се появи с подкрепата на феновете на MD и Arduino. Схемата работи с Arduino Uno и Arduino Pro Mini.
По-нататък на връзката е изложен процесът на раждането на този доктор на уебсайта на поялника, който продължи повече от една година и тласна автора да изучава програмен дуин. Може би скицата ще изглежда нещастна за някого - с радост ще приема вашите ПОМОЩИ.
В момента има скица, която ви позволява да регулирате бариерата за чувствителност (щифт 7 удвоява +1 към бариерата, щифт 8 -1 към бариерата). ,
Arduino около mini 5v, 16MHz, ATmega168 и дисплеят използваха тези. Следваща скалата е Mini SD-адаптер
Както вече беше казано 1602 струва 86 рубли, ProMini - 82 рубли. Ако желаете, обикновено можете да вземете гола ATmega168, да разработите дъска за нея и да напълните скицата директно в нея.И така, например, инсталирах мама-татко на дъската на MD с помощта на конектора. Снимката показва 6-пинов щепсел на Arduino, през който се изливат скици директно върху дъската.
Скица-MD.Rx-Tx.ProMini.SrednjajaTochkaRegBar.ino
// A3 аналогов вход за волтметър
// Аналогов вход A4 за сигнал
// 6- заключение на зука
// 9 - изходна честота 31200 Hz
#include
Течен кристал lcd (12, 11, 5, 4, 3, 2);
байт z1 [8] = {// икона на батерията
0b01100, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110};
int отброени = 0; // променлива, за да съхранява стойността на ниво на мащаба
int voltag = 0; // променлива за съхранение на стойността на напрежението
int noll = 0; // променлива за съхранение на средната стойност
#define NUM_SAMPLES 10 // 10 аналогови проби за четене за 1 секунда
int сума = 0; // сума на взетите проби
int sun = 0; // същото, но разделено на 10
неподписан char sample_count = 0; // текущ номер на пробата с
напрежение на поплавъка = 0,0; // изчислено напрежение
const int button1 = 7; // бариера плюс бутон
const int button2 = 8; // бариера-минус бутон
int i = 5; // бариера
настройка за невалидност () {
lcd.begin (16, 2); // инициализация на дисплея
lcd.setCursor (1, 0);
lcd.setCursor (10, 1);
lcd.print ("Rx-Tx");
забавяне (3000);
lcd.clear ();
TCCR1A = TCCR1A & усилвател; 0xe0 | 2;
TCCR1B = TCCR1B & усилвател; 0xe0 | 0x09;
analogWrite (9, 126); // на щифт 10 PWM = 50% f = 31200Hz
lcd.createChar (1, z1);
}
void loop () {
int buttonState1 = ВИСОКО; // Състоянието на бутона е едно
int buttonState2 = HIGH; // Състояние с два бутона
sample_count = 0; // нулиране на контура на броя на добавките
сума = 0; // нулиране на сумата от 10 допълнения
докато (sample_count & lt; NUM_SAMPLES) {
sum + = analogRead (A4); // следващото измерване се добавя към сумата
sample_count ++; // единицата се добавя към измервателния номер
sun = sum / 10;} // намерете средната стойност от 10 измервания
noll = analogRead (A3) / 2; // средна мощност
плаващо напрежение = карта (analogRead (A3), 0,1023,0,1500) /100.0;
// Волтметър, изграден на вход A3
if (sun & gt; = noll + i) {countleds = map (sun, noll + i, noll * 2 - 250, 9, 14);
// ако полученият резултат е на 9-15-ия сегмент на скалата
тон (6, броени * 100);}
if (sun & lt; = noll - i) {countleds = карта (sun, 116, noll - i, 0, 7);
// ако полученият резултат е 0-7 сегмент от скалата
тон (6, броени * 50); }
ако (sun & lt; noll & amp; sun & gt; = noll - (i-1)) {countleds = 7;
noTone (6); } // островче на виртуална ZERO (7 сегмент)
if (sun & gt; noll & amp; sun & lt; = noll + (i-1)) {countleds = 8;
noTone (6); } // остров на виртуална скала ZERO (8 сегмент)
{lcd.setCursor (отброени, 0); // задайте курсора на колоната за отброяване, ред 0
lcd.print ("\ xff"); // икона за запълване
lcd.setCursor (0, 1); // преминаване към 2 ред, колона-0
lcd.принт (char (1)); // Индикация на иконата на батерията
lcd.setCursor (1, 1); // преминаване към индикация за напрежение
lcd.принт (напрежение); // напрежение
lcd.setCursor (7, 0); // 8-ма колона 1-ви ред
if (sun & lt; noll) {lcd.print ("{");} // print
lcd.setCursor (8, 0); // 9-та колона 1-ви ред
if (sun & gt; noll) {lcd.print ("}");} // print
lcd.setCursor (7, 1);
lcd.print ("B =");
lcd.setCursor (9, 1); // 11 колона 2-ри ред
lcd.принт (i); // бариера
lcd.setCursor (13, 1); // 13-та колона 2-ри ред
lcd.принт (слънце); // отпечатайте средната стойност на стойността на ADC
забавяне (100); // чакай
buttonState1 = digitalRead (бутон1); // Състояние на бутона за четене 1
buttonState2 = digitalRead (бутон2); // Състояние на бутона за четене 2
ако (buttonState1 == LOW) {i = i + 1; забавяне (50);}
// При натискане на бутона бариерата нараства с 1. Забавяне 50
ако (buttonState2 == LOW) {i = i - 1; забавяне (50);}
// При натискане на бутона бариерата намалява с 1. Забавяне 50
ако (i <1) {i = 1;} // Долна граница на преградата
ако (i & gt; 38) {i = 38;} // Горната граница на преградата
lcd.clear ();
}
}
Не използвах колата. Последните два елемента на TL074 останаха бездействащи. Но на веригата и платката те са. Може да искате да ги приведете в работно състояние малко по-късно. Вярвам, че съм постигнал целта си. Дисплеят работи чудесно. Всичко останало зависи от MD.