рд╣рдо Arduino рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧреА рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд┐рдЯрд▓ рд▓реИрдм рдХрд┐рдЯ NR05 рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ ред
рд╣рдорд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдПрдХ рддреИрдпрд╛рд░ рдбрд┐рдЬрд╛рдЗрди рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдХреЛрдб рд▓реЙрдХ рдХреЗ рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЪрд┐рддреНрд░рдг рдФрд░ рдмрд╛рд╣рд░реА рдкреНрд▓рдЧ-рдЗрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЖрдкрдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЙрдХ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рдпрд╛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЬреНрдЮрд╛рди рдХреЗ рд╕реНрддрд░ рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИредрд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рддрдереНрдп рдХрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдмреЛрд░реНрдб, рдЬреЛ рд╕реЗрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдореЗрдВ рджреЛ-рдкрдВрдХреНрддрд┐ рд╡рд╛рд▓рд╛ рддрд░рд▓ рдХреНрд░рд┐рд╕реНрдЯрд▓ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде 5 рдмрдЯрди рднреА рд╣реИрдВред рд╣рдо рд╕рдВрдпреЛрдЬрди рд▓реЙрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВредрдЖрдЗрдП рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдмрдирд╛рддреЗ рд╣реИрдВ:1. рд▓реЙрдХ рдЦреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 5 рдмрдЯрди рд╣реИрдВ;2. рдмрд╛рдИрдВ рдУрд░ рдХрд╛ рдмрдЯрди рдХреЛрдб 1 рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ - 2,3,4,5;3. рдЗрдирдкреБрдЯ рдХреЛрдб рдХреЗ рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд┐рд╕реА рднреА (рдЙрдЪрд┐рдд рд╕реАрдорд╛ рдХреЗ рднреАрддрд░) рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдмрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ;4. рдбрд╛рдпрд▓ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;5. рдпрджрд┐ рджрд░реНрдЬ рдХреЛрдб рдЕрдиреБрдХрд░рдгреАрдп рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрд╡рдзрд┐ рдХрд╛ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЖрд╡реЗрдЧ actuator рдХреЛ рдЖрдкреВрд░реНрддрд┐ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;6. рдпрджрд┐ рдХреЛрдб рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ;7. рдпрджрд┐ рдЖрдк рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдб рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдбрд╛рдпрд▓ рдХрд┐рдП рдЧрдП рдорд╛рди рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред8. рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЗрдВ рдЖрд░рдЬреАрдмреА рдПрд▓рдИрдбреА рдФрд░ рдХрд┐рдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдзреНрд╡рдирд┐ рдПрдорд┐рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред9. рд╣рдо 12 рд╡реЛрд▓реНрдЯ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрд▓реЗрдХреНрдЯреНрд░реЛрдореИрдХреЗрдирд┐рдХрд▓ рд▓реЙрдХ рдЦреЛрд▓реЗрдВрдЧреЗредрдЕрдм рд╣рдо рдЙрд╕ рдЙрдкрдХрд░рдг рдХреЛ рдЙрдард╛рддреЗ рд╣реИрдВ рдЬреЛ рд▓реЙрдХ рдХреЛ рдЙрджреНрдШрд╛рдЯрди рд╡реЛрд▓реНрдЯреЗрдЬ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╡реЛрд▓реНрдЯреЗрдЬ, рдЗрд▓реЗрдХреНрдЯреНрд░реЛрдореИрдХреЗрдирд┐рдХрд▓ рд▓реЙрдХ рдХреЗ рдкрд╛рд╕рдкреЛрд░реНрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЬрд┐рд╕реЗ рд╣рдо рдЦреЛрд▓реЗрдВрдЧреЗ, рд▓рдЧрднрдЧ 1 рдореАрдЯрд░ рдХреА рджреВрд░реА рдкрд░ 12 рд╡реЛрд▓реНрдЯ рд╣реИред NR05 рдХрд┐рдЯ рд╡рд┐рд╕реНрддрд╛рд░ рдмреЛрд░реНрдб рдРрд╕реЗ рд╡реЛрд▓реНрдЯреЗрдЬ рдФрд░ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдорд╛рд╕реНрдЯрд░ рдХрд┐рдЯ , рдпрд╛ рд░рд┐рд▓реЗ рдЗрдХрд╛рдЗрдпреЛрдВ MP2211 , MP4411 рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд MP515 рд░рд┐рд▓реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВрдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рди рдХреЗрд╡рд▓ рд▓реЙрдХ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЕрдиреНрдп рдЙрдкрдХрд░рдг рднреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджрд░рд╡рд╛рдЬрд╛ рдЦреЛрд▓рдиреЗ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдЪрд╛рд▓реВ рдХрд░реЗрдВред рдпреЗ рд╕рднреА рдЙрдкрдХрд░рдг Arduino рдирд┐рдпрдВрддреНрд░рдг рд╕рдВрдХреЗрдд рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИрдВред рд╣рдорд╛рд░реЗ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо MP2211 - рджреЛ рд░рд┐рд▓реЗ рдХреЗ рд╕рд╛рде рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВредрдЙрдкрд░реЛрдХреНрдд рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗ:
рдпрджрд┐ рдЖрдк рд╡рд┐рд╕реНрддрд╛рд░ рдмреЛрд░реНрдб рдХреЗ рдЕрдВрдХрди рдХреЛ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЧреНрд░реАрди рдЖрд░рдЬреАрдПрди рдПрд▓рдИрдбреА рдХрд╛ рдЧреНрд░реАрди рдЪреИрдирд▓ рдФрд░ рд╕реАрдПрдЪ 3 рд░рд┐рд▓реЗ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдбреА 9 рдЕрд░реБрдбрд┐рдиреЛ рдиреИрдиреЛ рдХреЗ рдПрдХ рдкрд┐рди рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рд▓реЗ рдирд┐рдпрдВрддреНрд░рдг рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдЗрдирдкреБрдЯ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЙрдЪреНрдЪ рдЗрдирдкреБрдЯ рдкреНрд░рддрд┐рд░реЛрдз рд╣реИ, рдФрд░ рдкрд┐рди рдбреА 9 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдПрдХ рдбрд┐рдЬрд┐рдЯрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдкрдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдмреЛрд░реНрдб рдХреЗ рдкрд┐рди рдПрдХ рд╣реА Arduino рдкрд┐рди рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ рдФрд░ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрдЪреЗрдВредрдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рддрд╛рд▓рд╛ рдХрд╛рдлреА рдЪрд╛рд▓реВ рдЦрдкрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕рд░реНрдХрд┐рдЯ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВредрдпрд╣рд╛рдБ рдПрдХ рдмрд┐рдЧрд╛рдбрд╝рдиреЗ рд╡рд╛рд▓реЗ Arduino рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕реНрдХреЗрдЪ рд╣реИ// RGB-
// NR05
//-------------------------------------------------------------------
// LiquidCrystalRus
#include <LiquidCrystalRus.h>
#include <LineDriver.h>
#include <LiquidCrystalExt.h>
// RGB-
#define red 5
#define blue 6
#define green 9
#define beep 12
// ,
#define NUM_KEYS 5
// ( )
int adcKeyVal[NUM_KEYS] = {30, 150, 360, 535, 760};
///////////////////////////////////////////////////////////
// ,
#define codeLength 6
// , , . codeLength
const int codeOrigin[codeLength] = {1, 2, 3, 4, 5, 3};
// ,
const int unlockTime = 400;
///////////////////////////////////////////////////////////
//
int codePressed[codeLength];
// ( )
int pressCount;
//
unsigned long oldTime;
unsigned long currentTime;
const int timeout = 5; // , .
//-----------------------------------------------------------------------
// , RS,EN,DB4,DB5,DB6,DB7
LiquidCrystalRus lcd(A1, A2, A3, 2, 4, 7);
//-----------------------------------------------------------------------
// 1 Arduino
void setup()
{
// LCD: 16 2
lcd.begin(16, 2);
// ()
// ┬л ┬╗
lcd.print(┬л ┬╗);
//
lcd.setCursor(0,1);
lcd.print(┬лt.: тАЮ);
lcd.print(unlockTime);
lcd.print(тАЬ ┬╗);
// 2000 = 2
delay(2000);
//
lcd.clear();
//
pressCount = 0;
// ┬л ┬╗ RGB-
pinMode(red, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(green, OUTPUT);
pinMode(beep, OUTPUT);
}
//-----------------------------------------------------------------------
// setup .
void loop() {
// ( ),
currentTime = millis();
// ,
if (currentTime тАФ oldTime <= timeout*1000){
// key
int key;
// , get_key
key = get_key();
lcd.setCursor(0, 0);
lcd.print(┬л :┬╗);
//
digitalWrite(blue, HIGH);
if (key > 0){ //
codePressed[pressCount] = key; //
// (50 )
digitalWrite(beep, HIGH);
delay(50);
digitalWrite(beep, LOW);
// ,
lcd.setCursor(pressCount, 1);
lcd.print('*');
digitalWrite(blue, LOW);
delay(200);
digitalWrite(blue, HIGH);
pressCount++; //
//
oldTime = currentTime;
}
}
// ,
else{
pressCount = 0;
lcd.clear();
oldTime = currentTime;
}
// , : codeOrigin codePressed
if (pressCount == codeLength){
int compareResult = 1;
for (int i = 0; i < codeLength; i++)
if (codeOrigin[i] != codePressed[i])
compareResult = 0; //
//
if (compareResult == 1){ //
digitalWrite(blue, LOW);
digitalWrite(green, HIGH);
lcd.setCursor(0, 0);
lcd.print(┬л тАЮ);
delay(unlockTime);
digitalWrite(green, LOW);
pressCount = 0;
delay(1000);
lcd.clear();
digitalWrite(blue, HIGH);
}
//
else {
lcd.setCursor(0, 1);
lcd.print(тАЬ ┬╗);
digitalWrite(blue, LOW);
digitalWrite(red, HIGH);
digitalWrite(beep, HIGH);
delay(2000);
pressCount = 0;
lcd.clear();
digitalWrite(beep, LOW);
digitalWrite(blue, HIGH);
digitalWrite(red, LOW);
}
}
}
//-----------------------------------------------------------------------
//
// ,
// ,
int get_key()
{
int input = analogRead(A6);
int k;
for(k = 0; k < NUM_KEYS; k++)
if(input < adcKeyVal[k])
return k + 1;
return 0;
}
//
рд╕реНрдХреЗрдЪ рд╕реВрдЪреА рдЖрдкрдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИредрдлрд┐рд░ рднреА, рд╣рдо рдЗрд╕рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВредрдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦрд╛ рдерд╛, рд╡рд┐рд╕реНрддрд╛рд░ рдмреЛрд░реНрдб рдореЗрдВ рдПрдХ рдмрдЯрди рдХрдиреЗрдХреНрд╢рди рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ Arduino рдкрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдРрд╕реА рдпреЛрдЬрдирд╛ рдорд╛рдЗрдХреНрд░реЛрдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдмрдЪрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдмрдЯрди рдХреЗ рдПрдХ рд╕рд╛рде рджрдмрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рд╕реНрдХреЗрдЪ рдХреЗ рдЕрдВрдд рдореЗрдВ get_key рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЗрдЦреЗрдВред рдпрджрд┐ рдХреЛрдИ рдмрдЯрди рджрдмрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди 0 рджреЗрддрд╛ рд╣реИ, рдпрджрд┐ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджрдмрд╛рдП рдЧрдП рдмрдЯрди рдХреА рд╕рдВрдЦреНрдпрд╛редрджреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рднреА рджреЗрдЦреЗрдВ: рд╕рдВрджрд░реНрдн рдФрд░ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдХреЛрдб:int ComparResult = 1;for (int i = 0; рдореИрдВ <codeLength; i ++)рдЕрдЧрд░ (codeOrigin [i]! = codePressed / i])рддреБрд▓рдирд╛ред рдХреБрд▓ = реж; // рдпрджрд┐ рддрддреНрд╡реЛрдВ рдХреА рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЬреЛрдбрд╝реА рд╕рдорд╛рди рдирд╣реАрдВрд╣реИ, рддреЛ рдЗрд╕ рддрд░рд╣ рдХреА рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╕рд╡рд╛рд▓ рдЕрдХреНрд╕рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдордВрдЪреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд░ рдмрд╛рд░ рдпрд╣ рдПрдХ рддрддреНрд╡ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рд╣реА рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╕рд╛рде рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рддрддреНрд╡ рд╕рдорд╛рди рд╣реИрдВ, рдФрд░ 0 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рддреБрд▓рдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЪрд░ 1 рдХреЗ рдмрд░рд╛рдмрд░ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рддрддреНрд╡реЛрдВ рдХрд╛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЬреЛрдбрд╝рд╛ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИредрд╕рд┐рд░рд┐рд▓рд┐рдХ рдкрд╛рддреНрд░реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд▓рд┐рдпрд╛ рдбреЗрдирд┐рд▓реЛрд╡ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рд▓рд┐рдХреНрд╡рд┐рдбрдХреНрд░рд┐рд╕реНрдЯреНрд░рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд╕реНрдХреЗрдЪ рдХреЗ рд╢реАрд░реНрд╖рдХ рдореЗрдВ рддреАрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:#include <LiquidCrystalRus.h>#include <LineDriver.h>#include <LiquidCrystalExt.xt>рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдЖрд░рдВрднреАрдХрд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:рд▓рд┐рдХреНрд╡рд┐рдбрдХреНрд░рд┐рд╕реНрдЯреНрд░рд╕ рдПрд▓рд╕реАрдбреА (рдП 1, рдП 2, рдП 3, 2, 4, 7);рдЗрдирдкреБрдЯ рдХреЛрдб рдХреА рд▓рдВрдмрд╛рдИ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреЛрдбрдкреНрд░рддреНрдпрдХреНрд╖рддрд╛ рд╕реНрдерд┐рд░рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЫрд╣-рдХреНрд▓рд┐рдХ рдХреЛрдб#define codeLength 6рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА 6-рдХреНрд▓рд┐рдХ рдХреЛрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЧрдИ рд╣реИ:const int codeprigin [codeLength] = {1, 2, 3, 4, 5, 3} ;рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдореЗрдВ рдорд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛрдб-рд╕реНрдкреАрдб рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЕрдзрд┐рдХ рдорд╛рди рд╣реИрдВ, рддреЛ рд╕рдВрдХрд▓рдХ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛; рдпрджрд┐ рдХрдо рд╣реИрдВ, рддреЛ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдорд╛рдиреЛрдВ рдХреЛ рд▓рд╛рдкрддрд╛ рддрддреНрд╡реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдХреЛрдб рдХреЛ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬреЛ рд▓реЙрдХ рдЦреЛрд▓ рджреЗрдЧрд╛редрд╣рд░ 5 рд╕реЗрдХрдВрдб рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдХреЛрдб рддрддреНрд╡реЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рджрдмрд╛рдиреЗ рдХрд╛ рд╕рдордп рдпрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд╛рдВрдЪ-рд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреА рдЙрд▓рдЯреА рдЧрд┐рдирддреА рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдпрд╣ рдмрд┐рд▓реНрдЯ-рдЗрди рдлрд╝рдВрдХреНрд╢рдВрд╕ рдорд┐рд▓рд┐рд╕ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдХреЗрдЪ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрд╛рдж рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛, рдФрд░ рдЪрд░ рдкреБрд░рд╛рдиреЗ рд╕рдордп рдФрд░ рдХрд░рдВрдЯ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИредрдпрд╣рд╛рдБ рдПрдХ рдЫреЛрдЯрд╛ рд╡реАрдбрд┐рдпреЛ рдХреЛрдб рд▓реЙрдХ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдФрд░ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реНрдХреЗрдЪ рдХреЗ рд╕реНрд╡-рдЕрдВрддрд┐рдордХрд░рдг рдФрд░ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдорд╛рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╡рд┐рдЪрд╛рд░ рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдорд╣рд▓ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдПрдХ рдорд╛рд╕реНрдЯрд░ рдХреЛрдб рджрд░реНрдЬ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рд▓реЙрдХ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЛрдб рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░реЗрд╕ рдХрд┐рдП рдЧрдП рдмрдЯрдиреЛрдВ рдХреЛ рдПрдХ рд╕рдВрджрд░реНрдн рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛рдж рд░рдЦрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╕реНрдХреЗрдЪ рдореЗрдВ рдЗрд╕ рдХреЛрдб рдХреЛ рди рдмрджрд▓реЗрдВред рдпрджрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рд╕реЗ рдЕрдзрд┐рдХ рдХреНрд▓рд┐рдХреНрд╕ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░рд╛рд▓ рд╣реЛ рддреЛ рдПрдХ рдирдпрд╛ рдХреЛрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИредрдпрд╛, рдмреНрд▓реВрдЯреВрде рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЗ рд╕рд╛рде Arduino рдХреА рдмрд╛рддрдЪреАрдд рдкрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ , рдПрдХ рд▓реЙрдХ рдмрдирд╛рдПрдВ рдЬреЛ рдЗрд╕ рдмрд╣реБрдд рд╣реА рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЧрдП рдХреЛрдб рдХреЗ рд╕рд╛рде рдЦреБрд▓рддрд╛ рд╣реИредрдЖрдк рдмрд╕ рд╣рдорд╛рд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╡рд╛рдпрд░рд▓реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдЪреИрдирд▓ рднреА рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреЛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ: рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░-рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ MP910 рдФрд░ рд░рд┐рд▓реЗ рдЖрдЙрдЯрдкреБрдЯ MP911 рдХреЗ рд╕рд╛рде рдПрдХрд▓-рдЪреИрдирд▓ рд░рд┐рд╕реАрд╡рд░ , 433 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред MP2211 рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░рд┐рд▓реЗ рд╕рдВрдкрд░реНрдХ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдкрд░ рдмрдЯрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рдФрд░ рд░рд┐рд╕реАрд╡рд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд░рд┐рд▓реЗ рд▓реЙрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдирд┐рдпрдВрддреНрд░рдг рджреВрд░реА 100 рдореАрдЯрд░ рддрдХ рд╣реЛ рд╕рдХрддреА рд╣реИредArduino рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВ, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ рдЙрдирдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВ - рдФрд░ рдЖрдк рдХрдИ рд╕реНрдорд╛рд░реНрдЯ рдФрд░ рдЙрдкрдпреЛрдЧреА рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ!