Arduino рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдордЫрд▓реАрдШрд░ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА

рдореИрдВ рдПрдХ Arduino рдордЫрд▓реАрдШрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реА рдЪреАрдЬрд╝ рдмрдирд╛рдиреЗ рдореЗрдВ рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рдФрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреИрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд╣рд╛рде рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред



рдПрдХ рдордЫрд▓реАрдШрд░ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ


рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реБрдЖ рдХрд┐ рдореИрдВ .NET рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рдерд╛ рдФрд░ C ++ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдирд╛ рд╕реАрдЦрд╛ред рд╢рд╛рдпрдж рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдХрднреА рднреА рдорд╛рдЗрдХреНрд░реЛрдХреНрд░реЗрдХреНрдЯреНрд░реА рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рд╕реЗ рдирд╣реАрдВ рдорд┐рд▓рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд▓рдЧрднрдЧ рд╣рд░ рд╕рд╛рд▓ рдмрдврд╝рддреА рдЧрдИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкрд┐рдЫрд▓реЗ рд╡рд░реНрд╖реЛрдВ рдЬрдм рдореБрдЭреЗ рдЕрд░реНрдбреБрдЗрдиреЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ред рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рд╛рде рдЖрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдФрд░ рдпрд╣ рдореБрджреНрджрд╛ рдЬрд▓реНрджреА рд╕реБрд▓рдЭ рдЧрдпрд╛ рдерд╛ред

рд╣рдорд╛рд░реЗ рдХрдорд░реЗ рдореЗрдВ рдПрдХ рдордЫрд▓реАрдШрд░ рд╣реИ, рдФрд░ рд╣рд░ рджрд┐рди рд╣рдореЗрдВ рдореЗрдЬ рдХреЗ рдиреАрдЪреЗ рдЪрдврд╝рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рдХрд╛рд╢ рдХреЛ рдордЫрд▓реА рдХреА рдУрд░ рдореЛрдбрд╝рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕реБрдмрд╣ рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдордЫрд▓реА рдХреЛ рдардВрдбрд╛ рд╣реЛрдиреЗ рдкрд░ рд╣реАрдЯрд░ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛, рдФрд░ рдЧрд░реНрдо рд╣реЛрдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рдерд╛ред рдХрднреА-рдХрднреА рдореЗрд░реА рднреВрд▓рдиреЗ рдХреА рдмреАрдорд╛рд░реА рдиреЗ рдПрдХреНрд╡реЗрд░рд┐рдпрдо рдореЗрдВ рдордЫрд▓рд┐рдпреЛрдВ рдХреА рдореМрдд рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирдП рдЦрд░реАрджрдирд╛ рдкрдбрд╝рд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдордЫрд▓реА рдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ 2/3 рдкрд╛рдиреА рдмрджрд▓рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ред рдФрд░ рд╣рдорд╛рд░реЗ рдордЫрд▓реАрдШрд░ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рд▓рдВрдмреА рдФрд░ рдЕрдкреНрд░рд┐рдп рдереАред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдПрдХреНрд╡реИрд░рд┐рдпрдо рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рджреЗрдЦрд╛ред рдРрд╕реЗ рдмрд╣реБрдд рд╕реЗ рд╣реИрдВред рдпреЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдпреВрдЯреНрдпреВрдм рдкрд░ рд╡реАрдбрд┐рдпреЛ рд╣реИрдВред Geektimes рдкрд░ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд▓реЗрдЦ рднреА рд╣реИрдВред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП - рдорд╛рдЗрдХреНрд░реЛрдХреНрд░рд┐рдХреБрдЗрдЯреНрд░реА рдХреА рджреБрдирд┐рдпрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдФрд░ рдЬрд╛рдирдирд╛ - рдпрд╣ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдерд╛, рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ "рдЦрд░реЛрдВрдЪ рд╕реЗ" рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЧрд╛рдЗрдб рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдПрдХ рдПрдХреНрд╡реИрд░рд┐рдпрдо рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рддрдм рддрдХ рд╕реНрдердЧрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬрдм рддрдХ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдЦреБрдж рдХрд╛ рдЕрдзреНрдпрдпрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдорд╛рдЗрдХреНрд░реЛрдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд


рдореИрдВрдиреЗ Arduino рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдЯ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдпрд╛рддреНрд░рд╛ рд╢реБрд░реВ рдХреАред рд╕рдВрднрд╡рддрдГ, рд╕рднреА рдиреЗ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдХрд┐рдпрд╛ рдЬрдм рд╡рд╣ рдЗрд╕ рдордВрдЪ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдЖ: рдПрдХ



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

рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдПрдХреНрд╡реЗрд░рд┐рдпрдо рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ


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

рдордЫрд▓реАрдШрд░ рдЪрд╛рд╣рд┐рдП:

  1. , , ;
  2. , , ( ) ;
  3. ( ) ;
  4. , , ;
  5. ┬л ┬╗
  6. ;
  7. . , 9:00 AM;
  8. , ;
  9. .
  10. рдЬрдм рдЖрдк рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдкрд░ рдмрдЯрди рджрдмрд╛рддреЗ рд╣реИрдВ рддреЛ рддрд╛рд░реАрдЦ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░реАрди рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ 5 рд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмрд╛рд╣рд░ рдЬрд╛рдПрдВред

рдореИрдВрдиреЗ LCD рдФрд░ Arduino рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЦреЛрдЬ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдореБрдЦреНрдп рдореЗрдиреВ рдмрдирд╛рдПрдБред рдПрд▓рд╕реАрдбреА рдСрдкрд░реЗрд╢рди


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

рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕реМрджрд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдореБрдЦреНрдп рдореЗрдиреВ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореЗрдиреВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдЗрдЯрдо рд╢рд╛рдорд┐рд▓ рдереЗ:

  1. рдореВрд▓рднреВрдд рдЬрд╛рдирдХрд╛рд░реА;
  2. рд╕рдордп рд╕реЗрдЯрд┐рдВрдЧ;
  3. рджрд┐рдирд╛рдВрдХ рд╕реЗрдЯрд┐рдВрдЧ;
  4. рддрд╛рдкрдорд╛рди;
  5. рдЬрд▓рд╡рд╛рдпреБ;
  6. рдмреИрдХрд▓рд╛рдЗрдЯ
  7. рдЙрдкрдХрд░рдг

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

рджрд░рдЕрд╕рд▓, рдмреЗрд╕ рдХреНрд▓рд╛рд╕ C ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЕрдиреНрдп рд╕рднреА рд╕рдмрдореЗрдирд╕ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗрдВрдЧреЗред

 class qQuariumMode
{
protected:
	LiquidCrystal* LcdLink;
public:

	//    ,   bool  isLcdUpdated.
	bool isLcdUpdated = false;
    
	//     .
	void exit();
	
	//  loop      . ,      
	//   .        .
	virtual void loop();

	// ,    virtual,      
	// . 
	virtual void OkClick();
	virtual void CancelClick();
	virtual void LeftClick();
	virtual void RightClick();
};

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдбрд┐рд╡рд╛рдЗрд╕" рдореЗрдиреВ рдХреЗ рд▓рд┐рдП, qQuariumMode рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

#include "qQuariumMode.h"
class qQuariumDevicesMode :
	public qQuariumMode
{
private:

	int deviceCategoryLastIndex = 4;
	
	//    
	enum DeviceCategory
	{
		MainLight, //   
		Aeration, //  
		Compressor, //  
		Vulcanius, //  
		Pump //  
	};
	
	DeviceCategory CurrentDeviceCategory = MainLight;

	char* headerDeviceCategoryText = NULL;

	//   "",      
	BaseOnOfDeviceHelper* GetDeviceHelper();

public:
	void loop();
	void OkClick();
	void CancelClick();
	void LeftClick();
	void RightClick();
};

рдпрд╣рд╛рдБ рдореЗрдиреВ рдХреЗ рдкрд╣рд▓реЗ рд╕реНрддрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ:



рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╣рд┐рд╕реНрд╕рд╛ред рдХрдиреЗрдХреНрдЯрд┐рдВрдЧ рдШрдЯрдХреЛрдВ рдХреА рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ


рдореИрдВ рдордЫрд▓реАрдШрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЦрд░реАрджрдирд╛ рдкрдбрд╝рд╛:

  1. 1 рдПрдХреНрд╕ рдЕрд░реНрдбреБрдЗрдиреЛ рдКрдиреЛ / рдореЗрдЧрд╛ред рдмрд╛рдж рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдореЗрдЧреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛;
  2. 1 рдПрдХреНрд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреА рдШрдбрд╝реА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП DS1307;
  3. 2 x RTD14005, , .. 220 ;
  4. 1 x ;
  5. 1 x ;
  6. 5 x IRF-530 MOSFET N . (3 RGB , 1 , 1 );
  7. 1 x RGB . , . ;
  8. 1 x White ;
  9. 1 x LCD ;
  10. 1 x . DS18B20;
  11. 1 x . DHT11;

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

рдШрдЯрдХреЛрдВ рдХрд╛ рдиреБрдХрд╕рд╛рди


рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗред рдкрд╣рд▓реЗ рдкреНрд▓рдЧ-рдЗрди рдШрдЯрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдЗрд╕реЗ рдареАрдХ рдЙрд╕реА рд╡реЛрд▓реНрдЯреЗрдЬ рд░реЗрдВрдЬ рдореЗрдВ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдирд┐рд░реНрдорд╛рддрд╛ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдореИрдВ рдордЫрд▓реАрдШрд░ рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛, рдореИрдВрдиреЗ 2 рд╕реАрд▓ рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ рдФрд░ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдШрдбрд╝реА рдХреЛ рдирд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╕реЗрдВрд╕рд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдП рдХрд┐ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ 12 рд╡реА рд╕реЗ рдЬреЛрдбрд╝рд╛, рдФрд░ рдпрд╣ 5 рд╡реА рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдореЗрд░реА рдЧрд▓рддреА рдХреЗ рдХрд╛рд░рдг рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ" рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдХрд╛рд░рдг рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреА рдШрдбрд╝реА рдорд░ рдЧрдИред

рдЖрд░рдЬреАрдмреА рдПрд▓рдИрдбреА рдкрдЯреНрдЯреА


рдПрд▓рдИрдбреА рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА:



Arduino рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп, рдореИрдВрдиреЗ PWM (рдкрд▓реНрд╕ рдЪреМрдбрд╝рд╛рдИ рдореЙрдбреБрд▓рди) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдПрдХ рд╕рд╛рде рд╕рднреА 3 рдкрд┐рдиреЛрдВ рдХреЗ рдЕрдзрд┐рдХрддрдо рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╕рдордп, рдореЗрд░рд╛ рдЯреЗрдк рдмрд╣реБрдд рдЧрд░реНрдо рдерд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдПрдХ рдпрд╛ рджреЛ рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рдПрд▓ рдИ рдбреА рдЪрдордХрдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг рдерд╛ред рдЗрд╕ рдпреЛрдЬрдирд╛ рдХрд╛ рдПрдХ рдФрд░ рдиреБрдХрд╕рд╛рди рдкреНрд░рддреНрдпреЗрдХ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрд▓рдИрдбреА рдкрдЯреНрдЯреА рдХреА рдЕрд▓рдЧ рдЪрдордХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдореИрдВ рдЯреЗрдк рдХреЗ рд▓рд╛рд▓ рдШрдЯрдХ рдкрд░ рдЕрдзрд┐рдХрддрдо рд╡реЛрд▓реНрдЯреЗрдЬ рдбрд╛рд▓рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ 255 рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рд▓рд╛рд▓ рдЯреЗрдк рдХреА рд╕рд╢рд░реНрдд рдЪрдордХ рдорд┐рд▓рддреА рд╣реИред рдпрджрд┐ рдореИрдВ рдЕрдзрд┐рдХрддрдо рд╡реЛрд▓реНрдЯреЗрдЬ рдкрд░ рд▓рд╛рд▓ рдФрд░ рдиреАрд▓реЗ рджреЛрдиреЛрдВ рдШрдЯрдХреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдЪрдордХ 255 + 255 = 510 рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧреА, рдФрд░ рд░рдВрдЧ рдмреИрдВрдЧрдиреА рд╣реЛрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕рдорд╛рдзрд╛рди рдореБрдЭреЗ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

void LedRgbHelper::Show(RGBColorHelper colorToShow)
{	
	// RGBColorHelper         . 
	//  ,     
	int sumColorParts = colorToShow.RedPart + colorToShow.GreenPart + colorToShow.BluePart;

	//      
	float rK = 0;
	float gK = 0;
	float bK = 0;

	if (sumColorParts != 0)
	{
		float redPartAsFloat = (float)colorToShow.RedPart;
		float greenPartAsFloat = (float)colorToShow.GreenPart;
		float bluePartAsFloat = (float)colorToShow.BluePart;

		float sumColorPartsAsFloat = (float)sumColorParts;

		int brightness = colorToShow.Brightness;
		

		//       .
		rK = redPartAsFloat / sumColorPartsAsFloat;
		gK = greenPartAsFloat / sumColorPartsAsFloat;
		bK = bluePartAsFloat / sumColorPartsAsFloat;
		
		//      
		rK = rK*brightness;
		gK = gK*brightness;
		bK = bK*brightness;
	}
		
	uint8_t totalCParts = (uint8_t)rK + (uint8_t)gK + (uint8_t)bK;
	
	if (totalCParts <= 255){
		//      .        255 .
		analogWrite(RedPinNum, (uint8_t)rK);
		analogWrite(GreenPinNum, (uint8_t)gK);
		analogWrite(BluePinNum, (uint8_t)bK);
	}	
}

