рдЕрдкрдирд╛ рдЧреЗрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рдмрдирд╛рдПрдВ

рдкреНрд░реЗрд░рдгрд╛ рдХрд╛ рд╕реНрд░реЛрдд


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


рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ Arduino рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред

рдореИрдВ рдЕрдкрдиреЗ рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рд╡рд╣реА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рдПрдХ рд░реЗрд╕рд┐рдВрдЧ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рдХреЙрдХрдкрд┐рдЯ рдореЗрдВ рд╕реБрдВрджрд░, рдмрдбрд╝реЗ рдФрд░ рднрд╛рд░реА рд╕реНрд╡рд┐рдЪ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ $ 40 рдЦрд░реНрдЪ рдХрд░реВрдВрдЧрд╛ред рдореБрдЦреНрдп рд▓рд╛рдЧрдд рдЗрди рд╕реНрд╡рд┐рдЪреЛрдВ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИ - рдЕрдЧрд░ рдореИрдВрдиреЗ рд╕рд░рд▓ рд╕реНрд╡рд┐рдЪ / рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдХреАрдордд рдЖрдзреА рд╣реЛ рдЬрд╛рдПрдЧреА! рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ 240 рд╡рд╛рдЯ рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ 0.03 рд╡рд╛рдЯ рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рджреВрдВрдЧрд╛ред

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

рдореБрдЦреНрдп рдШрдЯрдХ






рдЪреБрдирд┐рдВрджрд╛ рдЙрдкрдХрд░рдг



рд╕реЙрдлреНрдЯрд╡реЗрдпрд░


  • Arduino рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП Arduino IDE
  • рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ USB рдирд┐рдпрдВрддреНрд░рдХ / рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ:
    • Arduino USB рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдирдП рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдЪрдордХрд╛рдиреЗ рдХреЗ рд▓рд┐рдП FLIP
    • рдЬреАрдереБрдм рдкрд░ рдЕрд░реБрдбрд┐рдиреЛ -рдпреВрдПрд╕рдмреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА
  • рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕реАрдзреЗ рд╕рдВрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ ( рдпрд╛ рдЬреЛ рдПрдХ рдЖрднрд╛рд╕реА рдпреВрдПрд╕рдмреА рдирд┐рдпрдВрддреНрд░рдХ / рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ )
    • рдореЗрд░реА ois_protocol рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреАрдердм рдкрд░
    • VJoy рдбреНрд░рд╛рдЗрд╡рд░ рдпрджрд┐ рдЖрдк рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ USB рдирд┐рдпрдВрддреНрд░рдХ / рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЪреЗрддрд╛рд╡рдиреА


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

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдереА, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдЧрд▓рдд рд╕рд▓рд╛рд╣ рдпрд╛ рдЧрд▓рддрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ!

рднрд╛рдЧ 1. рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛!


рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ ...


рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рдХрдо рдорд╛рд░реНрдЬрд┐рди рд╡рд╛рд▓реЗ рд░рд┐рдЯреЗрд▓рд░ рд╕реЗ рд╕рд╕реНрддреЗ рд╣рд┐рд╕реНрд╕реЗ рдЦрд░реАрджрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ рдХрд┐ рдпреЗ рд╕реНрд╡рд┐рдЪ / рдмрдЯрди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рд╕рд░рд▓ рдкреБрд╢-рдмрдЯрди / рд╕реНрд╡рд┐рдЪ


рдмрдЯрди рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рдЗрд╕рдореЗрдВ рдХреЛрдИ рдПрд▓ рдИ рдбреА рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рджреЛ рд╕рдВрдкрд░реНрдХ рд╣реИрдВред рдорд▓реНрдЯреАрдореАрдЯрд░ рдХреЛ рдирд┐рд░рдВрддрд░рддрд╛ / рдбрд╛рдпрд▓рд┐рдВрдЧ рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ ( ) рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдкрд░реНрдХреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреЛ рд╕реНрдкрд░реНрд╢ рдХрд░реЗрдВ - рдУрдПрд▓ (рдУрдкрди рд▓реВрдк, рдУрдкрди рд╕рд░реНрдХрд┐рдЯ) рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рджреЛ рдЬрд╛рдВрдЪреЛрдВ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рд╣рдо рдмрдЯрди рджрдмрд╛рддреЗ рд╣реИрдВ, рдлрд┐рд░ рднреА рд╕рдВрдкрд░реНрдХ рдЬрд╛рдВрдЪ рдХреЛ рдЫреВрддреЗ рд╣реИрдВ - 0.1 now рдХреА рддрд░рд╣ рдХреБрдЫ рдЕрдм рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдорд▓реНрдЯреАрдореАрдЯрд░ рдмреАрдк рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ ( рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрд╛рдВрдЪ рдХреЗ рдмреАрдЪ рдмрд╣реБрдд рдХрдо рдкреНрд░рддрд┐рд░реЛрдз рд╣реИ - рдПрдХ рдмрдВрдж рд╕рд░реНрдХрд┐рдЯ )ред

рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрдХрд┐рдЯ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЦреБрд▓рддрд╛ рд╣реИред рдЖрд░реЗрдЦ рдореЗрдВ, рдЗрд╕реЗ рдПрдХ рд╕рд░рд▓ рд╕реНрд╡рд┐рдЪ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рд╣рдо Arduino рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ


Arduino рдмреЛрд░реНрдб рдкрд░ рджреЛ рдкрд┐рди рдвреВрдВрдвреЗрдВ: GND рдХреЛ рд▓реЗрдмрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ "2" (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдирдВрдмрд░) рдХреЛ рд▓реЗрдмрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ - рдпреЗ рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп I / O рдкрд┐рди рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдпрджрд┐ рд╣рдо рд╕реНрд╡рд┐рдЪ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╣рдо Arduino рдХреЛ рдкрд┐рди 2 рдХреЛ INPUT рдкрд┐рди рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдЖрджреЗрд╢ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдмрд╛рдИрдВ рдУрд░ (рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ) рд╕рд░реНрдХрд┐рдЯ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд┐рди 2 рд╕реАрдзреЗ рдЬрдореАрди / 0 рд╡реА рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЬрдм рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд┐рди 2 рдХрд┐рд╕реА рднреА рдЪреАрдЬ рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ ( рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рд╕реЗ рдЬреБрдбрд╝реА рдирд╣реАрдВ ) рдХреЛ "рдлреНрд▓реЛрдЯрд┐рдВрдЧ" (рдЙрдЪреНрдЪ рдкреНрд░рддрд┐рдмрд╛рдзрд╛ рдЕрд╡рд╕реНрдерд╛) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИред рдЬрдм рд╣рдо рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдореЗрдВ рдПрдХ рд╕рдВрдкрд░реНрдХ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддреЗ рд╣реИрдВ ( digitalRead (2) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ ), рддреЛ рд╣рдо рдХрдо рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдпрджрд┐ рд╕рдВрдкрд░реНрдХ рдЬрдореАрди рдкрд░ рд╣реИ, рдФрд░ рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо (LOW рдпрд╛ рдЙрдЪреНрдЪ) рдпрджрд┐ рд╕рдВрдкрд░реНрдХ рдЪрд▓ рд░рд╣рд╛ рд╣реИ!

рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо INPUT_PULLUP рдореЛрдб рдореЗрдВ рд╕рдВрдкрд░реНрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЕрдВрджрд░ рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рджрд╛рдИрдВ рдУрд░ рджрд┐рдЦрд╛рдП рдЧрдП рд╕рд░реНрдХрд┐рдЯ рдХреЛ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ, рд╕реНрд╡рд┐рдЪ рдУрдкрди рдХреЗ рд╕рд╛рде, рдкрд┐рди 2 рдореЗрдВ + 5V рдХрд╛ рдПрдХ рдкрде рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдЗрд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрд╢рд╛ рдЙрдЪреНрдЪ рд╣реЛрдЧрд╛ред рдЬрдм рд╕реНрд╡рд┐рдЪ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рдЕрднреА рднреА + 5V рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рдкреНрд░рддрд┐рд░реЛрдз рдХреЗ рд╕рд╛рде рдПрдХ рдкрде рд╣реЛрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЧреНрд░рд╛рдЙрдВрдб / 0V рдХреЗ рдкреНрд░рддрд┐рд░реЛрдз рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдкрде, рдЬреЛ "рдЬреАрддрддрд╛ рд╣реИ", рдЗрд╕рд▓рд┐рдП рдЬрдм рд╣рдо рд╕рдВрдкрд░реНрдХ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ LOW рдорд┐рд▓рддрд╛ рд╣реИред


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

рдЖрдк рд╡рд┐рдкрд░реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдХреЗрд╡рд▓ рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рдкреБрд▓-рдЕрдк рдкреНрд░рддрд┐рд░реЛрдз рд╣реИрдВ рдФрд░ рдкреБрд▓-рдбрд╛рдЙрди рдкреНрд░рддрд┐рд░реЛрдзрдХ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕ рдореЙрдбрд▓ рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣реЗрдВрдЧреЗред

Arduino рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо, рдЬреЛ рд╕реНрд╡рд┐рдЪ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдкреАрд╕реА рдХреЛ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ, рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЬреИрд╕реЗ рдХреБрдЫ рджрд┐рдЦрддрд╛ рд╣реИред рдЖрдк Arduino IDE рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрд░рд┐рдпрд▓ рдореЙрдирд┐рдЯрд░ (рдЯреВрд▓ рдореЗрдиреВ рдореЗрдВ) рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред

void setup() { Serial.begin(9600); pinMode(2, INPUT_PULLUP); } void loop() { int state = digitalRead(pin); Serial.println( state == HIGH ? "Released" : "Pressed" ); delay(100);//artifically reduce the loop rate so the output is at a human readable rate... } 

рд▓рдЧрднрдЧ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рд╕реНрд╡рд┐рдЪ ...


рддреАрди-рдкрд┐рди рдПрд▓рдИрдбреА рд╕реНрд╡рд┐рдЪ


рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдореЗрд░реЗ рдкреИрдирд▓ рдХреЗ рдореБрдЦреНрдп рд╕реНрд╡рд┐рдЪ рдкрд░ рддреАрди рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЗ рдирд┐рд╢рд╛рди рд╣реИрдВ:


рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдорд▓реНрдЯреАрдореАрдЯрд░ рдХреЛ рдирд┐рд░рдВрддрд░ рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕реНрд╡рд┐рдЪ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рд╕рднреА рдЬреЛрдбрд╝реЗ рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЛ рд╕реНрдкрд░реНрд╢ рдХрд░реЗрдВрдЧреЗ ... рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рд╣рдо [GND] рдФрд░ [+] рдЬрд╛рдВрдЪ рдХреЛ рдЫреВрддреЗ рд╣реИрдВ рддреЛ рдЗрд╕ рдмрд╛рд░ рдорд▓реНрдЯреАрдореАрдЯрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдмреАрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЪрд╛рд▓реВ рдХрд░реЛ! рдПрдХрдорд╛рддреНрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд┐рд╕рдореЗрдВ рдорд▓реНрдЯреАрдореАрдЯрд░ рдмреАрдк рдХрд░рддрд╛ рд╣реИ ( рдПрдХ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ ) рдЬрдм рд╕реНрд╡рд┐рдЪ "рдЪрд╛рд▓реВ" рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЬрд╛рдВрдЪ [+] рдФрд░ [рджреАрдкрдХ] рдкрд░ рд╣реЛрддреА рд╣реИред

рд╕реНрд╡рд┐рдЪ рдХреЗ рдЕрдВрджрд░ рдХреА рдПрд▓рдИрдбреА рдирд┐рд░рдВрддрд░рддрд╛ рдорд╛рдк рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рд╣рдо рдпрд╣ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрд▓рдИрдбреА рд╕реАрдзреЗ [GND] рдкрд┐рди рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рдФрд░ [+] рдФрд░ [рджреАрдкрдХ] рд╕рдВрдкрд░реНрдХреЛрдВ рд╕реЗ рдирд╣реАрдВред рдЕрдЧрд▓рд╛, рд╣рдо рдорд▓реНрдЯреАрдореАрдЯрд░ рдХреЛ рдбрд╛рдпреЛрдб рдЯреЗрд╕реНрдЯ рдореЛрдб (рдкреНрд░рддреАрдХ) рдореЗрдВ рдмрджрд▓ рджреЗрдВрдЧреЗ ) рдФрд░ рд╕рдВрдкрд░реНрдХреЛрдВ рдХреА рдЬреЛрдбрд╝реА рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдВрдЪреЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдзреНрд░реБрд╡рддрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ ( рд▓рд╛рд▓ рдФрд░ рдХрд╛рд▓реА рдЬрд╛рдВрдЪ )ред рдЕрдм рдЕрдЧрд░ рд╣рдо рд▓рд╛рд▓ рдЬрд╛рдВрдЪ рдХреЛ [рджреАрдкрдХ], рдФрд░ рдХрд╛рд▓реЗ [GND] рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдПрд▓рдИрдбреА рдкреНрд░рдХрд╛рд╢ рдХрд░реЗрдЧрд╛ рдФрд░ рдорд▓реНрдЯреАрдореАрдЯрд░ рдкрд░ 2.25V рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛ред рдпрд╣ рдбрд╛рдпреЛрдб рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рд╡реЛрд▓реНрдЯреЗрдЬ рд╣реИ, рдпрд╛ рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рд╡реЛрд▓реНрдЯреЗрдЬ рд╣реИред рд╕реНрд╡рд┐рдЪ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд╡рдЬреВрдж, [рджреАрдкрдХ] рд╕реЗ [GND] рддрдХ 2.25V рдПрд▓рдИрдбреА рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рд▓рд╛рд▓ рдЬрд╛рдВрдЪ рдХреЛ [+], рдФрд░ рдХрд╛рд▓реЗ рдХреЛ [GND] рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдПрд▓рдИрдбреА рддрднреА рдЪрд╛рд▓реВ рд╣реЛрдЧреА рдЬрдм рд╕реНрд╡рд┐рдЪ рдЪрд╛рд▓реВ рд╣реЛрдЧрд╛ред

