рдореЗрд░рд╛ рдШрд░ рд╕реНрд╡рдЪрд╛рд▓рди рдкреНрд░рдгрд╛рд▓реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореИрдВрдиреЗ рд╣реЛрдо рдСрдЯреЛрдореЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИрдмреЗрд░рд╛ рдкрд░ рд▓реЗрдЦ рдкрдврд╝рд╛, рдореИрдВ рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдореИрдВ 2 рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░реА рд╕реНрдерд┐рддрд┐ рдХреА рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкрд░рд┐рдЪрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рддреАрди рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореЗрд░рд╛ рдкрд░рд┐рд╡рд╛рд░ рдФрд░ рдореИрдВ рдПрдХ рдирдП рддреАрди-рдХрдорд░реЗ рдХреЗ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ (67.5 рд╡рд░реНрдЧрдореАрдЯрд░) рдореЗрдВ рдЪрд▓реЗ рдЧрдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдкреБрд░рд╛рдиреЗ рдореЗрдВ рд╣реИ - рд╕реНрдЯрд╛рд▓рд┐рди, 1946 рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдШрд░ред рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рддрд╛рдВрдмреЗ рдХреЗ рдлрдВрд╕реЗ рд╣реБрдП рдХреЗрдмрд▓ 1 рд╡рд░реНрдЧрдореАрдЯрд░ рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдПрд▓реНрдпреВрдореАрдирд┐рдпрдо рджреЛ-рддрд╛рд░ рд╡рд╛рдпрд░рд┐рдВрдЧред рдУрд╡рд░рд╣рд╛рд▓ рдЖрдЧреЗ рдерд╛, рдореИрдВрдиреЗ рдЦреБрдж рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рддрд╛рд░реЛрдВ рдХреЗ рдкреВрд░реНрдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓рд╛рдЗрдЯрд┐рдВрдЧ рдФрд░ рд╕реЙрдХреЗрдЯреНрд╕ 1.5 рдФрд░ 2.5 рд╡рд░реНрдЧрдореАрдЯрд░, рдЯреНрд╡рд┐рд╕реНрдЯреЗрдб рдкреЗрдпрд░ рдмреЗ, рдЯреЗрд▓реАрд╡рд┐рдЬрди рдПрдВрдЯреЗрдирд╛ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рд╛ рдХреЙрдХреНрд╕ (рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ) рдХреЗ рд▓рд┐рдП 700 рдореАрдЯрд░ рдкрд╛рд╡рд░ рдХреЗрдмрд▓ рдЦрд░реАрджреАред рдХреНрдпреЛрдВ рдЗрддрдирд╛ рдФрд░ рдХреНрдпрд╛ рдЖрдпрд╛ - рдореИрдВ рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрдирд╛ред

рдореИрдВрдиреЗ рд╡рд╛рдпрд░рд┐рдВрдЧ рдХреЛ рддреБрд░рдВрдд рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЕрд░реНрдерд╛рддреН: рд╡рд┐рддрд░рдг рдмрдХреНрд╕реЗ рдХреЗ рдмрд┐рдирд╛, рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рд╕реЗ рдХреЗрдмрд▓ рдврд╛рд▓ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ (рдЖрдЙрдЯрд▓реЗрдЯ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде, рдЬреЛ 2-3 рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рдореВрд╣ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреЗрдмрд▓ рдЪрд░рдо рд╕реЗ рдврд╛рд▓ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╛рдХреА рдПрдХ рд▓реВрдк рджреНрд╡рд╛рд░рд╛ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ) - рдЯреАред рдЗред рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреЗрдмрд▓ рдХреЛ рдврд╛рд▓ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд╢ рдмрд┐рдВрджреБ рд╕реЗ рдЕрдкрдиреА рдЦреБрдж рдХреА рдХреЗрдмрд▓ рдХреЛ рдврд╛рд▓ рдореЗрдВ, рдмрд╕ рдЖрд░рдЬреЗ -45 рдЕрдВрдХ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рд╕рд╛рде рд╕реЙрдХреЗрдЯ рдХреЗ рдкрд╛рд╕, рдорд╛рдорд▓реЗ рдореЗрдВред рдмреЗрд╢рдХ, рдХрдИ рдХреЗрдмрд▓ рд╣реИрдВред рдХрд╣реАрдВ рдпрд╣ рдордВрдЬрд┐рд▓ рдХреЗ рд╕рднреА рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдореЗрдВ рдлрд░реНрд╢ рдореЗрдВ рд░рдЦреА рдЧрдИ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд░реНрд╕рд░реА рдореЗрдВ:



рдХрд╣реАрдВ - рдХрд╣реАрдВ, рдЫрдд рдкрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреЗрдбрд░реВрдо рдХреЗ рджрд░рд╡рд╛рдЬреЗ рдХрд╛ рджреГрд╢реНрдп:



рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдЧрд▓рд┐рдпрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдХреЗрдмрд▓ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдврд╛рд▓ рд╕реНрдерд┐рдд рд╣реЛрдЧреА, рдФрд░ рд╡реЗ рдЖрдкрдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдкрдХреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рдпреЛрдЬрдирд╛ рдХреЛ рдмрджрд▓рдирд╛ рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рд▓рдЧреЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдорд░рдореНрдордд рдХреЛ рдЦрд░рд╛рдм рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рднреА рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдХреБрд░реНрд╕рд┐рдпрд╛рдВ тАЛтАЛрдмрдирд╛рдИ рдЧрдИрдВ - рдкреВрд░реЗ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 90 рдЕрдВрдХред

рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЕрд╕реНрдерд╛рдпреА "рдврд╛рд▓" рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рджреМрд░рд╛рди рджрд┐рдЦрддрд╛ рдерд╛: рдПрдХ



рднрдпрд╛рдирдХ рджреГрд╖реНрдЯрд┐, рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ рдФрд░ рдЗрд╕ рд░реВрдк рдореЗрдВ рдпрд╣ рд░рд╛рдХреНрд╖рд╕ рдХрдИ рдорд╣реАрдиреЛрдВ рддрдХ рд░рд╣рддрд╛ рдерд╛ред рдПрдХ рдмрдврд╝рд┐рдпрд╛ рджрд┐рди, рд╕рд┐рддрд╛рд░реЛрдВ рдХрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЧрдарди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрдЪреНрдЫрд╛рдзрд╛рд░реА рдирд┐рд░реНрдгрдп рджреНрд╡рд╛рд░рд╛ рдврд╛рд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЫрдд (рдФрд░ рд╕реНрдЯрд╛рд▓рд┐рди 3 рдореАрдЯрд░ рдореЗрдВ рдЫрдд) рдХреЗ рдиреАрдЪреЗ рдПрдХ рджреБрд░реНрд▓рдн рд╕реАрдврд╝реА рдкрд░ 3 рджрд┐рди рд▓рдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдерд╛ред рдЗрд╕рдХреЗ рдмрд╛рдж рдбреИрд╢рдмреЛрд░реНрдб рдХреИрд╕рд╛ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧрд╛:



рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдп:



рдпрд╣ рдврд╛рд▓ рдХреЗ рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ, рдЕрднреА рднреА рдкрд░реНрдпрд╛рдкреНрдд рдЖрд░рд╕реАрдбреА рдирд╣реАрдВ рд╣реИ, рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ 3 рдЧреБрдирд╛ рдХрдо рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рд╣реИрдВ, рдХреЛрдИ рдкрд▓реНрд╕ рд░рд┐рд▓реЗ рдирд╣реАрдВ рд╣реИрдВ - рд▓реЗрдХрд┐рди рдЧреИрд░-рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ, рд╕рднреА рдХреЗрдмрд▓ рдЯрд░реНрдорд┐рдирд▓реЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдЪрдпрдирд╛рддреНрдордХрддрд╛ рд╣реИрдВред

рдЕрдм рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдареАрдХ-рдареАрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рд┐рд╕реНрдЯрдо рдХреЗ "рджрд┐рдорд╛рдЧ" рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЧреЗ рдХреА рд╣рд▓рдЪрд▓ рдХреЗ рдмрд┐рдирд╛, рдореИрдВрдиреЗ рдЖрд░реНрдбрд┐рдиреЛ рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 2 рдлреНрд░реАрдбреНрдпреВрдЗрдиреЛ рдмреЛрд░реНрдб, 2 рдИрдерд░рдиреЗрдЯ рд╢реАрд▓реНрдб рдФрд░ рдПрдХ рдореЛрдЯрд░ рд╢реАрд▓реНрдб рдереА рдЬреЛ рдореИрдВрдиреЗ рдЙрд╕рд╕реЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдЦрд░реАрджреА рдереАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЪреАрдиреА рд╕реЗ 4 рдЯреБрдХрдбрд╝реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдХрдИ рд░рд┐рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ред рдФрд░ рдореИрдВрдиреЗ рдпрд╣ рднреА рдкрд╛рдпрд╛ рдХрд┐ рдУрдмреЗрд░ рдореЗрдВ рд╣реИрдмреЗ рдкрд░ рдПрдХ рд▓реЗрдЦ рдХреА рд╕рд▓рд╛рд╣ рдкрд░, рд╕реНрд╡рд┐рдЪ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╕реНрдкреНрд░рд┐рдВрдЧреНрд╕ рдбрд╛рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рдереЗ рдФрд░ рд╡реЗ рдмрд┐рдирд╛ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреЗ рд╕реНрд╡рд┐рдЪ рдореЗрдВ рдмрджрд▓ рдЧрдПред рдпрд╣ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рдЬреАрд╡рди рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╕рд╛рде рдирд┐рдХрдЯрддрд╛ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реВрдВред рдЙрдиреНрд╣реЛрдВрдиреЗ рдлрд░ рдЪрдЯрд╛рдИ рд╕рдорд╛рдкреНрдд рдХреА, рдЬрд┐рд╕ рдкрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рд┐рд░реНрдл рд▓рд┐рдЦрд╛ рдирд╣реАрдВ рд╣реИ - рдкрд╛рд╕реНрдХрд▓, рд╕реА #, рд╕реА ++, 1 рд╕реА, рдкреАрдПрдЪрдкреА, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ - рдЖрдк рдЕрднреА рднреА рдмрд╣реБрдд рд╕реВрдЪреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрдм рдореИрдВ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЖрдИрдкреА-рдЯреЗрд▓реАрдлреЛрдиреА рд╕реЗ рднреА рдирд┐рдкрдЯрддрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХреНрд╕ "рдЖрдкрдХреЗ рд▓рд┐рдП" рдХреЗ рд╕рд╛рде, рдореИрдВ рд╕рд░рд▓ рдЪреАрдЬреЛрдВ рдХреЛ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдФрд░ рдЬрд╛рдирддрд╛ рд╣реВрдВ, рдФрд░ рдЬрдм рдпрд╣ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░, рдлрд╝реНрдпреВрдЬрд╝, рд╕рдВрдкрд░реНрдХ рдЙрдЫрд╛рд▓ - рдпрд╣ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрд╡рддрд╛ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдмрд░реНрддрди рдЬрд▓рд╛рддреЗ рд╣реИрдВ, рдЖрдБрдЦреЗрдВ рдбрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рд╛рде рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВ рдкреГрдереНрд╡реА рдХреЛ рдЖрд░реНрджреБрдЗрдиреЛ рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХреЗ рдЗрдирдкреБрдЯ рдореЗрдВ рдлрд╝реАрдб рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ рд╕реНрд╡рд┐рдЪ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЖрд░реНрдХрдбрд┐рдиреЛ рдкрд░ рдПрдирд╛рд▓реЙрдЧ рдкрд┐рди рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдбрд┐рдЬрд┐рдЯрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ)ред рдореИрдВ рд░рд┐рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдкрд┐рди рдХреЗ рд╕рд╛рде рдЖрд░реНрдбрд┐рдиреЛ рдХреЗ рдкрд┐рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВред рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рдЬрдм рдЖрдк рд╕реНрд╡рд┐рдЪ рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ arduino рд╡рд╛рдВрдЫрд┐рдд рдкрд┐рди рдкрд░ LOW рдорд╛рди рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рд░рд┐рд▓реЗ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЬреБрдбрд╝реЗ рдкрд┐рди рдкрд░ LOW рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИредрдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдореЗрдВ рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рд╕рднреА рдХреЗрдмрд▓ рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдкрд░ рдЖрддреЗ рд╣реИрдВ - рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЬреНрдпрд╛рджрд╛ рд╕рдордп рдирд╣реАрдВ рд▓рдЧрд╛ред
рд╕рдВрдкрд░реНрдХреЛрдВ рдХреА рдЙрдЫрд╛рд▓ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╡рд┐рд╖рдп рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдмрд╛рдЙрдВрд╕ 2 рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рд╢реБрд░реВ рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рддрд╛рдХрд┐ рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо 2 рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдХрдо рд╕реЗ рдХрдо 22. рдпрд╣ рд╡рд╣ рдХрд╛рд░реНрдп рдерд╛ рдЬрд┐рд╕рдиреЗ рдкреВрд░реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЖрдзрд╛рд░ рдмрдирд╛рдпрд╛ рдерд╛ред рдареАрдХ рд╣реИ, рдЕрдм рд╢рдмреНрджреЛрдВ рд╕реЗ рдХреЛрдб рддрдХред рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рднреА рдХреЛрдб рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЧреАрдердм рдХреЗ рд▓рд┐рдВрдХ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣реЛрдВрдЧреЗред рдореИрдВ рдЕрдкрдиреА рджреГрд╖реНрдЯрд┐ рд╕реЗ, рдХреНрд╖рдгреЛрдВ рдореЗрдВ, рдХреЗрд╡рд▓ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЪрд░ рдХреА рдШреЛрд╖рдгрд╛:

#include <Bounce2.h>
#include <EEPROM.h>

const byte cnt = 8;
const byte pin_cnt = 19;

int pins[] = {11,12,13,13,14,15,16,17};
int leds[] = {6, 3, 4, 5, 3, 4, 5, 3};

byte init_leds[cnt] ;
byte init_buttons[cnt];
int button_states[cnt];
Bounce debouncers[cnt];
unsigned long buttonPressTimeStamps[cnt];
boolean changed[cnt];

рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ: рдпрд╣ рд▓реИрдВрдк / рд╕реНрд╡рд┐рдЪ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдирд┐рд░рдВрддрд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдирдП рд╕рдВрдШреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ - рдФрд░ рдпрд╣ рд╕рдм, рдПрдХ рдирдпрд╛ рджреАрдкрдХ рдпрд╛ рд╕реНрд╡рд┐рдЪ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдХреЛрдб рд╕рдВрд░рдЪрдирд╛ рдПрдХ рд╕реНрд╡рд┐рдЪ рдХреЛ рдХрдИ рдЬреБрдбрд╝рдирд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдпрд╛ рдХрдИ рд╕реНрд╡рд┐рдЪ рддреБрд░рдВрдд рдПрдХ рджреАрдкрдХ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд╡рд┐рдЪ рдХреЗ рд▓рд┐рдП, рдмрд╛рдЙрдВрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЕрдкрдирд╛ рдЙрджрд╛рд╣рд░рдг рдПрдВрдЯреА-рдмрд╛рдЙрдВрд╕ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реЗрдЯрдЕрдк рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рд╕рднреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд▓реНрдпреВрдорд┐рдиреЗрдпрд░реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЧреИрд░-рд╡рд╛рд╖реНрдкрд╢реАрд▓ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЬрдм рдХреЛрдИ рдмрд┐рдЬрд▓реА рдХреА рд╡рд┐рдлрд▓рддрд╛ рдпрд╛ рд░рд┐рдмреВрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдерд╛ред

  for(byte i=0; i<cnt; i=i+1) {
    EEPROM.write(pins[i], 10);
  }

  for(byte i=0; i<cnt; i=i+1) {
    button_states[i] = 0;
    
    byte value = EEPROM.read(leds[i]);
    if(value==11) {
      init_leds[i] = LOW ;
    }else{
      init_leds[i] = HIGH ;
    }
    init_buttons[i] = HIGH;
    buttonPressTimeStamps[i] = 0;
    changed[i] = false;

    debouncers[i] = Bounce();

    pinMode(pins[i], INPUT);
    pinMode(leds[i], OUTPUT);
    
    digitalWrite(pins[i], init_buttons[i]);
    digitalWrite(leds[i], init_leds[i]);
    
    debouncers[i].attach( pins[i] );
    debouncers[i].interval(5);
  }

