"рдХреНрд░реАрдкрд┐рдВрдЧ рд▓рд╛рдЗрди" - рдПрд▓рдИрдбреА рдореИрдЯреНрд░рд┐рдХреНрд╕ RL-M2388 рдФрд░ Arduino Mega рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдЧрддрд┐рд╢реАрд▓ рд╕рдВрдХреЗрдд

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

рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ

рдЗрд╕ рдПрд▓рдИрдбреА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ 64 рд▓рд╛рд▓ рдПрд▓рдИрдбреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдПрд▓рдИрдбреА рдХреЗ рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЖрд╡рд╛рд╕ рдкрд░ 64 рд╕рдВрдкрд░реНрдХреЛрдВ рдФрд░ 65 рдбрд┐рдЬрд┐рдЯрд▓ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╣ рдЕрд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдФрд░ рдиреБрдХрд╕рд╛рдирджреЗрд╣ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрд╛рд░рдЦрд╛рдиреЗ рдореЗрдВ, рдПрд▓ рдИ рдбреА рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдХреЗ рдореИрдЯреНрд░реАрд╕ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, 8x8) рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ 8 рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
рдЫрд╡рд┐

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдХреЗрд╡рд▓ 16 рдбрд┐рдЬрд┐рдЯрд▓ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдПрд▓рдИрдбреА рдХреЛ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ pin13 рдкрд░ 1 (рдЪрд┐рддреНрд░ рджреЗрдЦреЗрдВ) рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ pin9 рдкрд░ 0 рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рдзрд┐ рдХреЛ рд╕реНрдереИрддрд┐рдХ рд╕рдВрдХреЗрдд рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдЧрддрд┐рд╢реАрд▓ рд╕рдВрдХреЗрдд

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

рдбрд╛рдпрдиреЗрдорд┐рдХ рдбрд┐рд╕реНрдкреНрд▓реЗ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рджреЗрдЦреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдБ:
1. рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдВрдн / рдкрдВрдХреНрддрд┐ ("рдкрд┐рдХреНрд╕реЗрд▓" рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЕрд╡рдзрд┐ рд╕реНрдерд┐рд░ рд╣реИ, рд╕рднреА рдХреЙрд▓рдо / рдкрдВрдХреНрддрд┐рдпреЛрдВ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ "рдкрд┐рдХреНрд╕реЗрд▓") рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред
2. рдмрджрд▓рддреЗ рдХреЙрд▓рдо / рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдЖрд╡реГрддреНрддрд┐ ("рдкрд┐рдХреНрд╕реЗрд▓" рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИред

рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд

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

рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд:

1. рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рдЪрд░рд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ

рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдПрд▓рдИрдбреА рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЬреЗ рдкрд░ рдЖрдпрд╛рдо рдХрд╛ рдПрдХ рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ 8 рд╕реЗ 8 рдкрд┐рдХреНрд╕реЗрд▓ рд╣реИред рддреЛ, рдЯрд╛рдЗрдк рдмреВрд▓рд┐рдпрди рдХрд╛ рдПрдХ рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

boolean A[8][8] = {0,0,1,1,1,1,0,0, 0,1,0,0,0,0,1,0, 0,1,0,0,0,0,1,0, 0,1,0,0,0,0,1,0, 0,1,1,1,1,1,1,0, 0,1,0,0,0,0,1,0, 0,1,0,0,0,0,1,0, 0,1,0,0,0,0,1,0} 


рд▓реВрдк рдореЗрдВ, рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдПрд░реЗ рддрддреНрд╡ рдП [i] [рдЬреЗ] = 1 рд╣реИ, рддреЛ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрдерд┐рдд рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рдПрд▓рдИрдбреА рдЪрд╛рд▓реВ рдХрд░реЗрдВ (I; J), рдПрд▓рдИрдбреА рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рд░реЛрдХреЗрдВ рдФрд░ рдПрд▓рдИрдбреА рдХреЛ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрдВрдж рдХрд░реЗрдВ (I; J)ред рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреНрд░рддреАрдХ "рдП" рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрд╣ рдкреНрд░рддреАрдХ рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рд╣рдо рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ "рд╕реНрдХреНрд░реАрди рдЖрдЙрдЯрдкреБрдЯ" рдХрд╣рддреЗ рд╣реИрдВ ред рддреЛ, рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рд▓рдЧрд╛ред

2. рд╕реНрдХреНрд░реАрди рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреА рдЬрд╛рдирдХрд╛рд░реА

рдмреЗрд╢рдХ, рдпрд╣ рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрднреА рднреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдЗрд╕реЗ "рдкреБрдирд░реНрдЬреАрд╡рд┐рдд" рдХрд░рдирд╛ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред рдЪрд▓рддреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдореЗрдВ, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
1. рд╣рдо "рд╕реНрдХреНрд░реАрди рдбрд┐рд╕реНрдкреНрд▓реЗ" рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╣рддреЗ рд╣реИрдВред
2. рд╣рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдП рдХреЗ 1 рдХреЙрд▓рдо рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдмрдлрд░ (рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгреА BUFFER [8] [1]) рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
3. рд╣рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ A [i] [j + 1] рд╕реЗ рд╕реНрдерд┐рддрд┐ A [i] [j] рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рд╣рдо рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдХреЙрд▓рдо рджреНрд╡рд╛рд░рд╛ рдмрд╛рдИрдВ рдУрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ "рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд" рдХрд░рддреЗ рд╣реИрдВред
4. рд╣рдо рдореИрдЯреНрд░рд┐рдХреНрд╕ A рдХреЗ рдЕрдВрддрд┐рдо рдХреЙрд▓рдо рдореЗрдВ BUFFER рдмрдлрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рдлреНрд░реА рдХреЙрд▓рдо рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдмрд╛рдИрдВ рдУрд░ рдПрдХ рдХреЙрд▓рдо рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ)ред рд╣рдо рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ "рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рд╕реВрдЪрдирд╛" рдХрд╣реЗрдВрдЧреЗред

