рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд░реВрдк рдореЗрдВ Arduino UNO рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдореБрдЭреЗ рдкрд╛рдиреА рдХреЗ рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд╣рд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛, рддрд╛рдХрд┐ рд░реАрдбрд┐рдВрдЧ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рддрд╣рдЦрд╛рдиреЗ рдореЗрдВ рди рдЪрдврд╝реЗрдВред рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рдж, рдореИрдВ ATTiny2313A (рдпрд╣ ~ 80r рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реИ, рдФрд░ ~ 1000r рдХреА рд▓рд╛рдЧрдд рдкрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ Arduino рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЧрдпрд╛ред рдореБрдЭреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП) + рдХрдИ рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ, рдмрдЯрди рдФрд░ рдПрдХ 7-рдЦрдВрдб рд╕рдВрдХреЗрддрдХред рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкрд╣рд▓реЗ рд░реБрдХ рдЧрдпрд╛ - рдЕрд░реБрдбрд┐рдиреЛ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдореИрдВ рдПрдордХреЗ рдХреЛ рд▓реЗрдХрд░ рдмрд╣реБрдд рдЙрддреНрд╕реБрдХ рдирд╣реАрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рд╣реИрдВред Arduino рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рдХреНрд╖рдорддрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ рдХрднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ред


рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрдИ рд▓реЗрдЦ рд╣реИрдВред рд▓реЗрдХрд┐рди, рдЗрд╕ рд╕рдордп, рд╡реЗ рдПрдХ рдЕрдкреНрд░рд╕реНрддреБрдд рд╡реНрдпрдХреНрддрд┐ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдирд┐рдореНрди рд╣реИ - Arduino (рдбреНрдпреВрдорд┐рд▓рд╛рдиреЛрд╡, рдбрд╛рдЗрд╕реАрдорд┐рд▓рд╛) рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдПрдХ FT232RL рдЪрд┐рдк рдереА, рдЬреЛ рдПрдХ USB -> UART рдХрдирд╡рд░реНрдЯрд░ рд╣реИред рдКрдиреЛ рдкрд░, рдЗрд╕ рдЪрд┐рдк рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдПрдЯрдореЗрдЧрд╛ 8 рдпреВ 2 (рдПрдордХреЗ рдиреЗ рдпреВрдПрд╕рдмреА -> рд╕реАрд░рд┐рдпрд▓ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рдорд╛рджреЗрд╢рд┐рдд) рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ред рддрджрдиреБрд╕рд╛рд░, рдЕрдзрд┐рдХрд╛рдВрд╢ рдирд┐рд░реНрджреЗрд╢ рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИрдВред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдХрд▓реНрдк рдорд┐рд▓рд╛ред рдЙрд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдЖрдкрдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░реВрдВрдЧрд╛ред рдЖрдЗрдП рд╢реБрд░реВ:

1. Arduino IDE (рдореЗрд░реЗ рдкрд╛рд╕ v1.0 рд╣реИ) рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ Arduino Uno рд╕реНрдХреЗрдЪ рд╕реЗ рднрд░реЗрдВ рдЬрд┐рд╕реЗ ArduinoISP (рдлрд╝рд╛рдЗрд▓ -> рдЙрджрд╛рд╣рд░рдг -> Arduino ISP) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ - рдЗрд╕рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЯрд┐рдк рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдПрдордХреЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП:
// this sketch turns the Arduino into a AVRISP // using the following pins: // 10: slave reset // 11: MOSI // 12: MISO // 13: SCK // Put an LED (with resistor) on the following pins: // 9: Heartbeat - shows the programmer is running // 8: Error - Lights up if something goes wrong (use red if that makes sense) // 7: Programming - In communication with the slave 

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

2. рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдПрдордХреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╢реАрдЯ рдореЗрдВ рджрд┐рдЦрддреЗ рд╣реИрдВ (рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдПрдЯреАрдЯреАрдЗрди 2313 рдП рд╣реИ) рдФрд░ рдкрд┐рдирдЖрдЙрдЯ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВред рдЕрдЧрд▓реА рддрд╕реНрд╡реАрд░ рдореЗрдВ, рдореИрдВрдиреЗ рдЙрди рдкреИрд░реЛрдВ рдХреЛ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЬреЛ рд╣рдорд╛рд░реА рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред


3. рдЕрдм рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЪрд░рдг рдЖ рдЧрдпрд╛ рд╣реИ - рд╣рдо рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдПрдордХреЗ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЪрд╛рд▓ рд╣реИ - рдЖрдкрдХреЛ Arduino рдХреЗ RESET рдФрд░ GND рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмреАрдЪ 10╬╝F (uF) рдХреИрдкреЗрд╕рд┐рдЯрд░ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, "-" рдЖрдЙрдЯрдкреБрдЯ (рдПрдХ рд╕рдлреЗрдж рдкрдЯреНрдЯреА рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд) рдЬреАрдПрдирдбреА рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЯреНрд░рд┐рдХ Arduino рдХреЛ MK рдкрд░ рдлрд░реНрдорд╡реЗрдпрд░ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХреЗрдЧреАред

рд╣рдо pinout рдФрд░ рд╕реНрдХреЗрдЪ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ MK рдФрд░ Arduino рдкрд┐рди рдХреЗ рдкреИрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (PA10 рдкреИрд░ рдХреЗ рд╕рд╛рде Pin10, PB11 рдкреИрд░ рдХреЗ рд╕рд╛рде Pin11, рдЖрджрд┐)ред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╡реАрд╕реАрд╕реА рд╢рдХреНрддрд┐ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ + 5 рд╡реАред рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрд▓ рдИ рдбреА рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛:
9: рджрд┐рд▓ рдХреА рдзрдбрд╝рдХрди - рд╣рд░рд╛ред рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗ рджреМрд░рд╛рди, рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рдЪрдордХрддрд╛ рд░рд╣рддрд╛ рд╣реИред
8: рддреНрд░реБрдЯрд┐ - рд▓рд╛рд▓ред рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд░реЛрд╢рдиреА рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред
7: рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ - рдиреАрд▓рд╛ред MK рдкрд░ рдлрд░реНрдорд╡реЗрдпрд░ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╕рдордп Arduino рдХреЗ RX / TX рдХреЗ рд╕рдорд╛рди рдЪрдордХрддреА рд╣реИред
рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ 220 рдУрдо рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ред
рдЗрдХрдЯреНрдареЗ рд╕рд░реНрдХрд┐рдЯ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ:


4. рд╣рдорд╛рд░реЗ рдПрдордХреЗ рдХреЗ рд▓рд┐рдП рдлрд░реНрдорд╡реЗрдпрд░ рддреИрдпрд╛рд░ рдХрд░реЗрдВред рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рдмреНрд▓рд┐рдВрдХрд┐рдВрдЧ рдПрд▓рдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛:
 #define F_CPU 1000000UL #include <avr/io.h> #include <util/delay.h> void init_io(void); void init_io(void) { DDRB = (1<< PB0); } int main(void) { init_io(); for (;;) { PORTB |= (1 << 0); _delay_ms(100); PORTB = 0; _delay_ms(100); } } 

рд╣рдо рд╣реЗрдХреНрд╕ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (WinAVR рд╕реЗ рдХреБрдЫ рдореЗрдХрдлрд╛рдЗрд▓ рд╕реЗ рдХрдорд╛рдВрдбреЛрдВ рдХреЛ рдлрд╛рдбрд╝рддреЗ рд╣реИрдВ):
 avr-gcc -c -mmcu=attiny2313 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=blink_led.lst -std=gnu99 blink_led.c -o blink_led.o avr-gcc -mmcu=attiny2313 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=blink_led.o -std=gnu99 blink_led.o --output blink_led.elf -Wl,-Map=blink_led.map,--cref -lm avr-objcopy -O ihex -R .eeprom blink_led.elf blink_led.hex 

рдФрд░ рдПрдордХреЗ рднрд░реЗрдВ:
 avrdude -p t2313 -P /dev/ttyACM0 -c avrisp -b 19200 -U flash:w:blink_led.hex 

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

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдПрд▓рдИрдбреА рдХреЛ PB0 MK рд▓реЗрдЧ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдЕрд╡рд░реЛрдзрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЪрдордХрддрд╛ рд╣реИред

рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рд╕рд╛рдордЧреНрд░реА:
hlt.media.mit.edu/?p=1229
hlt.media.mit.edu/?p=1695
arduino.cc/en/Tutorial/ArduinoToBreadboard
iamsuhasm.wordpress.com/tutsproj/avr-gcc-tutorial
www.instructables.com/id/ATtiny-programmer-using-Arduino-ISP

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


All Articles