Arduino: рдШрд░реЗрд▓реВ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ IR рдирд┐рдпрдВрддреНрд░рдг

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

рдРрд╕рд╛ рдЦрд┐рд▓реМрдирд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕реЗ рднреА рдмрд░реНрджрд╛рд╢реНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рдореЗрд░реА рд╕реНрдореГрддрд┐ рдореБрдЭреЗ рд╕рд╣реА рд╕реЗрд╡рд╛ рджреЗрддреА рд╣реИ, рддреЛ рддреАрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП GlobalCache рдХреА рд▓рд╛рдЧрдд рд▓рдЧрднрдЧ 6000-7000 рд▓рдХрдбрд╝реА рдХреЗ рд░реВрдмрд▓ рд╣реИред рдмрд╣реБрдд рдорд╛рдирд╡реАрдп рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЙрдкрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред

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

рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рд░рд▓ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд┐рд░реНрдорд╛рддрд╛ рдХрдорд╛рдВрдб рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рднреА рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рдПрдХ рд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИред рдХреБрдЫ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЖрдк рдЕрдкрдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП HEX рдпрд╛ ProntoHEX рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИред
HEX рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХрдорд╛рдВрдб рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ: 0000 FREQ CNT1 CNT2 ON_1 OFF1 ON_2 OFF2 ON_n OFFnред
рдиреАрдЪреЗ рдкрдВрдХреНрддрд┐ рд╣реИ:
  1. 0000 рд╣рдореЗрд╢рд╛ рдЪрд╛рд░ рд╢реВрдиреНрдп рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдо рдкрд╣рд▓реЗ рджреЛ рд╢реВрдиреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рд░рд┐рдкреАрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗ, рджреВрд╕рд░рд╛ рджреЛ рд╢реВрдиреНрдп рдпрд╣ arduino рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдирдВрдмрд░ рд╣реЛрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреЛрдб 010D - рджреЛ рдмрд╛рд░ рдХрдорд╛рдВрдб рдХреЛ рджреЛрд╣рд░рд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдЖрдЙрдЯрдкреБрдЯ 13 (рдПрдХ рдирд┐рд░реНрдорд┐рдд рдПрд▓рдИрдбреА рдХреЗ рд╕рд╛рде) рдХреЛ рднреЗрдЬреЗрдЧрд╛;
  2. FREQ - рд╕рдВрджрд░реНрдн рд╕рдВрдХреЗрдд рдЖрд╡реГрддреНрддрд┐ред рдЖрдорддреМрд░ рдкрд░ рейрел-рекреж kHz рдХреА рд╕реАрдорд╛ рдореЗрдВ рдФрд░ рд▓рд┐рдЦрд┐рдд рд░реВрдк рд╕реЗ - рейрем kHz = режреж 115рей = резрезрел, рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рджрд╢рдорд▓рд╡ резрезрел рейрем kHz рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреНрдпреЛрдВ рджреЗрддрд╛ рд╣реИ, рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рекрезрекрел / FREQ;
  3. CNT1 рд╕рдмрд╕реЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реВрдВ;
  4. CNT2 - рдореИрдВ рдЗрд╕реЗ рднреА рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реВрдВ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ;
  5. рдЪрд╛рд▓реВ - рд▓реЗрдХрд┐рди рдпрд╣ рдбреЗрдЯрд╛ рд╣реИред рдпрд╣ рд╕рдВрджрд░реНрдн рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдЕрд╡рдзрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрдм рд╣рдо рдПрдХ рдЖрдИрдЖрд░ рдбрд╛рдпреЛрдб рдХреЗ рд╕рд╛рде "рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ" рдХрд░рддреЗ рд╣реИрдВ;
  6. рдЙрддрд░ - рдФрд░ рдпрд╣ рдЕрд╡рдзрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрдм рд╣рдо рдкреИрд░ рдкрд░ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд╢реВрдиреНрдп рд░рдЦрддреЗ рд╣реИрдВред

