рдЕрдкрдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрдЪ рдХреАрдмреЛрд░реНрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВ

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

рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореБрдЭреЗ 8 рдмрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреАрдмреЛрд░реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдореИрдВрдиреЗ рдХреИрдкреЗрд╕рд┐рдЯрд┐рд╡ рд╕реЗрдВрд╕рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдкреНрд░рд╕рд┐рджреНрдз рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓реЗрдЦ рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдПрдХ рд╕реНрдорд╛рд░рд┐рдХрд╛ рдЙрдкрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреМрддрд┐рдХ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╣рд╛рде рдореЗрдВ рд▓реЗрдиреЗ рдкрд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ ( http://habrahabr.ru/blogs/DIY/111627/ )
рд╕рд┐рджреНрдзрд╛рдВрдд рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реИ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рджреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ рдХрд╛ рдПрдХ рд╡реАрдбрд┐рдпреЛ:



рдЪрд░рдг 1: рд╕рд░реНрдХрд┐рдЯрд░реА



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

рдЫрд╡рд┐

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

рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХреЗ рд╕рдордп, рд╣рдо рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдЗрдирдкреБрдЯ рдкрд░ рдкрд┐рди рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ (рд╕рд╕реНрдкреЗрдВрдбрд░реНрд╕ рдЕрдХреНрд╖рдо рд╣реИрдВ!)ред рдЗрд╕ рд╕рдордп, рдкрд┐рди рдЖрдИрдУрдПрдо рдХреЗ рдХрдИ рджрд╕рд┐рдпреЛрдВ (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реИрдХрдбрд╝реЛрдВ) рдХреЗ рдкреНрд░рддрд┐рд░реЛрдз рдХреЗ рдкреНрд░рддрд┐рд░реЛрдз рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рддрд┐рдмрд╛рдзрд╛ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд┐рди рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдзрд╛рд░рд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдмрд╣рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреА рд╣реИ, рдФрд░ рд╕реЗрдВрд╕рд░ рдХреА рдУрд░ рдмрд╣рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреА рд╣реИред рдЬреИрд╕реЗ рд╣реА рд╕реЗрдВрд╕рд░ рд▓реЙрдЧ рд╕реНрддрд░ рд╕реЗ рдКрдкрд░ рдПрдХ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред 1, рдпрд╣ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдЗрдирдкреБрдЯ рдПрдХрддрд╛ рджрд┐рдЦрд╛рдПрдЧрд╛ред
PD0 рдХреЗ рдмрд╛рдж рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдЙрдЪреНрдЪ 1 рдкреНрд░рддрд┐рдмрд╛рдзрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд▓реЙрдЧ 1 рдЗрд╕ рдкрд░ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реЗрдВрд╕рд░ рдХреИрдкреЗрд╕рд┐рдЯреЗрдВрд╕ рдмрджрд▓рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╕реНрдкрд░реНрд╢ рдХреЗ рдХреНрд╖рдг рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИред

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

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

рдЫрд╡рд┐

рдЕрд╡рд╕рд╛рдж рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╡реЗрджрдХ рдХреЗ рдКрдкрд░ рдПрдХ рдПрд╕рдПрдордбреА рдбрд╛рдпреЛрдб рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдпрд╣ рд╕рдм рдПрдХ ATMega88 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, 20 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдШрд╛рд╡ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╕ рдХреАрдмреЛрд░реНрдб рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЖрдкрдХреА рдЬрд╝рд░реВрд░рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬреЛ рдореЗрдЧрд╛ рдЦреАрдВрдЪ рджреЗрдЧрд╛ред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, SPI рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ (рдореИрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдлреНрд▓реИрд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рдерд╛, рдФрд░ рдпрд╣ рдмрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рд▓реЗрдХрд┐рди рдЖрдк SPI UART, I2C рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдЯ-рдЗрди рдореЗрдЧрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ ObjDev рд╕реЗ рдпреВрдПрд╕рдмреА рдХреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░, рдЬреИрд╕реЗ рдХрд┐ рдПрдлрдЯреАрдбреАрдЖрдИ рдХрдирд╡рд░реНрдЯрд░ рдпреВрдПрд╕рдмреА-> рдпреВрдПрдЖрд░рдЯреАред

рдЕрдВрддрд┐рдо рдЪрд┐рддреНрд░ (Altium рд╕реЗ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ) рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЫрд╡рд┐

рдлрд┐рд░ рд╕реЗ, рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдХреБрдЫ рднреА рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ - рдПрдХ рдореЗрдЧрд╛ рдХреНрд▓реЙрдХрд┐рдВрдЧ рд╕рд░реНрдХрд┐рдЯ, рдХрдВрдбреЗрдирд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдореВрдерд┐рдВрдЧ рдкрд╛рд╡рд░, рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ / рдХрдиреЗрдХреНрдЯрд┐рдВрдЧ рдХрдиреЗрдХреНрдЯрд░, 8 рдбрд╛рдпреЛрдб рдФрд░ 8 рд╕реЗрдВрд╕рд░ред

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

рдЖрдЧреЗ рд╣рдо рдХреЛрдб рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЪрд░рдг 2: рдХреЛрдб



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

#include <avr/interrupt.h> #include <avr/io.h> unsigned char KBD_STATUS=0x00, TMP_STATUS=0x00; //    ,     unsigned short SensorTimes[8]={0,0,0,0,0,0,0,0}; //   unsigned short SensorHI[8]={0,0,0,0,0,0,0,0}, //   -   SensorLO[8]={0,0,0,0,0,0,0,0}; //    void CheckSensors(); unsigned short SensToLED[8]={8,16,32,1,4,2,1,2}; //. , ..     ) ISR(TIMER0_OVF_vect) { CheckSensors(); //  for(unsigned short i=0;i<8;i++) { if(KBD_STATUS&(1<<i)==0) // .  ,       if(i==3||i==7) PORTB|=SensToLED[i]; //    .        else PORTC|=SensToLED[i]; //      . else if(i==3||i==7) PORTB|=SensToLED[i]; else PORTC&=~SensToLED[i]; } } ISR(SPI_STC_vect) //       SPI { SPDR=KBD_STATUS; //   ! } void InitSPIMode3() // SPI { DDRB= 0b00010011; PORTB=0b00000011; SPCR= 0b11001100; SPSR=0x00; } void Calibrate() //     { unsigned char i=1,k=0; while(i!=0) { TCNT1=0x0000; TCCR1B=0x01; DDRD = ~i; while((PIND&i)==0); TCCR1B=0x00; DDRD|=i; SensorTimes[k]=TCNT1; SensorHI[k]=SensorTimes[k]+70; SensorLO[k]=SensorTimes[k]+20; k++; i<<=1; } } void CheckSensors() //     { unsigned char i=1,k=0; TMP_STATUS=KBD_STATUS; TCNT1=0x0000; TCCR1B=0x01; DDRD = 0b11111110; while(i!=0) { TCNT1=0x0000; TCCR1B=0x01; DDRD = ~i; while((PIND&i)==0); TCCR1B=0x00; DDRD|=i; if(TCNT1>SensorHI[k]) //,        TMP_STATUS|=i; else if(TCNT1<=SensorLO[k]) TMP_STATUS&=~i; k++; i<<=1; } KBD_STATUS=TMP_STATUS; } int main() { DDRD=0xFF; PORTD=0x00; PORTC=0xFF; DDRC=0xFF; TCCR0=0b00000101; TCNT0=0x00; TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; MCUCR=0x00; TIMSK=0x01; ACSR=0x80; SFIOR=0x00; InitSPIMode3(); for(int i=0;i<1024;i++) //        CheckSensors(); //  ) KBD_STATUS=0x00; TMP_STATUS=0x00; Calibrate(); // sei(); while(1); } 

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


All Articles