Необична комбинација закључавања на Ардуину
Да бисте га саставили потребно је да користите посебан уређај правоугаоних импулса, као и неколико бројача и гомилу. Али готов уређај би имао велике укупне димензије и било би непријатно за употребу. У правилу, такве мисли прогоне. Први корак у остварењу сна био је креирање програма за Ардуино. Служиће као комбинација браве. Да бисте га отворили, мораћете да притиснете не једну типку, већ неколико, и то урадите истовремено. Готова шема изгледа овако:
Квалитет слике није најбољи, али веза се успоставља са земљом, Д3, Д5, Д7, Д9 и Д11.
Код је представљен у наставку:
цонст инт ина = 3;
цонст инт инб = 5;
цонст инт инц = 9;
цонст инт ледПин = 13;
инт и = 1000;
бајт а = 0;
бајт б = 0;
бајт ц = 0;
бајт д = 0;
дуго времена без потписа = 0; // не заборавите све што узима милис () вредност
непотписана дуга темп = 0; // чувајте се дуго у непотписаном
бите кеиа [] = {0, 0, 0, 0, 0, 0, 0}; // заправо кодови
бите кеиб [] = {1, 1, 1, 1, 0, 1, 0, 0};
бите кеиц [] = {1, 0, 1, 0, 1, 1, 1, 0};
бајт к = 0;
воид сетуп () {
пинМоде (Ина, ИНПУТ_ПУЛЛУП); // 3 улаза спојена на тастере
пинМоде (инб, ИНПУТ_ПУЛЛУП);
пинМоде (инц, ИНПУТ_ПУЛЛУП);
пинМоде (ледПин, ОУТПУТ); // уграђени ЛЕД на 13. пину
пинМоде (7, ИЗЛАЗ);
пинМоде (11, ИЗЛАЗ);
дигиталВрите (7, НИЗ); // заменити земљу
дигиталВрите (11, НИЗ);
време = милис (); // потребно за бројање времена
}
воид блинктвице () {// двоструко треперећа ЛЕД
дигиталВрите (ледПин, ХИГХ);
кашњење (100);
дигиталВрите (ледПин, ЛОВ);
кашњење (100);
дигиталВрите (ледПин, ХИГХ);
кашњење (100);
дигиталВрите (ледПин, ЛОВ);
кашњење (200);
}
воид лооп () {
ако је (к == 0) {
блинктвице (); // промпт за код
}
ако је (к == 8) {
дигиталВрите (ледПин, ХИГХ);
кашњење (3000);
к је 0;
}
а = дигитално читање (ина); // читање нивоа сигнала са тастера - притиснуто / не притиснуто
б = дигитално читање (инб);
ц = дигитално читање (инц);
кашњење (100); // нект иф - заштиту од лажних позитивних вредности не можете користити
иф ((дигиталРеад (ина) == а) && (дигиталРеад (инб) == б) && (дигиталРеад (инц) == ц)) {
иф (а == кеиа [к]) {
ако је (б == тастер [к]) {
ако је (ц == кеиц [к]) {
к ++;
}
}
}
}
ако је (к == 1) {
ако је (д == 0) {
време = милис ();
д ++;
}
}
темп = миллис ();
темп = темп - време;
иф (темп> 10000) {
к је 0;
д је 0;
време = милис ();
}
}
Да бисте избегли непотребна питања о коду, неке тачке би требало разјаснити. Функција подешавања користи се за доделу портова. Сљедећа функција је Инпут_Пуллуп, што је потребно за повећање напона пина за 5 В. То се врши помоћу отпорника. Због тога неће доћи до разних кратких спојева. За већу удобност препоручује се коришћење функције блинктвице. Када креирате разне програме, генерално морате испробати друге функције.
Након додељивања функција, сигнал се чита из портова. Ако притиснете дугме, тада ће бити означено бројем 1, а ако не - 2. Затим, анализа свих вредности. На пример, постојала је таква комбинација као 0,1,1. То значи да је први тастер притиснут, а друга два нису. Ако су све вредности тачне, онда је и услов 8 тачан. О томе говори светла ЛЕД на предњем панелу. Затим морате унијети одређени код који ће служити за отварање врата.
Последњи елементи кода користе се за ресетирање бројача. Таква функција се изводи ако је прошло више од 10 секунди од последњег притиска на тастер.Без овог кода могли бисте проћи кроз све могуће опције иако их има пуно. Након креирања овог уређаја, морате да га тестирате.