рдЗрд╕ рдЕрд╡рддрд╛рд░ рдореЗрдВ, рд▓рд╛рд▓ рд░рдВрдЧ рдФрд░ рдмреИрдВрдЧрдиреА рд░рдВрдЧ рдореЗрдВ рд╕рдорд╛рди рдЪрдордХ рдереАред рдЙрдиред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд▓рд╛рд▓ рдПрд▓ рдИ рдбреА 255 рдЗрдХрд╛рдЗрдпреЛрдВ рдХреА рдЪрдордХ рдХреЗ рд╕рд╛рде рдЪрдордХрддрд╛ рдерд╛, рдФрд░ рдмреИрдВрдЧрдиреА рдХреЗ рд╕рд╛рде, рд▓рд╛рд▓ 127 рдЗрдХрд╛рдЗрдпреЛрдВ рдХреА рдЪрдордХ рдХреЗ рд╕рд╛рде рдерд╛ рдФрд░ 127 рдЗрдХрд╛рдЗрдпреЛрдВ рдХреА рдЪрдордХ рдХреЗ рд╕рд╛рде рдиреАрд▓рд╛, рдЬреЛ рдЕрдВрдд рдореЗрдВ рд▓рдЧрднрдЧ 255 рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рдмрд░рд╛рдмрд░ рдерд╛:



рдПрд▓рдИрдбреА рдкрдЯреНрдЯреА рд╕рдлреЗрдж


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

рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рдлреЗрдж рдПрд▓рдИрдбреА рдкрдЯреНрдЯреА рдХреА рдЪрдордХ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реИрдЦрд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред

void MainLightHelper::HandleState()
{
	if (!IsFadeWasComplete)
	{
		unsigned long currentMillis = millis();
		if (currentMillis - previousMillis > 50) {
			previousMillis = currentMillis;

			switch (CurrentLevel)
			{
			case MainLightHelper::Off:
			{
				//    ,          .
				if (currentBright != 0)
				{
					if (currentBright > 0)
					{
						currentBright--;
					}
					else
					{
						currentBright++;
					}
				}
				else
				{
					//    ,     .
					currentBright = 0;
					IsFadeWasComplete = true;
				}
				break;
			}
			case MainLightHelper::Low:
			case MainLightHelper::Medium:
			case MainLightHelper::High:
			{
				//      ,         
				if (currentBright != CurrentLevel)
				{
					if (currentBright > CurrentLevel)
					{
						currentBright--;
					}
					else
					{
						currentBright++;
					}
				}
				else
				{
					currentBright = CurrentLevel;
					IsFadeWasComplete = true;
				}
			}
			break;
			}
			
			//         .
			analogWrite(PinNum, currentBright);
		}
	}
}

рд▓рд╣рд░ "рдЬреНрд╡рд╛рд▓рд╛рдореБрдЦреА"


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



рдпрд╣ рдПрдХ рдПрдбрд╛рдкреНрдЯрд░ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ 12V рдбреАрд╕реА рд╣реИ, рдФрд░ рдЗрдирдкреБрдЯ 220V рдПрд╕реА рд╣реИред рдореБрдЭреЗ рдПрдХ рдПрдбреЗрдкреНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ Arduino рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреНрд╡рд╛рд▓рд╛рдореБрдЦреА рдХреА рд╢рдХреНрддрд┐ рдФрд░ рдЪрдордХ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдерд╛ред

рдЬреНрд╡рд╛рд▓рд╛рдореБрдЦреА рдХрд╛ рд╕реНрдкрдВрджрди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛:

long time = 0;
int periode = 10000;

void VulcanusHelper::HandleState()
{
	if (IsActive){
		// time -  cos     . 
		//   -       
		time = millis();
		int value = 160 + 95 * cos(2 * PI / periode*time);

		analogWrite(PinNum, value);
	}
	else
	{
		analogWrite(PinNum, 0);
	}
}