рдЖрдкрдХреЛ рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдЙрдкрд░реНрдпреБрдХреНрдд рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:
рдЕрд╡рд░рдХреНрдд рд╕рдВрдХреЗрдд рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЪрд┐рддреНрд░рдг
рдареАрдХ рд╣реИ, рдЬрдм рд╣рдо рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЙрди рд╕рднреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЬрдм рдореИрдВрдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдирдП рдЬрд╛рдирд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рд╢рд╛рдпрдж рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ:
Arduino рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝рдВрдХреНрд╢рди рдЯреЛрди (рдкрд┐рди, рдЖрд╡реГрддреНрддрд┐, рдЕрд╡рдзрд┐) рд╣реИ, рдпрд╣ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдкреЛрд░реНрдЯ рдкрд░ рдПрдХ рд╕рдВрдХреЗрдд рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ - рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ "рд▓рд╣рд░", рдПрдХ рджреА рдЧрдИ рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рдФрд░ 50% рдХрд░реНрддрд╡реНрдп рдЪрдХреНрд░ рдХреЗ рд╕рд╛рде, рдЗрдВрдЯрд░рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдЬрд▓реНрджреА рд╕реЗ рд╡реНрд╣реАрдкреНрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╕рдЯреАрдХрддрд╛ рдмрдврд╝рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП, Tone.cpp рдлрд╝рд╛рдЗрд▓ рдХреЛ \ Arduino \ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ \ arduino \ cores \ arduino \ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ IR_Gen.cpp рдХреЛ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ред ред рдлрд┐рд░, рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдореИрдВрдиреЗ рд▓рд╛рдкрддрд╛ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рд╢рд╛рдирджрд╛рд░ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд╣рд╛рдВ рднреА рдереЗред рдЯреЛрди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рд╛рд░рдВрдн (рдЖрд╡реГрддреНрддрд┐) рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдХрд╣реАрдВ рднреА рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рджреЛ рдФрд░ рдШреЛрд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рдВрд╕ sendir (char ir_string []) рдФрд░ sendLastIR (), рдЬреЛ рдкреВрд░реНрд╡ рдЯреЛрди () (startIR ()) рдХрд╣рддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЙрдбреНрдпреВрд▓реЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рд▓рд╛рдЗрди рдПрдХ рд╕реЗрдЯ рд╣реИ IR рдХрдорд╛рдВрдб рдХрд╛ рдбреЗрдЯрд╛, рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП ParseIRString рдкрд╛рд░реНрд╕рд┐рдЧ рдлрд╝рдВрдХреНрд╢рди рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рд╢реВрдиреНрдп рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдбреЗрдЯрд╛ рдЖрдИрдЖрд░ рдХрдорд╛рдВрдб рдХреЗ рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдореЗрд▓ рд╣реЛрдиреЗ рдкрд░ рд╕рдВрджрд░реНрдн рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рдПрдЧрд╛ред рдореИрдВ рдХреЛрдб рдХреЗрд╡рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ рджреВрдВрдЧрд╛, рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдП рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреИрд╕реЗ рд╣реЛрддреА рд╣реИ:
unsigned int ParseIRString(char IRString[]){ byte xBool = 0; unsigned int bInt = 0; ir_data_array_length = 0; unsigned int IR_Frequency = 0; unsigned int IR_String_Length = 1024; char Separator = ' '; unsigned int i = 5; char bChArr[4] = {0}; byte NumSys = 16; ir_out_pin = 255; if(IRString[0]=='s'){ //    Global Cache ir_out_pin = (((IRString[7]-48)*3)-(3-(IRString[9]-48)))-1; bChArr[0] = IRString[19]; bChArr[1] = IRString[20]; bChArr[2] = IRString[21]; bChArr[3] = '\r'; ir_repeat_count = StrToInt(bChArr,10)-1; Separator = ','; i = 13; NumSys = 10; }else{ //    HEX bChArr[0] = IRString[3]; bChArr[1] = IRString[4]; bChArr[2] = '\r'; ir_out_pin = StrToInt(bChArr,16); bChArr[0] = IRString[0]; bChArr[1] = IRString[1]; ir_repeat_count = StrToInt(bChArr,16); } if ((ir_out_pin>13)||(ir_out_pin<0)){return 0;} for (i; i<IR_String_Length; i++){ if((IRString[i]>='a')&&(IRString[i]<='f')){IRString[i]-=32;} //UpperCase if((IRString[i] != Separator)&&(IRString[i] != '\r')){ // ,    if((IRString[i]>47)&&(IRString[i]<58)){ //   bInt = bInt * NumSys + (IRString[i] - 48); //  }else{ if ((IRString[i]>='A')&&(IRString[i]<='F')&&(NumSys==16)){//  A  F bInt = bInt * NumSys + (IRString[i] - 55); //  }else{ return 0; } } }else{ if(IR_Frequency==0){ if(NumSys==16){ //  HEX IR_Frequency = (4145/bInt)*1000; //   }else{ // Global Cache IR_Frequency = bInt; //   } xBool++; }else{ if(xBool>2){ ir_data_array[ir_data_array_length]=bInt*2; //  ir_data_array_length++; }else{ xBool++; } } bInt = 0; if(IRString[i] == '\r'){Serial.println(IR_Frequency,DEC); return IR_Frequency;} } } } 

рдлрд┐рд░ рд╣рдо рдЕрдкрдиреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд░ рдХреА рд░реБрдХрд╛рд╡рдЯ рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ:
 ISR(TIMER2_COMPA_vect){ if (ir_data_array[ir_data_current_step] > 0){ if(ir_data_current_step%2==0){ *timer2_pin_port ^= timer2_pin_mask; // }else{ *timer2_pin_port &= ~(timer2_pin_mask); //  } ir_data_array[ir_data_current_step]--; }else{ ir_data_array[ir_data_current_step] = ir_data_buffer; ir_data_current_step++; ir_data_buffer = ir_data_array[ir_data_current_step]; } if (ir_data_current_step == ir_data_array_length){ if(ir_repeat_count>0){ ir_repeat_count--; ir_data_current_step = 0; }else{ stopIR(tone_pins[0]); } } } 


Arduino.h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрд╕ рдПрдХреНрд╕реНрдЯреНрд░рд╛рд╡рд┐рдЧрдиреЛрдЬрд╝рд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдирдП рдмрдирд╛рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рдВрд╕ рдмрд╛рдЗрдЯ sendIR (рдЪрд╛рд░ ir_string []) рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ; рдмрд╛рдЗрдЯ sendLastIR (); рдФрд░ рдЖрд╡рд╛рдЬ, рдмрд╛рдд рдЯреЛрдкреА рдХреА рд╣реИред рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдереЛрдбрд╝рд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЖрд░реНрджреАрдиреЛ рд╡рд╛рддрд╛рд╡рд░рдг рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдШрд░реЗрд▓реВ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреИрдпрд╛рд░ рдЙрдкрдХрд░рдг рд╢рд╛рдорд┐рд▓ рдерд╛ред
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рдХреБрдЫ рднреА рддрдп рдХрд░рдиреЗ рдХрд╛ рд╢реМрдХ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛, рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХреБрдЫ рднреА рдЗрд╕реЗ рдХреЗрд╡рд▓ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред

рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рдирдХрд╛рд░реА:
рдЧреНрд▓реЛрдмрд▓ рдХреИрд╢ рд╡реЗрдмрд╕рд╛рдЗрдЯ
рдЧреНрд▓реЛрдмрд▓ рдХреИрд╢ рдбрд┐рд╡рд╛рдЗрд╕ рдПрдкреАрдЖрдИ рдкреАрдбреАрдПрдл
рдЯреЛрди рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд▓рд┐рдП рд░реВрд╕реА рдорджрдж
рдЬреИрд╕рд╛ рдХрд┐ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдХреЗ рд▓рд┐рдП рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрд╡рд░рдХреНрдд рдкреНрд░рдмрдВрдзрди рдкрд░ рдЬрд╛рдирдХрд╛рд░реА
рдкреНрд░рд╕рд┐рджреНрдз IRRemote рдкреБрд╕реНрддрдХрд╛рд▓рдп

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


All Articles