Загрузка...

Простая компактная вводилка паролей на контроллере atmega 32u4 (arduino pro micro) версия 2s

#define PassMax 7 #define lp 7 //led pin #include "Keyboard.h" #include "GyverButton.h" #include GButton butt1(3); GButton butt2(15); uint8_t pn = 0, n = 1, p = 0, pm = PassMax, c = 0; uint32_t Now = 0; bool flag1 = 0, flagE = 0, FS = 1; String P[PassMax+1][3] = { {"login", "password", "comen"}, {"FireSec", "thch", "rubezh pc login"}, {"adm", "thr", "firesec administrator login"}, {"admin", "txhh", "rusguard pc login"}, {"Admin", "y5d", "rusguard Admin login"}, {"RVI", "tfh", "RVI pc login"}, {"admin", "ht", "r-operator login"}, {"admin", "cgth", "camera login"}, }; void setup() { butt1.setTimeout(888); butt2.setTimeout(888); pinMode(lp, OUTPUT); EEPROM.get(0, pn); if(pn ﹥ 0) flag1 = 1; delay (555); digitalWrite(lp, HIGH); Now = millis(); } void h() { Keyboard.write(KEY_RETURN); delay (33); Keyboard.print("(b1.Single ++) (b2.Single --)"); delay (33); Keyboard.write(KEY_RETURN); Keyboard.print("(b1.Hold Login) (b2.Hold Password)"); delay (33); Keyboard.write(KEY_RETURN); Keyboard.print("(b1.Double coment) (b2.Double help)"); delay (33); Keyboard.write(KEY_RETURN); Keyboard.print("(b1.Triple ChangeLanguage) (b2.Triple EEPROM.reset.PN=0)"); delay (33); Keyboard.write(KEY_RETURN); for (int i = 1; i ﹤= pm; i++) { delay (33); Keyboard.write(KEY_RETURN); Keyboard.print(i); Keyboard.write(' '); Keyboard.print(P[i][2]); } Now = millis(); } void le() { Keyboard.print(P[pn][0]); delay (99); Keyboard.write (KEY_TAB); digitalWrite(lp, HIGH); EEPROM.put(0, pn); delay (999); digitalWrite(lp, LOW); Now = millis(); } void pe() { Keyboard.print(P[pn][1]); delay (99); Keyboard.write(KEY_RETURN); digitalWrite(lp, HIGH); EEPROM.put(0, pn); delay (999); digitalWrite(lp, LOW); Now = millis(); } void ce() { Keyboard.print(P[pn][2]); digitalWrite(lp, HIGH); delay (999); digitalWrite(lp, LOW); Now = millis(); } void cl() { Keyboard.press (KEY_LEFT_CTRL); delay (99); Keyboard.write (KEY_LEFT_SHIFT); delay (99); Keyboard.write (KEY_LEFT_ALT); Keyboard.release (KEY_LEFT_CTRL); Now = millis(); } void er() { pn = 0; EEPROM.put(0, 0); Now = millis(); } void loop() { if (millis() - Now ﹥ 300000) { FS = 1; c = 0; digitalWrite(lp, HIGH); } while(FS) { // проверка доступа } butt1.tick(); butt2.tick(); if (butt1.isSingle()) { flag1 = 1; if (pn == pm) pn = 1; else pn++; Now = millis(); while (millis() - Now ﹤ 444 && flag1) { butt1.tick(); butt2.tick(); if (butt1.isSingle()) { if (pn == pm) pn =1; else pn++; Now = millis(); } if (butt2.isSingle()) { if (pn == 1) pn =pm; else pn--; Now = millis(); } } } if (butt2.isSingle()) { flag1 = 1; if (pn == 1) pn = pm; else pn--; Now = millis(); while (millis() - Now ﹤ 444 && flag1) { butt1.tick(); butt2.tick(); if (butt1.isSingle()) { if (pn == pm) pn =1; else pn++; Now = millis(); } if (butt2.isSingle()) { if (pn == 1) pn =pm; else pn--; Now = millis(); } } } n = 1; while (n ﹤= pn && flag1) { butt1.tick(); butt2.tick(); flagE = 0; digitalWrite(lp, HIGH); Now = millis(); //пауза while (millis() - Now ﹤ 22) { butt1.tick(); butt2.tick(); } digitalWrite(lp, LOW); if(flagE) break; Now = millis(); //пауза while (millis() - Now ﹤ 444){ butt1.tick(); butt2.tick(); if (butt1.isSingle()) { if (pn == pm) pn =1; else pn++; flagE =1; break; } if (butt2.isSingle()) { if (pn == 1) pn = pm; else pn--; flagE = 1; break; } if (butt1.isHold()) { le(); flagE = 1; flag1 = 0; break; } if (butt2.isHold()) { pe(); flagE = 1; flag1 = 0; break; } } if(flagE) break; n++; if (butt1.isSingle()) { if (pn == pm) pn = 1; else pn++; break; } if (butt2.isSingle()) { if (pn == 1) pn = pm; else pn++; break; } if (butt1.isHold()) { flag1 = 0; le(); break; } if (butt2.isHold()) { flag1 = 0; pe(); break; } if (butt1.isDouble()) { ce(); flag1 = 0; break; } if (butt2.isDouble()) { h(); flag1 = 0; break; } if (butt1.isTriple()) { cl(); flag1 = 0; break; } if (butt2.isTriple()) { h(); flag1 = 0; break; } if(n ﹥ pn) flag1 = 0; } if (butt1.isHold()) le(); if (butt2.isHold()) pe(); if (butt1.isDouble()) ce(); if (butt2.isDouble()) h(); if (butt1.isTriple()) cl(); if (butt2.isTriple()) er(); }

Видео Простая компактная вводилка паролей на контроллере atmega 32u4 (arduino pro micro) версия 2s автора privetvolku
Яндекс.Метрика
Все заметки Новая заметка Страницу в заметки
Страницу в закладки Мои закладки
На информационно-развлекательном портале SALDA.WS применяются cookie-файлы. Нажимая кнопку Принять, вы подтверждаете свое согласие на их использование.
О CookiesНапомнить позжеПринять