рдпрд╣ рдкреВрд░реА рд╕реНрдХреНрд░реАрди рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИред рдЕрдм, рдЧрддрд┐рд╢реАрд▓ рд╕рдВрдХреЗрддрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдЬрд╛рдирдирд╛, рд╣рдо рдЕрднреНрдпрд╛рд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдбреАрдмрдЧ рдмреЛрд░реНрдб рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛

рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ 16 рдкрд┐рдВрд╕ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ 8 рд╕рдВрдкрд░реНрдХ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ 8 рд╕рдВрдкрд░реНрдХ рдорд┐рд▓рд╛рдк рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдереЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ:

рдирд┐рд╖реНрдХрд░реНрд╖ рдЬреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ 23,25,27,29,31,33,35,37, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдкреИрд░реЛрдВ рдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИрдВ;
рдЬреЛ рдирд┐рд╖реНрдХрд░реНрд╖ 39,41,43,45,47,49,51,53 рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рд╡реЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдкреИрд░реЛрдВ рдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИрдВред

рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ

рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ Arduino IDE рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХреНрд░рдорд╛рджреЗрд╢рд┐рдд рдФрд░ рдлреНрд▓реИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдиреАрдЪреЗ рд▓рд┐рдЦреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП:

рдкрд┐рдирдореЛрдб () рдлрд╝рдВрдХреНрд╢рди
рдЗрдирдкреБрдЯ рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ (рдкрд┐рди) рдХреЗ рдСрдкрд░реЗрд╢рди рдореЛрдб рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
pinMode (рдкрд┐рди, рдореЛрдб), рдЬрд╣рд╛рдВ рдкрд┐рди: рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ (рдкрд┐рди) рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬрд┐рд╕реЗ рдЖрдк рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ; рдореЛрдб: рджреЛ рдорд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЛрдб - INPUT рдпрд╛ OUTPUT, рдХреНрд░рдорд╢рдГ рдЗрдирдкреБрдЯ рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

DigitalWrite () рдлрд╝рдВрдХреНрд╢рди
рдПрдХ рдбрд┐рдЬрд┐рдЯрд▓ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ (рдкрд┐рди) рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪреНрдЪ рдпрд╛ рдХрдо рдореВрд▓реНрдп рднреЗрдЬрддрд╛ рд╣реИред
digitalWrite (рдкрд┐рди, рдорд╛рди), рдЬрд╣рд╛рдВ рдкрд┐рди: рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдирдВрдмрд░ (рдкрд┐рди); рдореВрд▓реНрдп: рдЙрдЪреНрдЪ рдпрд╛ рдХрдо

DelayMicroseconds () рдлрд╝рдВрдХреНрд╢рди
рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЙрдк рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди (1 рд╕реЗрдХрдВрдб рдореЗрдВ 1,000,000 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб)ред
рджреЗрд░реАрдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб (рд╣рдореЗрдВ), рдЬрд╣рд╛рдВ рд╣рдореЗрдВ: рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд░реЛрдХрд╛ рдЧрдпрд╛ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛ред (рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд int)

рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╕рдВрд░рдЪрдирд╛ (рд╕реНрдХреЗрдЪ, рдЪреВрдВрдХрд┐ рдПрдХ arduino рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рдЙрд╕ рддрд░рд╣ рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдореЗрдВ рдирд┐рдореНрди рд░реВрдк рд╣реИ:

 void setup() { тАж } void loop() { тАж } 


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

рдЪрд▓реЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред I / O рдкреЛрд░реНрдЯ рд╕реНрдЯреЗрдЯрд╕ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ: рдЗрдирдкреБрдЯ рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

 const int row[8]={23,25,27,29,31,33,35,37}; //  8 ,     const int col[8]={39,41,43,45,47,49,51,53}; // ?    . void setup() { for (int i=0; i<8; i++) { pinMode(row[i],OUTPUT); //        ┬л ┬╗ pinMode(col[i],OUTPUT); //    } for (int i=0; i<8; i++) { digitalWrite(row[i],HIGH); } } 


рдЖрдЗрдП рдЕрдм рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгреА рд╣реИ:

 boolean A[8][8] = {0,0,1,1,1,1,0,0, 0,1,0,0,0,0,1,0, 0,1,0,0,0,0,1,0, 0,1,0,0,0,0,1,0, 0,1,1,1,1,1,1,0, 0,1,0,0,0,0,1,0, 0,1,0,0,0,0,1,0, 0,1,0,0,0,0,1,0} 


рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ "рд╕реНрдХреНрд░реАрди рдбрд┐рд╕реНрдкреНрд▓реЗ" рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

 int v=3; //  .             int dms=400; //  ┬л┬╗.   ,      .   ,        void paint(boolean screen[8][8], int v) //       v { int i, j; for (int c=0; c <v; c ++) //       { for (i=0; i<8; i++) for (j=0; j<8; j++) { if (screen[i][j]= =1) //    = 1 { digitalWrite(row[i], LOW); digitalWrite(col[j], HIGH); delayMicroseconds(dms); digitalWrite(row[i], HIGH); digitalWrite(col[j], LOW); //      ,  ,  . } else { digitalWrite(row[i], HIGH); digitalWrite(col[j], LOW); delayMicroseconds(dms); digitalWrite(row[i], HIGH); digitalWrite(col[j], LOW); } //      ,  ,  . (        ,      ┬л┬╗  ,          .    1 тАУ   ,    0 тАУ    -    ,      ) } } } 


рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ "рд╕реВрдЪрдирд╛ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ" рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

 void scroll(boolean screen[8][8]) //        { boolean buf[8][1]; for (int i=0; i<8; i++) { buf[i][0]=screen[i][0]; //  1    } for (int i=0; i<8; i++) for (int j=0; j<8; j++) { screen[i][j]=screen[i][j+1]; //       } for (int i=0; i<8; i++) { screen[i][8-1]=buf[i][0]; //    ( )    } } 


рдЕрдм рдореИрдВ рдкреВрд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдб рджреВрдВрдЧрд╛:

 const int row[8]={23,25,27,29,31,33,35,37}; const int col[8]={39,41,43,45,47,49,51,53}; int v=3; int dms=400; boolean A[8][8] = {0,0,1,1,1,1,0,0, 0,1,0,0,0,0,1,0, 0,1,0,0,0,0,1,0, 0,1,0,0,0,0,1,0, 0,1,1,1,1,1,1,0, 0,1,0,0,0,0,1,0, 0,1,0,0,0,0,1,0, 0,1,0,0,0,0,1,0}; void setup() { for (int i=0; i<8; i++) { pinMode(row[i],OUTPUT); pinMode(col[i],OUTPUT); } for (int i=0; i<8; i++) { digitalWrite(row[i],HIGH); } } void loop() { paint(A, v); scroll(A); } void paint(boolean screen[8][8], int v) { int i, j; for (int c=0; c <v; c ++) { for (i=0; i<8; i++) for (j=0; j<8; j++) { if (screen[i][j]==1) { digitalWrite(row[i], LOW); digitalWrite(col[j], HIGH); delayMicroseconds(dms); digitalWrite(row[i], HIGH); digitalWrite(col[j], LOW); } else { digitalWrite(row[i], HIGH); digitalWrite(col[j], LOW); delayMicroseconds(dms); digitalWrite(row[i], HIGH); digitalWrite(col[j], LOW); } } } } void scroll(boolean screen[8][8]) { boolean buf[8][1]; for (int i=0; i<8; i++) { buf[i][0]=screen[i][0]; } for (int i=0; i<8; i++) for (int j=0; j<8; j++) { screen[i][j]=screen[i][j+1]; } for (int i=0; i<8; i++) { screen[i][8-1]=buf[i][0]; } } 


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

рд╕реМрднрд╛рдЧреНрдп рд╣реИ

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


All Articles