- Лайфстайл
- Недвижимость
- Здоровье
- Природа
- Дизайн
- Техника и оборудование
- Бизнес и предпринимательство
- Искусство
- Религия
- Строительство и ремонт
- Сад и огород
- Аудиокниги
- Кулинария
- Интервью
- Развлечения
- Лайфхаки
- Эзотерика
- Охота и рыбалка
- Наука
- Политика
- Психология
- Аудио
- Технологии и интернет
- Красота
- Телепередачи
- Детям
- Аниме
- Хобби
- Видеоигры
- Юмор
- Образование
- Спорт
- Разное
- Путешествия
- Животные
- Новости и СМИ
- Мультфильмы
- Музыка
- Сериалы
- Фильмы
- Авто-мото
Простая компактная вводилка паролей на контроллере 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
Видео Простая компактная вводилка паролей на контроллере atmega 32u4 (arduino pro micro) версия 2s автора privetvolku
Информация
19 июня 2025 г. 2:39:51
00:03:45
Похожие видео