рдЗрди рд░реАрдбрд┐рдВрдЧ рд╕реЗ, рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд╕реНрд╡рд┐рдЪ рдХреЗ рдЗрдирд╕рд╛рдЗрдб рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрд░реЗрдЦ рдХреА рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:

  1. [+] рдФрд░ [рджреАрдкрдХ] рд╕реНрд╡рд┐рдЪ-рдСрди / рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рдХрдо-рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
  2. рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╡реЛрд▓реНрдЯреЗрдЬ [рджреАрдкрдХ] рд╕реЗ [рдЬреАрдПрдирдбреА] рд╣рдореЗрд╢рд╛ рдПрд▓рдИрдбреА рдХреЛ рд░реЛрд╢рдиреА рджреЗрддрд╛ рд╣реИред
  3. рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╡реЛрд▓реНрдЯреЗрдЬ [+] рд╕реЗ [GND] рдПрд▓рдИрдбреА рдХреЛ рддрднреА рд░реЛрд╢рдиреА рджреЗрддрд╛ рд╣реИ рдЬрдм рд╕реНрд╡рд┐рдЪ рдЪрд╛рд▓реВ / рдмрдВрдж рд╣реЛред



рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдЕрд╡рд░реЛрдзрдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрд▓рдИрдбреА рдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЖрдкреВрд░реНрддрд┐ рдХреА рдЧрдИ рд╕реАрдорд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдЕрд╡рд░реЛрдзрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдпрд╣ рдмрд╛рд╣рд░ рдЬрд▓рд╛ рджреЗрдЧрд╛ред рдореЗрд░рд╛ рдЬрд▓рд╛ рдирд╣реАрдВ рдерд╛ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд╡рд┐рдХреНрд░реЗрддрд╛ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдлрд╝реЛрд░рдо рдкрд░, рдореБрдЭреЗ рдПрдХ рдкреЛрд╕реНрдЯ рдорд┐рд▓реА, рдЬреЛ 12 V рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдерд╛рдкрд┐рдд рдЕрд╡рд░реЛрдзрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреА рд╣реИ, рдФрд░ рдЗрд╕рдиреЗ рдореБрдЭреЗ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ рдХреА рдЬрд╛рдБрдЪ / рдЧрдгрдирд╛ рдореЗрдВ рд╕рдордп рдХреА рдмрдЪрдд рд╣реБрдИред

рд╣рдо Arduino рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ


рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ Arduino рдХреЗ рд╕рд╛рде рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, [рд▓реИрдВрдк] рдкрд┐рди рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛: Arduino рдореЗрдВ GND рдХреЛ [GND] рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдЧрд┐рдиреЗ-рдЪреБрдиреЗ Arduino рд╕рдВрдкрд░реНрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ [+] рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 3ред

