Neparasta kombinācijas atslēga uz Arduino

Arduino ir labākā sistēma jebkura aprīkojuma kopēšanai. Lielākā daļa ideju nebūtu iespējamas bez viņas. Ilgu laiku ir bijusi šāda ideja: izveidot īpašu kombinētu slēdzeni arduino. Lai to atvērtu, jums jāpatur nospiests noteikts taustiņš. Šajā gadījumā slēdzenei nevajadzētu atvērties, pat ja zināt labo pogu. Lai to atvērtu, ir nepieciešams izturēt noteiktus intervālus, izmantojot muskuļu atmiņu. Šāds noziedznieks nespēs izdarīt. Bet tā ir tikai teorija.

Lai to saliktu, jums jāizmanto īpaša taisnstūra impulsu ierīce, kā arī vairāki skaitītāji un kaudze. Bet gatavajai ierīcei būtu lieli vispārējie izmēri, un to būtu neērti lietot. Parasti šādas domas vajā. Pirmais solis sapņa īstenošanā bija programmas izveidošana Arduino. Tas kalpos kā kombinētā atslēga. Lai to atvērtu, būs jānospiež nevis viens taustiņš, bet gan vairāki, un tas jādara vienlaikus. Gatavā shēma izskatās šādi:

Kombinētā atslēga

Attēla kvalitāte nav tā labākā, bet savienojums tiek veikts ar zemi, D3, D5, D7, D9 un D11.

Kods ir parādīts zemāk:

const int ina = 3;







const int inb = 5;







const int inc = 9;







const int ledPin = 13;







int i = 1000;







baits a = 0;







bits b = 0;







baits c = 0;







baits d = 0;







neparakstīts ilgs laiks = 0; // neaizmirstiet visu, kas ņem milisi () vērtību







neparakstīts garš temp = 0; // veikals neparakstīts ilgi







baitu keya [] = {0, 0, 0, 0, 0, 0, 0, 0}; // kodi faktiski







baitu keibs [] = {1, 1, 1, 1, 0, 1, 0, 0};







baitu taustiņš [] = {1, 0, 1, 0, 1, 1, 1, 0};







baits k = 0;







 







Nederīga iestatīšana () {







pinMode (ina, INPUT_PULLUP); // 3 ieejas, kas savienotas ar pogām







pinMode (inb, INPUT_PULLUP);







pinMode (ieskaitot, INPUT_PULLUP);







pinMode (ledPin, OUTPUT); // iebūvēta gaismas diode 13. tabulā







pinMode (7, OUTPUT);







pinMode (11, OUTPUT);







digitalWrite (7, LOW); // aizstāt zemi







digitalWrite (11, LOW);







laiks = milis (); // vajadzēja skaitīt laiku







}







 







void blinktwice () {// divreiz mirgojoša gaismas diode







digitalWrite (ledPin, HIGH);







kavēšanās (100);







digitalWrite (ledPin, LOW);







kavēšanās (100);







digitalWrite (ledPin, HIGH);







kavēšanās (100);







digitalWrite (ledPin, LOW);







kavēšanās (200);







}







 







tukšs cilpa () {







ja (k == 0) {







blinktwice (); // koda uzvedne







}







ja (k == 8) {







digitalWrite (ledPin, HIGH);







kavēšanās (3000);







k ir 0;







}







a = digitalRead (ina); // nolasīt signāla līmeni no pogām - nospiests / nav nospiests







b = digitalRead (inb);







c = digitalRead (inc);







kavēšanās (100); // nākamais ja - aizsardzība pret viltus pozitīviem, jūs nevarat izmantot







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







if (a == keya [k]) {







if (b == keyb [k]) {







if (c == keyc [k]) {







 







k ++;







}







}







}







}







ja (k == 1) {







ja (d == 0) {







laiks = milis ();







d ++;







}







}







temp = millis ();







temp = temp - laiks;







ja (temp> 10000) {







k ir 0;







d ir 0;







laiks = milis ();







}







}




Lai izvairītos no nevajadzīgiem jautājumiem par kodu, daži punkti ir jāprecizē. Iestatīšanas funkcija tiek izmantota portu piešķiršanai. Nākamā funkcija ir Input_Pullup, kas nepieciešama, lai tapas spriegumu palielinātu par 5 V. Tas tiek veikts, izmantojot rezistoru. Sakarā ar to dažādi īssavienojumi nenotiks. Lielākai ērtībai ieteicams izmantot funkciju blinktwice. Parasti, veidojot dažādas programmas, jums ir jāizmēģina citas funkcijas.

Pēc funkciju piešķiršanas signāls tiek nolasīts no portiem. Ja tiek nospiesta poga, to apzīmē ar ciparu 1, bet, ja nē, ar - 2. Tālāk visu vērtību analīze. Piemēram, parādījās tāda kombinācija kā 0,1,1. Tas nozīmē, ka tiek nospiests pirmais taustiņš, bet pārējie divi nav. Ja visas vērtības ir patiesas, tad arī 8. nosacījums ir taisnība. Par to liecina priekšējā paneļa iedegtā gaismas diode. Tālāk jums jāievada noteikts kods, kas kalpos durvju atvēršanai.

Pēdējie koda elementi tiek izmantoti, lai atiestatītu skaitītāja vērtības. Šāda funkcija tiek veikta, ja kopš pēdējā taustiņa nospiešanas ir pagājušas vairāk nekā 10 sekundes.Bez šī koda jūs varētu iziet visas iespējamās iespējas, lai gan to ir daudz. Pēc šīs ierīces izveidošanas jums tas jāpārbauda.

 

(3 balsis)
Notiek ielāde ...

Pievieno komentāru