рдЬреНрд╡рд╛рд▓рд╛рдореБрдЦреА рд╢рд╛рдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдордЫрд▓реАрдШрд░ рдХреЛ рд░реЛрд╢рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд▓рд╣рд░ рдЦреБрдж рдХреЛ рдмрд╣реБрдд рд╕реБрдВрджрд░ рд▓рдЧрддреА рд╣реИ:



рдкрд╛рдиреА рдХрд╛ рдкрдВрдкред рдордЫрд▓реАрдШрд░ рдкрд╛рдиреА рдХреА рдЬрдЧрд╣


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


рдореИрдВрдиреЗ рд╕реНрдЯреИрдВрдб рдкрд░ рдкрдВрдк рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛:



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

рдЗрдиреНрдлреНрд░рд╛рд░реЗрдб рдкреЛрд░реНрдЯ рдФрд░ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛


рдореИрдВрдиреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рдж рдЕрд╡рд░рдХреНрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдордЫрд▓реАрдШрд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╕рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: рдЬрдм рдореИрдВ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдмрд╛рдПрдВ, рджрд╛рдПрдВ, рдКрдкрд░, рдиреАрдЪреЗ, рдареАрдХ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрдЫрддрд╛рдЫ рдХрд░рддрд╛ рд╣реВрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪреБрдирддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдмрдЯрди рд╡рд╣ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдмрджреНрдз рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд▓рд╛рдн рдХрд┐рд╕реА рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред
рдордЫрд▓реАрдШрд░ рдХреЛ рд╕реАрдЦреЗрдВ рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╕рд╛рд░ рдиреАрдЪреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

void ButtonHandler::Learn(IRrecv* irrecvLink, LiquidCrystal* lcdLink)
{
	//      
	irrecvLink->enableIRIn();
	
	//       
	decode_results irDecodeResults;
	...
	...
		while (true) {
		//       
		if (irrecvLink->decode(&irDecodeResults)) {
						
			//   
			irrecvLink->resume();

			//     .
			if (irDecodeResults.bits >= 16 && 
				irDecodeResults.value != 0xC53A9966// fix for Pioneer DVD
				) {
			
				lcdLink->setCursor(0, 1);
				//        HEX
				lcdLink->print(irDecodeResults.value, HEX);
				
				//     Arduino  
				irRemoteButtonId = irDecodeResults.value;
				
				...
				...

рдмрд╛рдж рдореЗрдВ рдореИрдВ рдЗрд╕ рдирддреАрдЬреЗ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреА рд╣реИ рдФрд░ рдпрд╣ рдШрд░ рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдХрд░рдг рд╣реИред рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдпрд╛ рдЯреИрдмрд▓реЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкреАрдЖрдИ рдорд╛рдЗрдХреНрд░реЛ рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛, рдореЛрдиреЛ рдФрд░ рдиреИрдиреНрд╕реАрдПрдлрдПрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕ рдкрд░ ASP.NET MVC 5 рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХреЗ рдмрд╛рдж, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП jquery рдореЛрдмрд╛рдЗрд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд░рд╛рд╕реНрдкрдмреЗрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╡рд╛рдИрдлрд╛рдИ рдпрд╛ рд▓реИрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Arduino рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░реЗрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдПрд▓рд╕реАрдбреА рд╕реНрдХреНрд░реАрди рдХреЛ рдЫреЛрдбрд╝ рднреА рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдпрд╛ рдЯреИрдмрд▓реЗрдЯ рдкрд░ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗрд╡рд▓ рдореЗрд░реЗ рд╕рд┐рд░ рдореЗрдВ рд╣реИред

рдореБрджреНрд░рд┐рдд рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб рдФрд░ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг


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

рдЕрд╕реЗрдВрдмрд▓реА рдСрди рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб (Arduino Uno рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):



рдореИрдВрдиреЗ рдлреНрд░рд┐рдЯрд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХрд▓-рдкрд░рдд рдкреАрд╕реАрдмреА рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдХрд▓рд╛ (Arduino рдореЗрдЧрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ):



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

рд╡реИрд╕реЗ, рдЕрдЧрд░ рдХреЛрдИ рд▓реЗрдЬрд░-рдЗрд╕реНрддреНрд░реА рддрдХрдиреАрдХ рд╕реЗ рдбрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рддреБрд░рдВрдд рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реА рдмрд╛рд░ рдХрд┐рдпрд╛:



рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЦреБрдж рднреА рд╕рд░рд▓ рдереА - рдмреЛрд░реНрдб рдХреЛ рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛:



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

рдирд┐рд╖реНрдХрд░реНрд╖


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

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


All Articles