рдореИрдВ рдкрд╣рд▓реЗ рдЪрдХреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛, рд╣рдо рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдЙрд╕рдореЗрдВ рд▓реМрдЯ рдЖрдПрдВрдЧреЗред рдФрд░ рдореБрдЦреНрдп рдЪрдХреНрд░ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

void loop(){
  for(byte i=0; i<cnt; i=i+1){
    byte dvalue = EEPROM.read(pins[i]);
    if(dvalue!=11) {
      changed[i] = debouncers[i].update();
      
      if ( changed[i] ) {
        int value = debouncers[i].read();
        if ( value == HIGH) {
         button_states[i] = 0;   
        } else {
           if (i > 0 and pins[i] == pins[i-1]) {
             byte prev_value = EEPROM.read(leds[i-1]);
                            
             if(prev_value == 11) {
               digitalWrite(leds[i], LOW );
               EEPROM.write(leds[i], 11);
             }else{
               digitalWrite(leds[i], HIGH);
               EEPROM.write(leds[i], 10);
             }
           } else {               
             byte value = EEPROM.read(leds[i]);
             if(value==11) {
               digitalWrite(leds[i], HIGH );
               EEPROM.write(leds[i], 10);
             }else{
               digitalWrite(leds[i], LOW);
               EEPROM.write(leds[i], 11);
             }
           }
                 
           button_states[i] = 1;
           buttonPressTimeStamps[i] = millis();     
        }
      }
   
      if ( button_states[i] == 1 ) {
        if ( millis() - buttonPressTimeStamps[i] >= 200 ) {
            button_states[i] = 2;
        }
      }
    }
  }

  delay( 10 );
} 

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рджреМрд░рд╛рди, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдмрдЪреНрдЪреЛрдВ (рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЙрдирдореЗрдВ рд╕реЗ рддреАрди, рд▓рдбрд╝рдХреЗ рд╣реИрдВ) рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХреБрдЫ рд╕реНрд╡рд┐рдЪ рдмрдВрдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ рддрд╛рдХрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдиреЗ рдЙрдиреНрд╣реЗрдВ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджрд┐рдпрд╛ред рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдкрд┐рди рдХреЛ рдмреЛрд░реНрдб рд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЧрд▓рдд рдФрд░ рдирд┐рд░реНрдмрд╛рдз рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЭрдВрдбреЗ рдХреЛ рдЧреИрд░-рд╡рд╛рд╖реНрдкрд╢реАрд▓ рдореЗрдореЛрд░реА рдореЗрдВ рднреА рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реНрд╡рд┐рдЪ рдЦреБрд▓рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрд╣ рдЗрд╕ рд▓реВрдк рдХреЗ рд╕рд╛рде рдЖрд░рдВрднрд┐рдХ рд╣реИ:

  for(byte i=0; i<cnt; i=i+1) {
    EEPROM.write(pins[i], 10);
  }

  ...

