Neįprastas „Arduino“ derinys

„Arduino“ yra geriausia bet kurios įrangos kopijavimo sistema. Dauguma idėjų nebūtų buvusios įmanomos be jos. Ilgą laiką buvo tokia idėja: sukurti specialų kombinuotą užraktą arduino. Norėdami jį atidaryti, turite palaikyti nuspaudę tam tikrą klavišą. Tokiu atveju užraktas neturėtų atsidaryti, net jei žinote tinkamą mygtuką. Norėdami jį atidaryti, būtina atlaikyti tam tikrus intervalus, naudojant raumenų atmintį. Toks nusikaltėlis negalės įvykdyti. Bet tai tik teorija.

Norėdami jį surinkti, turite naudoti specialų stačiakampių impulsų įtaisą, taip pat kelis skaitiklius ir krūvą. Bet gatavas prietaisas turėtų didelius matmenis ir jį naudoti būtų nepatogu. Paprastai tokios mintys persekioja. Pirmasis žingsnis įgyvendinant svajonę buvo programos „Arduino“ sukūrimas. Jis veiks kaip kombinuotas užraktas. Norėdami jį atidaryti, turėsite paspausti ne vieną, o kelis klavišus ir tai padaryti vienu metu. Paruošta schema atrodo taip:

Kombinuotas užraktas

Vaizdo kokybė nėra pati geriausia, tačiau ryšys užmegztas su žeme, D3, D5, D7, D9 ir D11.

Kodas pateiktas žemiau:

const int ina = 3;

const int inb = 5;

const int inc = 9;

const int ledPin = 13;

int i = 1000;

baitas a = 0;

baitas b = 0;

baitas c = 0;

baitas d = 0;

nepasirašytas ilgas laikas = 0; // nepamiršk visko, kas užima milis () reikšmę

nepasirašyta ilga temp = 0; // laikyti ilgai nepasirašytą

baitų keya [] = {0, 0, 0, 0, 0, 0, 0, 0}; // kodai iš tikrųjų

baitų keyb [] = {1, 1, 1, 1, 0, 1, 0, 0};

baitų klavišas [] = {1, 0, 1, 0, 1, 1, 1, 0};

baitas k = 0;

 

negaliojanti sąranka () {

pinMode (ina, INPUT_PULLUP); // 3 įėjimai, sujungti su mygtukais

pinMode (inb, INPUT_PULLUP);

pinMode (įsk., INPUT_PULLUP);

pinMode (ledPin, OUTPUT); // įmontuotas šviesos diodas 13-ajame kaištyje

„pinMode“ (7, IŠĖJIMAS);

pinMode (11, OUTPUT);

„digitalWrite“ (7, LOW); // pakeisti žemę

„digitalWrite“ (11, LOW);

laikas = milis (); // reikėjo suskaičiuoti laiką

}

 

void blinktwice () {// dvigubai mirksintis šviesos diodas

„digitalWrite“ (ledPin, HIGH);

vėlavimas (100);

„digitalWrite“ (ledPin, LOW);

vėlavimas (100);

„digitalWrite“ (ledPin, HIGH);

vėlavimas (100);

„digitalWrite“ (ledPin, LOW);

vėlavimas (200);

}

 

tuščia kilpa () {

if (k == 0) {

blinktwice (); // eilutės kodas

}

if (k == 8) {

„digitalWrite“ (ledPin, HIGH);

vėlavimas (3000);

k yra 0;

}

a = digitalRead (ina); // skaityti signalo lygius iš mygtukų - paspausti / nespausti

b = „digitalRead“ (įvestis);

c = „digitalRead“ (įsk.);

vėlavimas (100); // next if - apsauga nuo klaidingų teigiamų dalykų, jūs negalite naudoti

if ((digitalRead (ina) == a) && (digitalRead (inb) == b) && (digitalRead (inc) == c)) {

if (a == keya [k]) {

if (b == keyb [k]) {

if (c == keyc [k]) {

 

k ++;

}

}

}

}

if (k == 1) {

if (d == 0) {

laikas = milis ();

d ++;

}

}

temp = milis ();

temp = temp - laikas;

if (temp> 10000) {

k yra 0;

d yra 0;

laikas = milis ();

}

}


Norint išvengti nereikalingų klausimų apie kodą, reikėtų paaiškinti kai kuriuos dalykus. Sąrankos funkcija naudojama priskirti prievadus. Kita funkcija yra „Input_Pullup“, kuri yra būtina norint padidinti kaiščio įtampą 5 V. Tai atliekama naudojant rezistorių. Dėl šios priežasties įvairūs trumpi jungimai neįvyks. Didesniam patogumui rekomenduojama naudoti „blinktwice“ funkciją. Apskritai, kurdami įvairias programas, turite išbandyti kitas funkcijas.

Paskyrus funkcijas, signalas nuskaitomas iš prievadų. Jei paspausite mygtuką, tada jis bus pažymėtas skaičiumi 1, o jei ne - 2. Kitas, visų verčių analizė. Pavyzdžiui, buvo toks derinys kaip 0,1,1. Tai reiškia, kad paspaudžiamas pirmasis klavišas, o kiti du - ne. Jei visos vertės yra tikros, tada tinka ir 8 sąlyga. Tai liudija uždegus LED lemputę priekiniame skydelyje. Toliau turite įvesti tam tikrą kodą, kuris tarnaus durims atidaryti.

Paskutiniai kodo elementai naudojami skaitiklių reikšmėms atkurti. Tokia funkcija atliekama, jei nuo paskutinio mygtuko paspaudimo praėjo daugiau nei 10 sekundžių.Neturėdami šio kodo, galėtumėte pereiti visus įmanomus variantus, nors jų yra labai daug. Sukūrę šį įrenginį, turite jį išbandyti.

 

(3 balsai)
Įkeliama ...

Pridėti komentarą