рдпрджрд┐ рд╣рдо рдкрд┐рди 3 рдХреЛ INPUT_PULLUP ( рдкрд┐рдЫрд▓реЗ рдмрдЯрди рдХреЗ рд╕рдорд╛рди) рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рд╣рдореЗрдВ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдЧрд╛ред рдКрдкрд░реА рдмрд╛рдПрдБ Arduino рдХреЛрдб рдореЗрдВ "digitalRead (3)" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдорд╛рди рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдЬрдм рд╕реНрд╡рд┐рдЪ рдЪрд╛рд▓реВ / рдмрдВрдж рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо LOW рдФрд░ LED рд▓рд╛рдЗрдЯ рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ! рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдРрд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрдЯрди рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЙрд╕реА Arduino рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ


Arduino рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреВрд░рд╛ рд╕рд░реНрдХрд┐рдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣рд╛рдВ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рд╕реНрд╡рд┐рдЪ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрд▓рдИрдбреА рдХреЗ рд╕рд╛рдордиреЗ рдЫреЛрдЯреЗ рд╡рд░реНрддрдорд╛рди-рд╕реАрдорд┐рдд рдЕрд╡рд░реЛрдзрдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛ (рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдкреНрд░рддрд┐рд░реЛрдз 100 рдУрдо рд╣реИ), 20 рдХреЛрд╣рдо рджреНрд╡рд╛рд░рд╛ рдкреБрд▓-рдЕрдк рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ рднреА рд╣реИ, рдЬреЛ рдПрд▓рдИрдбреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╡рд╛рд╣ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд░реНрдХрд┐рдЯ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдПрд▓рдИрдбреА рдмрд╣реБрдд рдЙрдЬреНрдЬреНрд╡рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

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

рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЕрдЧрд░ рд╣рдо [рд▓реИрдВрдк] рдкрд┐рди рдХреЛ 0V рдпрд╛ + 5V рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдпрджрд┐ [рджреАрдкрдХ] 0 рд╡реА рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рддреЛ рдПрд▓рдИрдбреА рд▓рдЧрд╛рддрд╛рд░ рдмрдВрдж рд╣реИ ( рд╕реНрд╡рд┐рдЪ рд╕реНрдерд┐рддрд┐ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ ), рдФрд░ рдЕрд░реБрдбрд┐рдиреЛ рд╕реНрдерд┐рддрд┐ рдорд╛рдиреНрдпрддрд╛ рдЕрднреА рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдПрд▓рдИрдбреА рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ!


рдпрджрд┐ [рджреАрдкрдХ] + 5 рд╡реА рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рддреЛ рдПрд▓рдИрдбреА рд▓рдЧрд╛рддрд╛рд░ рдЪрд╛рд▓реВ рд╣реИ ( рд╕реНрд╡рд┐рдЪ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ ), рд╣рд╛рд▓рд╛рдВрдХрд┐, Arduino рд╕реНрдерд┐рддрд┐ рдХреА рдорд╛рдиреНрдпрддрд╛ рдЯреВрдЯ рдЧрдИ рд╣реИ - рдЙрдЪреНрдЪ рд╣рдореЗрд╢рд╛ рд╕рдВрдкрд░реНрдХ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рдПрдЧрд╛ред


рд╣рдо рдЗрд╕ рд╕реНрд╡рд┐рдЪ рдХреЛ Arduino рд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ


рд╣рдо рдЕрдзрд┐рдХ рдХреЛрдб рд▓рд┐рдЦрдХрд░ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕реАрдорд╛рдУрдВ ( рдПрд▓рдИрдбреА рдХреА рдХрдо рд╡рд░реНрддрдорд╛рди / рдЪрдордХ рдФрд░ рдПрд▓рдИрдбреА рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рдпрдВрддреНрд░рдг рдХреА рдХрдореА ) рдХреЛ рджреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдПрд▓рдИрдбреА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдЯреВрдЯ рдЧрдИ рд╕реНрдерд┐рддрд┐ рдХреА рдкрд╣рдЪрд╛рди рдХреЗ рдмреАрдЪ рд╕рдВрдШрд░реНрд╖ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдордп рдореЗрдВ рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рд╕реЗрдВрд╕рд░ рд╕рдВрдкрд░реНрдХ (3) рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдПрд▓рдИрдбреА рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, [рджреАрдкрдХ] рдкрд┐рди рдХреЛ рджреВрд╕рд░реЗ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рд╡рд╛рд▓реЗ рдЕрд░реБрдбрд┐рдиреЛ рдкрд┐рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 4 рд╕реЗ рддрд╛рдХрд┐ рдЖрдк рджреАрдкрдХ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВред

рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕реНрд╡рд┐рдЪ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрдврд╝реЗрдЧрд╛ рдФрд░ рдПрд▓рдИрдбреА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ (рд╣рдо рдЗрд╕реЗ рдмреНрд▓рд┐рдВрдХ рдХрд░реЗрдВрдЧреЗ), рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╕реНрд╡рд┐рдЪ рдХреА рд╕реНрдерд┐рддрд┐ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрд▓рдИрдбреА рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрд▓рдИрдбреА рдПрдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдмрд╕ рдПрдХ рдЕрдВрд╢ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

 int pinSwitch = 3; int pinLed = 4; void setup() { //connect to the PC Serial.begin(9600); //connect our switch's [+] connector to a digital sensor, and to +5V through a large resistor pinMode(pinSwitch, INPUT_PULLUP); //connect our switch's [lamp] connector to 0V or +5V directly pinMode(pinLed, OUTPUT); } void loop() { int lampOn = (millis()>>8)&1;//make a variable that alternates between 0 and 1 over time digitalWrite(pinLed, LOW);//connect our [lamp] to +0V so the read is clean int state = digitalRead(pinSwitch); if( lampOn ) digitalWrite(pinLed, HIGH);//connect our [lamp] to +5V Serial.println(state);//report the switch state to the PC } 

Arduino рдореЗрдЧрд╛ рдореЗрдВ, рдкрд┐рди 2-13 рдФрд░ 44-46 рдПрдирд╛рд▓реЙрдЧрд╡рд░реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 0V рд╕реЗ + 5V рддрдХ рд╡реЛрд▓реНрдЯреЗрдЬ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдХ рд╡рд░реНрдЧ рддрд░рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдорд╛рдирд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдПрд▓рдИрдбреА рдХреА рдЪрдордХ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдпрд╣ рдХреЛрдб рдкреНрд░рдХрд╛рд╢ рд╕реНрдкрдВрджрд┐рдд рдХрд░реЗрдЧрд╛, рди рдХрд┐ рдХреЗрд╡рд▓ рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ:

 void loop() { int lampState = (millis()>>1)&0xFF;//make a variable that alternates between 0 and 255 over time digitalWrite(pinLed, LOW);//connect our [lamp] to +0V so the read is clean int state = digitalRead(pinSwitch); if( lampState > 0 ) analogWrite(pinLed, lampState); } 

рдЕрд╕реЗрдВрдмрд▓реА рдЯрд┐рдкреНрд╕


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

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛:

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


рднрд╛рдЧ 2. рд╣рдо рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЧреЗрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ!


USB рдЧреЗрдорд┐рдВрдЧ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП OS рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд╛рдлреА рд╕рд░рд▓ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдЖрдкрдХреЛ Arduino USB рдЪрд┐рдк рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдпрд╣рд╛рдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: https://github.com/harlequin-tech-arduino-usb ред

рд▓реЗрдХрд┐рди рдЗрд╕ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ Arduino рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдбрд┐рд╡рд╛рдЗрд╕ USB рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдмрди рдЬрд╛рддрд╛ рд╣реИ рдФрд░ Arduino рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореВрд▓ Arduino рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдлреНрд▓реИрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпрд╛рдБ рдХрд╛рдлреА рджрд░реНрджрдирд╛рдХ рд╣реИрдВ - Arduino рдХреЛрдб рд▓реЛрдб рдХрд░реЗрдВ, рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдлрд░реНрдорд╡реЗрдпрд░ рдлрд╝реНрд▓реИрд╢ рдХрд░реЗрдВ, рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ, рдлрд╝реНрд▓реИрд╢ arduino рдлрд░реНрдорд╡реЗрдпрд░, рджреЛрд╣рд░рд╛рдПрдВ ...

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

 // define DEBUG if you want to inspect the output in the Serial Monitor // don't define DEBUG if you're ready to use the custom firmware #define DEBUG //Say we've got three buttons, connected to GND and pins 2/3/4 int pinButton1 = 2; int pinButton2 = 3; int pinButton3 = 4; void setup() { //configure our button's pins properly pinMode(pinButton1, INPUT_PULLUP); pinMode(pinButton2, INPUT_PULLUP); pinMode(pinButton3, INPUT_PULLUP); #if defined DEBUG Serial.begin(9600); #else Serial.begin(115200);//The data rate expected by the custom USB firmware delay(200); #endif } //The structure expected by the custom USB firmware #define NUM_BUTTONS 40 #define NUM_AXES 8 // 8 axes, X, Y, Z, etc typedef struct joyReport_t { int16_t axis[NUM_AXES]; uint8_t button[(NUM_BUTTONS+7)/8]; // 8 buttons per byte } joyReport_t; void sendJoyReport(struct joyReport_t *report) { #ifndef DEBUG Serial.write((uint8_t *)report, sizeof(joyReport_t));//send our data to the custom USB firmware #else // dump human readable output for debugging for (uint8_t ind=0; ind<NUM_AXES; ind++) { Serial.print("axis["); Serial.print(ind); Serial.print("]= "); Serial.print(report->axis[ind]); Serial.print(" "); } Serial.println(); for (uint8_t ind=0; ind<NUM_BUTTONS/8; ind++) { Serial.print("button["); Serial.print(ind); Serial.print("]= "); Serial.print(report->button[ind], HEX); Serial.print(" "); } Serial.println(); #endif } joyReport_t joyReport = {}; void loop() { //check if our buttons are pressed: bool button1 = LOW == digitalRead( pinButton1 ); bool button2 = LOW == digitalRead( pinButton2 ); bool button3 = LOW == digitalRead( pinButton3 ); //write the data into the structure joyReport.button[0] = (button1?0x01:0) | (button2?0x02:0) | (button3?0x03:0); //send it to the firmware sendJoyReport(joyReport) } 

рднрд╛рдЧ 3. рд╣рдо рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЕрдкрдиреЗ рдЧреЗрдо рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ!


рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрд╕ рдЧреЗрдо рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдмрд╛рддрдЪреАрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рддреЛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдк рд╕реАрдзреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдУрдПрд╕ рдХреЛ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ! рдкреЛрд╕реНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛; рдпрд╣ рд╡рд╣ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рд╕рд░рд▓ ASCII рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрдирд╛рдпрд╛ рдЬреЛ рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдЦреЗрд▓ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдмрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯреНрд╕ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВ ( рд╡реЗ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ COM рдкреЛрд░реНрдЯ рд╣реИрдВ; рд╡реИрд╕реЗ, рд╕реА рдореЗрдВ рдХрд┐рддрдирд╛ рднрдпрд╛рдирдХ рджрд┐рдЦрддрд╛ рд╣реИ ), рдЙрд╕ рдкреЛрд░реНрдЯ рдХреЛ рдвреВрдВрдвреЗрдВ рдЬрд┐рд╕рдореЗрдВ "Arduino" рдирд╛рдордХ рдбрд┐рд╡рд╛рдЗрд╕ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рдЗрд╕ рд▓рд┐рдВрдХ рд╕реЗ ASCII рдкрдврд╝рдирд╛ / рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред

Arduino рдХреА рддрд░рдл, рд╣рдо рд╕рд┐рд░реНрдл Serial.print рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдереЗред

рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛: https://github.com/hodgman/ois_protocol ред

рдЗрд╕рдореЗрдВ C ++ рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЦреЗрд▓ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ "рд╕рд░реНрд╡рд░" рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ Arduino рдХреЛрдб рдЬрд┐рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ "рдХреНрд▓рд╛рдЗрдВрдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Arduino рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ


Example_hardware.h рдореЗрдВ, рдореИрдВрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрдЯрди / рд░реЗрдбрд┐рдпреЛ рдмрдЯрди рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдИрдВ ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╕реНрд╡рд┐рдЪ" рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмрдЯрди рд╣реИред рдФрд░ "LEDSwitch2Pin" рдПрдХ рд╕реНрд╡рд┐рдЪ рд╣реИ рдЬрд┐рд╕рдХрд╛ рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдПрд▓рдИрдбреА рд╣реИред

рдореЗрд░реЗ рдмрдЯрди рдмрд╛рд░ рдХрд╛ рдирдореВрдирд╛ рдХреЛрдб example.ino рдореЗрдВ рд╣реИ ред

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

 #include "ois_protocol.h" //instantiate the library OisState ois; //inputs are values that the game will send to the controller struct { OisNumericInput myLedInput{"Lamp", Number}; } inputs; //outputs are values the controller will send to the game struct { OisNumericOutput myButtonOutput{"Button", Boolean}; } outputs; //commands are named events that the controller will send to the game struct { OisCommand quitCommand{"Quit"}; } commands; int pinButton = 2; int pinLed = 3; void setup() { ois_setup_structs(ois, "My Controller", 1337, 42, commands, inputs, outputs); pinMode(pinButton, INPUT_PULLUP); pinMode(pinLed, OUTPUT); } void loop() { //read our button, send it to the game: bool buttonPressed = LOW == digitalRead(pin); ois_set(ois, outputs.myButtonOutput, buttonPressed); //read the LED value from the game, write it to the LED pin: analogWrite(pinLed, inputs.myLedInput.value); //example command / event: if( millis() > 60 * 1000 )//if 60 seconds has passed, tell the game to quit ois_execute(ois, commands.quitCommand); //run the library code (communicates with the game) ois_loop(ois); } 

рдЦреЗрд▓ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ


рдЧреЗрдо рдХреЛрдб "рд╕рд┐рдВрдЧрд▓ рд╣реЗрдбрд░" рдХреА рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрд▓ рдореЗрдВ oisdevice.h рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред

рдПрдХ рдПрдХрд▓ CPP рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, #include рд╣реИрдбрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, #define OIS_DEVICE_IMPL рдФрд░ #define OIS_SERIALPORT_IMPL рд▓рд┐рдЦреЗрдВ - рдпрд╣ CPP рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмрдпрд╛рди, рд▓реЙрдЧрд┐рдВрдЧ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдпрд╛ рд╡реИрдХреНрдЯрд░ рд╣реИрдВ, рддреЛ рдХрдИ рдЕрдиреНрдп рдУрдЖрдИрдПрд╕_ * рдореИрдХреНрд░реЛрдЬрд╝ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЗрдВрдЬрди рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

COM рдкреЛрд░реНрдЯ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдФрд░ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 OIS_PORT_LIST portList; OIS_STRING_BUILDER sb; SerialPort::EnumerateSerialPorts(portList, sb, -1); for( auto it = portList.begin(); it != portList.end(); ++it ) { std::string label = it->name + '(' + it->path + ')'; if( /*device selection choice*/ ) { int gameVersion = 1; OisDevice* device = new OisDevice(it->id, it->path, it->name, gameVersion, "Game Title"); ... } } 

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

рдпрд╣ рд╕рдм рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: example_ois2vjoy / main.cpp ред

рднрд╛рдЧ 4. рдЕрдЧрд░ рдореИрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ 2 рдФрд░ 3 рднрд╛рдЧ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдЦреЗрд▓реЛрдВ (рднрд╛рдЧ 2) рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдФрд░ рдПрдХ Arduino рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдпрдВрддреНрд░рдХ рджреНрд╡рд╛рд░рд╛ рдЦреЗрд▓ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдорд╛рдирдХ Arduino рдлрд░реНрдорд╡реЗрдпрд░ рдФрд░ рдПрдХ рдЕрдиреНрдп Arduino рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛрдиреЛрдВ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдирдореВрдирд╛ рдЖрд╡реЗрджрди рдЬрд┐рд╕рдХреЗ рдКрдкрд░ рдореИрдВрдиреЗ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдерд╛ ( ois2vjoy ) рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди OIS рдбрд┐рд╡рд╛рдЗрд╕ (рдкрд╛рд░реНрдЯ 3 рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо) рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдкреАрд╕реА рдкрд░ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдирд┐рдпрдорд┐рдд рдирд┐рдпрдВрддреНрд░рдХ / рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдбреЗрдЯрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рддрдм рд╡рд░реНрдЪреБрдЕрд▓ рдХрдВрдЯреНрд░реЛрд▓рд░ / рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдУрдЖрдИрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд░реНрдорд╡реЗрдпрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ) рдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ рдирд┐рдпрдорд┐рдд рдирд┐рдпрдВрддреНрд░рдХ / рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдкреАрд╕реА рдкрд░ рдУрдЖрдИрдПрд╕ 2vjoy рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдПрдВ, рдЬреЛ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддрд╛ рд╣реИред

рднрд╛рдЧ 5. рдкреВрд░реНрдгрддрд╛


рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдпрд╣ рд▓реЗрдЦ рдЙрдкрдпреЛрдЧреА рдпрд╛ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрд╛ред рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

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

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


All Articles