рдФрд░ рдпрд╣рд╛рдВ рдЬрд╛рдВрдЪрд╛ рдЧрдпрд╛:

  for(byte i=0; i<cnt; i=i+1){
    byte dvalue = EEPROM.read(pins[i]);
    if(dvalue!=11) {
    ...

рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕реНрддрд░ рдкрд░, рджреАрд╡рд╛рд░реЛрдВ рдкрд░ рд╕реНрдерд╛рдиреАрдп рд╕реНрд╡рд┐рдЪ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧреЗред рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдШрд░ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдорд╛рд░реНрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЪреВрдВрдХрд┐ рдореИрдВ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдИрдерд░рдиреЗрдЯ рдврд╛рд▓ рдХрд╛рдо рдореЗрдВ рдЖрдпрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдЙрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдирд╣реАрдВ рдорд┐рд▓реЗ рдЬреЛ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд▓рд┐рдП рдИрдерд░рдиреЗрдЯ рдврд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдмреИрдХрдЕрдк рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛, рд╢рд╛рдпрдж рд╡реЗ рд╡рд╣рд╛рдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЕрд░реНрде рдЕрдкрдорд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд┐рдо рдерд╛ред рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЕрдкрдирд╛ рдЖрдИрдкреА рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ arduino рдкрд░ рдмрдврд╝ рд░рд╣рд╛ рдерд╛, рдЬрд┐рд╕рдиреЗ GET рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдкреЛрд░реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рд▓реИрдВрдк рдХреЛ рдЪрд╛рд▓реВ рдпрд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░реНрд╡рд░ рдорджрд░рдмреЛрд░реНрдб рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдЗрдВрдЯреЗрд▓ рдПрдЯрдо, рдЙрдмрдВрдЯреВ рд╕рд░реНрд╡рд░ 14.02 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдорд╛рдирдХ LAMP рд╕реЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛,рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд╣рд╛рдБ рд▓рд┐рдЦрд╛ рд╣реИред рд╕рднреА рд╕реНрд░реЛрдд рднреА рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣реЛрдВрдЧреЗред рдлрд┐рд▓рд╣рд╛рд▓, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд░рд╕реЛрдИ рдореЗрдВ рдПрдХ рджреАрдкрдХ рдЪрд╛рд▓реВ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╕реНрд╡рд┐рдЪ рдмрдВрдж рд╣реИред рдкреНрд░рдмрдВрдзрди рдореЗрдЧрд╛-рд╕рд░рд▓ рд╣реИ - рдмрд╕ рд╡рд╛рдВрдЫрд┐рдд рдЖрдЗрдЯрдо рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИред

рдФрд░ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЕрдЧрд░ рдПрдХ "рд▓реЗрдХрд┐рди" рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдИрдерд░рдиреЗрдЯ рдврд╛рд▓ рд▓рдЧрд╛рддрд╛рд░ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИред рдирд╣реАрдВ, рд╕реНрд╡рд┐рдЪ рд╕реЗ рд╕реНрдерд╛рдиреАрдп рдирд┐рдпрдВрддреНрд░рдг рд╣рдореЗрд╢рд╛ рдПрдХ рдШрдбрд╝реА рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реЗ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рд▓рдЧрд╛рддрд╛рд░ рдЧрд┐рд░рддрд╛ рдЧрдпрд╛ред рдпрджрд┐ рдкреНрд░рдмрдВрдзрди рдиреЗ рдПрдХ рджрд┐рди рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛, рддреЛ рдпрд╣ рдЙрддреНрдХреГрд╖реНрдЯ рдерд╛ред рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдмрд╛рд░, рдврд╛рд▓ рд░рд┐рдмреВрдЯ рдХреЗ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдмрд╛рдж рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд╡рд╣ рд╡реЙрдЪ-рдбреЙрдЧ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдмреЛрд░реНрдбреЛрдВ рдиреЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЪреАрди рдореЗрдВ рдСрд░реНрдбрд░ рджрд┐рдпрд╛ рдФрд░ рд╢реАрд▓реНрдб рдХреЛ рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ - en28j60 рдкрд░ - рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╡реЗ рд╕рдордп-рд╕рдордп рдкрд░ рд▓рдЯрдХрд╛рдП рдЧрдПред рдореИрдВрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдПрдХ рд░рд┐рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝рд╛, рдЙрд╕ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрдВрдж рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд░реНрдбрд┐рдиреЛ рдмреЛрд░реНрдб рдХреА рд╢рдХреНрддрд┐ рд▓рд╛рдИ, рдФрд░ рдПрдХ рдЖрд░реНрдбреВрдЗрди рдмреЛрд░реНрдб рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рд░рд┐рд▓реЗ рдХреЛ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рдФрд░ рдмрд┐рдЬрд▓реА рдХрд╛рдЯ рджреА рдЧрдИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдмрд╣рд╛рд▓ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рднреА рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рдФрд░ рд░рд┐рдмреВрдЯ рдХреЗ рд╕рдордп рдпрд╣ рдЭрдкрдХреА рд▓реЗ рд▓реЗрддрд╛ рдерд╛ред рдмрддреНрддреА рдЬрд▓рд╛рдУ,рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рднреА, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреАред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:



рдФрд░ рдлрд┐рд░ рдИрдерд░рдиреЗрдЯ рдврд╛рд▓ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреНрдпрд╛рдЧрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рдЕрдиреНрдп рджреВрд░рд╕реНрде рдкреНрд░рдмрдВрдзрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХрд░ рджреАред рдореИрдВрдиреЗ Arduins рдХреЛ рд╕реАрдзреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдФрд░ Serial.read () / Serial.print () рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА - рдпрд╣ рд╣рд░ рджреВрд╕рд░реЗ рд╕рдордп рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рдмреЛрд░реНрдб рджреНрд╡рд╛рд░рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд░ рдмрд╛рд░ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╕реНрдерд┐рд░рддрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдИ рдереАред рд╕рд░реНрд╡рд░ рдкрд░ред рдореИрдВрдиреЗ рдРрд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдкрдврд╝рд╛, рдореБрдЭреЗ рдмрд╕ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рдбреАрдЯреАрдЖрд░ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдерд╛, рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдиреНрдп рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдкреЛрд░реНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рдмрд╛рдж, рдореИрдВ USBAsp рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реЗ USB-I2C рдПрдбрд╛рдкреНрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рднрд░ рдЖрдпрд╛ред рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдореИрдВрдиреЗ рдЪреАрдиреА рд╕реЗ рдРрд╕реЗ рдХреБрдЫ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ - рдФрд░ рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛ред

рдФрд░ рдПрдХ рд╣рдлреНрддреЗ рдкрд╣рд▓реЗ рдореЗрд░рд╛ рдкреИрдХреЗрдЬ рдЖ рдЧрдпрд╛ред рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ i2c рдЫреЛрдЯреЗ USB рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рджреЗрдЦрд╛ рдЧрдпрд╛ рдФрд░ рдореИрдВ рдлрд┐рд░ рд╕реЗ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрда рдЧрдпрд╛ред рдпрд╣рд╛рдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдлреАрдЪрд░реНрд╕ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧреЗред рдмреЗрд╢рдХ, рд╕рд░реНрд╡рд░ рдорд╛рд╕реНрдЯрд░ рдерд╛, рдФрд░ рд╕рднреА Arduino рдмреЛрд░реНрдб рджрд╛рд╕ рдереЗред

рдХреЛрдб рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

- рдЕрдиреБрд░реЛрдзрд┐рдд рдкреЛрд░реНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ;
- рдЕрдиреБрд░реЛрдзрд┐рдд рдмрдВрджрд░рдЧрд╛рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ;
- рд╕рднреА рд▓рд╛рдЗрдЯ рдмрдВрдж рдпрд╛ рдмрдВрдж рдХрд░ рджреЗрдВред

рдФрд░ рдореИрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореИрдВ Arduino рдмреЛрд░реНрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП i2c- рдЙрдкрдХрд░рдг рд╕реВрдЯ рд╕реЗ рдорд╛рдирдХ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣ рдПрдХ рдЯреАрдо рд╣реИ

i2cget -y < > <>

рддрдерд╛

i2cset -y < > <> 0x00 <byte >

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдорд╛рдиреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЖрдк рд╢рдмреНрдж рдорд╛рди рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рдпрд╛ рдореБрдЭреЗ рдХрд╣реАрдВ рдЧрд▓рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрдЧрд░ рдореБрдЭреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреЛрд░реНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдкрд╣рд▓реЗ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХрдорд╛рдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдкреЛрд░реНрдЯ рдирдВрдмрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рднреА рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, 2 рдХрдорд╛рдВрдб рднреЗрдЬреЗрдВ, рдФрд░ рдХреЛрдб рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓реЗ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рд▓реЗрдХрд┐рди рдпрд╣ рдмрджрд╕реВрд░рдд рдФрд░ рддрд░реНрдХрд╣реАрди рдерд╛ред

рд╕рдорд╕реНрдпрд╛ рд╕рдВрдЦреНрдпрд╛ рджреЛ - рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдЕрд░реБрдбрд┐рдиреЛ рдЙрд╕ рд╕рдордп рдХреБрдЫ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рдпрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ - onReceive () рдЬрдм рдбреЗрдЯрд╛ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ onRequest () рдЬрдм рдбреЗрдЯрд╛ рдорд╛рд╕реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛: рд╡реЗрдм рд╕рд░реНрд╡рд░ рдореЗрдВ 6 рдХрдорд╛рдВрдб рд╣реИрдВ:

  • рдХрдорд╛рдВрдб "1" - рд╕рднреА рд░реЛрд╢рдиреА рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  • рдХрдорд╛рдВрдб "2" - рд╕рднреА рд╕реНрд╡рд┐рдЪ рдХреА рдЕрд╡рд░реБрджреНрдз рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  • рдХрдорд╛рдВрдб "5" - рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ
  • рдХрдорд╛рдВрдб "6" - рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдХреЛ рдмрдВрдж рдХрд░реЗрдВ

рдПрдХ рдХрдорд╛рдВрдб рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрдирд╛рдИ рдЧрдИ рд╣реИ: рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлреЙрд░реНрдо рдХрд╛ рдПрдХ рджрд╢рдорд▓рд╡ рд╕рдВрдЦреНрдпрд╛ <рд╕реИрдХрдбрд╝реЛрдВ (1 рдпрд╛ 2) - рджреАрдкрдХ рдпрд╛ рд╕реНрд╡рд┐рдЪ рд▓реЙрдХ> <рдкреЛрд░реНрдЯ рдирдВрдмрд░ (0 рд╕реЗ 99 рддрдХ)> рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 105 - рд╕реНрд╡рд┐рдЪ 5 рдкреЛрд░реНрдЯ, 213 - 13 рдкреЛрд░реНрдЯ рд▓реЙрдХ рд╕реНрд╡рд┐рдЪред рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рд╣реЗрдХреНрд╕ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрд░рдбрд┐рдиреЛ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЙрд▓рдЯрд╛ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдпрд╣ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

  ...
  if ($action == 3)
     $val_hex = dechex(intval($port) + 100);
  else
     $val_hex = dechex(intval($port) + 200);
  
  exec("sudo i2cset -y 7 $addr 0x00 0x$val_hex", $output);
  ...

рдФрд░ рдЖрд░реНрджреБрдиреЛ рдХреА рддрд░рдл рд╕реЗ:

void receiveEvent(int howMany) {
  byte bytes = Wire.available();
  int x = 0;
  for (byte i=1; i <= bytes; i=i+1) {
    x = Wire.read();
  }
  
  if (x == 1 or x == 2 or x == 5 or x == 6) {
    do_action(x, 0);
  } else {
    if ( x > 200) {
      do_action (4, x - 200);
    } else {
      do_action (3, x - 100);
    }
  }  
}

рдпрд╣ рдХрд╛рдлреА рдЖрджрд┐рдо рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣рд▓ рдХреА рдЧрдИ рд╣реИред рдпрд╣рд╛рдБ do_action рдлрд╝рдВрдХреНрд╢рди рд╣реИ:

void do_action(byte command, byte port) {
  byte value = 0;
  byte dvalue = 0;
  switch (command) {
    case 1:
      start_request = true;
      request_type = 1;
      current_port = 0;
      
      break;
    case 2:
      start_request = true;
      request_type = 2;
      current_port = 0;
      
      break;
    case 3:
      value = EEPROM.read(port);
      if(value==11) {
        digitalWrite(port, HIGH);
        EEPROM.write(port, 10);
      } else {
        digitalWrite(port, LOW);
        EEPROM.write(port, 11);
      }
      
      break;
    case 4:
      dvalue = EEPROM.read(port);
      if(dvalue==11) {
        EEPROM.write(port, 10);
      } else {
        EEPROM.write(port, 11);
      }
      
      break;
    case 5:
      for (byte i=0; i<cnt; i = i + 1) {
        digitalWrite(leds[i], LOW);
        EEPROM.write(leds[i], 11);
      }
      
      break;
    case 6:
      for (byte i=0; i<cnt; i = i + 1) {
        digitalWrite(leds[i], HIGH);
        EEPROM.write(leds[i], 10);
      }
      
      break;
    default:
      
    break;
  }
}

3-6 рдЯреАрдореЛрдВ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдЯреАрдореЛрдВ 1 рдпрд╛ 2 рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдкрд╣рд▓реЗ рд╡рд╛рдВрдЫрд┐рдд рдХрдорд╛рдВрдб рднреЗрдЬрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдЖрд░реНрджреАрдиреЛ рдХрдорд╛рдВрдб 1 рдпрд╛ 2 рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЭрдВрдбреЗ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  start_request = true;
  request_type = 1;
  current_port = 0;

рдФрд░ рдлрд┐рд░ рд╕рд░реНрд╡рд░ arduino рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬрд┐рддрдиреА рдмрд╛рд░ рдпрд╣ рдЪреБрдирд╛рд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдХреА рдУрд░:

function get_data($address, $action, $cnt) {
	exec("sudo i2cset -y 7 $address 0x00 0x0$action", $output);
	$tmp = @$output[0];
	while (strpos($tmp,"rror")!==false) {
		exec("sudo i2cset -y 7 $address 0x00 0x0$action", $output);
		$tmp = @$output[0];
	}
	$str = "";
	for ($i = 1; $i <= $cnt; $i++) {
		exec("sudo i2cget -y 7 $address", $output);
		$tmp = @$output[0];
		while (strpos($tmp,"rror")!==false) {
			exec("sudo i2cget -y 7 $address", $output);
			$tmp = @$output[0];
		}
		if ($tmp) {
			if (strpos($tmp,"1")!==false)
				$str .= "1";
			else
				$str .= "0";
		}
		unset($output);
		unset($tmp);
	}
			
	return $str;
}

$str = array();
$c = 1;
while ($c <= $tryes) {
	$tmp = get_data($addr, $action, $cnt);
	
	if (strlen($tmp) == $cnt)
		$str[] = $tmp;
	
	$c++;
}

$new_array = array_count_values($str);

asort($new_array);

$res = "";
$max = 0;
foreach ($new_array AS $key=>$val) {
	if ($val >= $max) {
		$res = $key;
		$max = $val;
	}
}

return preg_split('//', $res, -1, PREG_SPLIT_NO_EMPTY);

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рд╣рдо рдХрдИ ($ tryes> 3) arduino рд╕реЗ рдкреВрдЫрддрд╛рдЫ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдорд┐рд▓рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ 0 рдпрд╛ 1 рд╣реЛрддрд╛ рд╣реИред рд╣рд░ рдЬрдЧрд╣ рдХрд┐рд╕реА рднреА рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╣рдо рдЙрддреНрддрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рд╢рдмреНрдж рддреНрд░реБрдЯрд┐ рд╣реИ - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред рдкреНрд░реЗрд╖рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд╢реБрджреНрдзрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдЧрдП, рд╕рд░рдгреА array_count_values тАЛтАЛ($ str) рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдврд╣ рдЧрдИ рд╣реИ; рдФрд░ рдЕрдВрдд рдореЗрдВ рд╣рдореЗрдВ рдЙрд╕реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдорд┐рд▓рддреА рд╣реИ, рд╣рдо рдЙрд╕ рд░реЗрдЦрд╛ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ arduino рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдерд╛ред

Arduino рдХреЗ рдкрдХреНрд╖ рд╕реЗ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ:

void requestEvent() {
  if (request_type == 1) {
    byte value = EEPROM.read(leds[current_port]);
    if(value==11) {
      Wire.write(1);
    } else {
      Wire.write(0);
    }
    
    current_port = current_port + 1;
  } else if (request_type == 2) {
    byte dvalue = EEPROM.read(pins[current_port]);
    if(dvalue==11) {
      Wire.write(1);
    } else {
      Wire.write(0);
    }

    current_port = current_port + 1;
  }
}

рд╡реЗрдм рдкреЗрдЬ рдХреЗ рдХреЛрдб рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

<a class="lamp living_room" id="lamp0x4d3" rel='0x4d' onclick="lamp_click('0x4d',this.id, 3);" ></a>
<a class="lamp kitchen" id="lamp0x4d4" rel='0x4d' onclick="lamp_click('0x4d',this.id, 4);" ></a>
<a class="lamp children_main" id="lamp0x4d5" rel='0x4d' onclick="lamp_click('0x4d',this.id, 5);" ></a>
<a class="lamp children_second" id="lamp0x4d6" rel='0x4d' onclick="lamp_click('0x4d',this.id, 6);" ></a>
<a class="lamp sleeproom_main" id="lamp0x423" rel='0x42' onclick="lamp_click('0x42',this.id, 3);" ></a>
<a class="lamp sleeproom_lyuda" id="lamp0x424" rel='0x42' onclick="lamp_click('0x42',this.id, 4);" ></a>
<a class="lamp sleeproom_anton" id="lamp0x425" rel='0x42' onclick="lamp_click('0x42',this.id, 5);" ></a>

<a class="button button_living_room" id="button0x4d15" onclick="button_click('0x4d',this.id, 15);" ></a>
<a class="button button_kitchen" id="button0x4d14" onclick="button_click('0x4d',this.id, 14);" ></a>
<a class="button button_children_main" id="button0x4d16" onclick="button_click('0x4d',this.id, 16);" ></a>
<a class="button button_children_second" id="button0x4d17" onclick="button_click('0x4d',this.id, 17);" ></a>
<a class="button button_sleeproom_door1" id="button0x4212" onclick="button_click('0x42',this.id, 12);" ></a>
<a class="button button_sleeproom_door2" id="button0x4213" onclick="button_click('0x42',this.id, 13);" ></a>
<a class="button button_sleeproom_lyuda1" id="button0x4214" onclick="button_click('0x42',this.id, 14);" ></a>
<a class="button button_sleeproom_lyuda2" id="button0x4215" onclick="button_click('0x42',this.id, 15);" ></a>
<a class="button button_sleeproom_anton1" id="button0x4216" onclick="button_click('0x42',this.id, 16);" ></a>
<a class="button button_sleeproom_anton2" id="button0x4217" onclick="button_click('0x42',this.id, 17);" ></a>

рджрд░рдЕрд╕рд▓, рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмреЛрд░реНрдб рдХреЗ рдкрддреЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореБрдЭреЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдкреЛрд░реНрдЯ рдирдВрдмрд░ред

рдЕрд░реЗ рд╣рд╛рдБ, рдирд┐рдпрдВрддреНрд░рдХ рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдм рдХреБрдЫ рдкрд╣рд▓реА рдмрд╛рд░ рд╢реБрд░реВ рд╣реБрдЖред рдФрд░ рдЕрдЧрд▓реЗ рджрд┐рди, рдПрдХ рдЕрддреБрд▓рдиреАрдп рдкреНрд░рднрд╛рд╡ рдкреИрджрд╛ рд╣реБрдЖ - рдпрджрд┐ рдЖрдк рдмреЗрдбрд░реВрдо рдореЗрдВ рд╕рднреА рд░реЛрд╢рдиреА рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмреЗрдбрд░реВрдо рдореЗрдВ рд╕рднреА рд░реЛрд╢рдиреА рд╣рд░ 2-3 рд╕реЗрдХрдВрдб рдореЗрдВ рдЭрдкрдХреА рд▓реЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреА рд╣реИред рдореИрдВрдиреЗ рдкреВрд░реА рд░рд╛рдд рдХреЛрдб рдЪреБрдирдиреЗ рдореЗрдВ рдмрд┐рддрд╛рдИ, рдЯреЗрд╕реНрдЯ рдмреЗрдВрдЪ рдкрд░ рдРрд╕рд╛ рдХреЛрдИ рдЬрдВрдм рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдордВрдЪреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдлрд╡рд╛рд╣ рдЙрдбрд╝рд╛рдИ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдЯреЛрдЧрд╛ рдореЗрдВ рдореБрдЭреЗ рдПрдХ рд╕рдорд╛рди рд▓рдХреНрд╖рдг рдХрд╛ рд╡рд┐рд╡рд░рдг рдорд┐рд▓рд╛, рдореЗрд░реЗ рдЕрдиреБрдорд╛рди рдХреА рдЬрд╛рдБрдЪ рдХреА - рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИред рдФрд░ рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рдореИрдВрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рд╕реЗ 12 рд╡реА, рдФрд░ рдкреБрд░рд╛рдиреЗ рдлреНрд░реАрдбреНрдпреВрдЗрдиреЛ рдХреЛ рдЪреБрдкрдЪрд╛рдк рдЦрд╛ рд▓рд┐рдпрд╛ рдерд╛, рдФрд░ buzz рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ arduino uno v3 рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рдФрд░ рдЬрдм рд╕рднреА рд░рд┐рд▓реЗ рдХреЛ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдкрд╛рд╡рд░ рд░реЗрдЧреБрд▓реЗрдЯрд░ рдХреЛ рдЧрд░реНрдо рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕реЗ рдЫреВ рдкрд╛рдирд╛ рдЕрд╕рдВрднрд╡ рдерд╛ред рдЖрдкреВрд░реНрддрд┐ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЛ 5 рд╡реА 2 рдП рддрдХ рдШрдЯрд╛ рджрд┐рдпрд╛ - рдФрд░ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдмрд╣реБрдд рд╕рд╛рд░реА рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ, рд╣рдореЗрдВ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдореЗрдВ рдорд░рдореНрдордд рдЦрддреНрдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╢реМрдЪрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдЧрд▓рд┐рдпрд╛рд░реЗ рдФрд░ рдмрд╛рдерд░реВрдо рд▓рд╛рдЗрди рдореЗрдВ рд╣реИрдВ, рдЕрдкрдиреЗ рд╕рдкрдиреЛрдВ рдореЗрдВ рдореИрдВ рд╡реЙрдЯрд░ рд╣реАрдЯрд░ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЙрдЯрд▓реЗрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдореИрдВ I2C рдмрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрд░реБрдВрдбрд┐рди рдХреЛ рд▓рдЯрдХрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреА рдЦреБрдж рдХреА рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рдпрд╣ рджреАрди рд░реЗрд▓ рдХреЗ рд▓рд┐рдП рдкрд▓реНрд╕ рд░рд┐рд▓реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рднреА рдпреЛрдЬрдирд╛ рд╣реИ рддрд╛рдХрд┐ рд░рд┐рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗрд╡рд▓ рдЗрди рдкрд▓реНрд╕ рд░рд┐рд▓реЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░рд╛ рднрд╛рд░ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдЪреАрдиреА рд░рд┐рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдкрд░ рдЧрдВрднреАрд░ рд╕рдВрджреЗрд╣ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЧрд┐рдердм рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ: рдЖрд░реНрдбрд┐рдиреЛ рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрдЪ

рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕

Source: https://habr.com/ru/post/hi386457/


All Articles