рд▓рд┐рдирдХреНрд╕ рдкрд░ Arduino: рдПрдХ рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпреВрдЯреА рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛

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

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

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

1. рдорд┐рдЯреНрдЯреА рдХреА рддреИрдпрд╛рд░реА


рдХреНрдпреВрдЯреА рдХреНрд░рд┐рдПрдЯрд░ рдХрд┐рд╕реА рднреА рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╕реНрд╡рд╛рднрд┐рдорд╛рдиреА рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдХреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП archa рдореЗрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдорд┐рд▓рддрд╛ рд╣реИ

$ sudo pacman -S qtcreator 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдЦреБрдж Arduino рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреИрдХреЗрдЬреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

 $ sudo pacman -S arduino arduino-avr-core 

рдЬрд┐рд╕ рджрд┐рди рд╣рдо рдЕрдВрддрддрдГ Arduino рдХреЛ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ AVR рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рдВрдХрд▓рдХ, рдХреЛрдбрд╛рдВрддрд░рдХ, рд▓рд┐рдВрдХрд░ рдФрд░ рдорд╛рдирдХ C рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдиреНрд╣реЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ

 $ sudo pacman -S avr-gcc avr-binutils avr-libc 

рд╣рдо рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рдбреАрдмрдЧрд░ рдФрд░ рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдРрд╕реЗ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ

 $ sudo pacman -S avr-gdb simavr 

2. рдХреНрдпреВрдЯреА рдХреНрд░рд┐рдПрдЯрд░ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ


Qt Creator рдЪрд▓рд╛рдПрдВ рдФрд░ C ++ рдореЗрдВ Qt рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ



рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рди рдЪреБрдиреЗрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдирд╛рдо рджреЗрдВ



рдПрдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ qmake рд▓реЗрдВ



рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╕реЗрдЯ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдареАрдХ рдХрд░реЗрдВ



рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рддрд╣рдд, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдЬреЛрдбрд╝реЗрдВ



рд╣рдореЗрдВ рдорд╛рдирдХ C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдорд┐рд▓рддрд╛ рд╣реИ



рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ: main.cpp рдФрд░ led-blink.proред рдкрд╣рд▓реЗ рдПрдХ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рджреВрд╕рд░реЗ рдХреЛ рд╡рд╣рд╛рдВ рд▓рд┐рдЦреА рдЧрдИ рд╣рд░ рдЪреАрдЬ рд╕реЗ рд╕рд╛рдл рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╛рд▓реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдорд┐рд▓рдиреЗ рдкрд░



рдЕрдм рдкреЗрди рдХреЗ рд╕рд╛рде, рд╣рдо Arduino рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддреЗ рд╣реБрдП, рдПрдХ .pro рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ

 #     #    Arduino Core ARDUINO_DIR=/usr/share/arduino/hardware/archlinux-arduino/avr/ #    (Arduino Uno, Nano, Mini) ARDUINO_MCU=atmega328p #    ARDUINO_FCPU = 16000000L 

рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ Qt рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ

 #  ,   Qt   ! QT -= gui core CONFIG -= qt #   - ,      ELF TEMPLATE = app 

рд╣рдордиреЗ рдЗрдХрдЯреНрдареЗ рдмрд╛рдЗрдирд░реА рдФрд░ рдЙрд╕рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рд╣реИ

 DESTDIR = ../bin TARGET = led-blink 

рдЕрдЧрд▓рд╛, рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдЦреЛрдЬ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

 #    INCLUDEPATH += $$ARDUINO_DIR/cores/arduino INCLUDEPATH += $$ARDUINO_DIR/variants/standard INCLUDEPATH += $$ARDUINO_DIR/libraries INCLUDEPATH += /usr/avr/include 

C рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рдЙрд╕рдХреА рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ

 QMAKE_CC = /usr/bin/avr-gcc QMAKE_CFLAGS += -c -g -Os -w -ffunction-sections -fdata-sections QMAKE_CFLAGS += -MMD -mmcu=$$ARDUINO_MCU -DF_CPU=$$ARDUINO_FCPU QMAKE_CFLAGS += -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR 

рдФрд░ рд╕реА ++ рд╕рдВрдХрд▓рдХ рдФрд░ рдЗрд╕рдХреА рдЪрд╛рдмрд┐рдпрд╛рдБ

 QMAKE_CXX = /usr/bin/avr-g++ QMAKE_CXXFLAGS += -c -g -Os -w -ffunction-sections -fdata-sections QMAKE_CXXFLAGS += -fno-exceptions -fno-threadsafe-statics QMAKE_CXXFLAGS += -MMD -mmcu=$$ARDUINO_MCU -DF_CPU=$$ARDUINO_FCPU QMAKE_CXXFLAGS += -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR 

рд▓рд┐рдВрдХрд░ рдФрд░ рдЙрд╕рдХреА рдХреБрдВрдЬреА рд╕реЗрдЯ рдХрд░реЗрдВ

 QMAKE_LINK = /usr/bin/avr-gcc QMAKE_LFLAGS = -w -Os -Wl,--gc-sections -mmcu=$$ARDUINO_MCU QMAKE_LIBS = -lm 

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

 QMAKE_POST_LINK += /usr/bin/avr-objcopy -O ihex -j .text -j .data -S ${TARGET} ${TARGET}.hex 

рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рдХреМрди рд╕реА рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

 HEADERS += $$files($$ARDUINO_DIR/cores/arduino/*.h) HEADERS += $$files($$ARDUINO_DIR/variants/standard/*.h) 

Arduino Core рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ

 SOURCES += $$files($$ARDUINO_DIR/cores/arduino/*.c) SOURCES += $$files($$ARDUINO_DIR/cores/arduino/*.cpp) 

рддреЛ, рдареАрдХ рд╣реИ, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдХреЗрдЪрд┐рдВрдЧ рдХрдм рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ? рдЪрд▓рд┐рдП рдЕрдм рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЬреЛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдорд╣рд╛рди рдбреЙрдиреНрд╕, рд╕реНрдХреЗрдЪ рдХреЛрдб рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рд╣реИред

рдЕрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрдХреЗрдЪ рд╕реНрд░реЛрдд рдЬреЛрдбрд╝реЗрдВред рдЯреНрд░реА рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ "рдирдпрд╛ рдЬреЛрдбрд╝реЗрдВ ..." рдЪреБрдиреЗрдВ C ++ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ



рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдЧрд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ



"рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ * .cpp рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП src рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ



рдЕрдм рдлрд╛рдЗрд▓ рдХреЛ рдПрдХ рдирд╛рдо рджреЗрдВ



рдЕрдЧрд▓реА рд╡рд┐рдВрдбреЛ "рд╕рдорд╛рдкреНрдд" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рд╣рдореЗрдВ рдРрд╕реА рддрд╕реНрд╡реАрд░ рдорд┐рд▓рддреА рд╣реИ



IDE рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ led-blink.pro рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдЧрд╛

 HEADERS += $$files($$ARDUINO_DIR/cores/arduino/*.h) HEADERS += $$files($$ARDUINO_DIR/variants/standard/*.h) #  Arduino Core SOURCES += $$files($$ARDUINO_DIR/cores/arduino/*.c) \ src/led-blink.cpp SOURCES += $$files($$ARDUINO_DIR/cores/arduino/*.cpp) 

рд▓реЗрдХрд┐рди рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реНрд░реЛрдд рдХреА рд╕реВрдЪреА рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ

 #  Arduino Core HEADERS += $$files($$ARDUINO_DIR/cores/arduino/*.h) HEADERS += $$files($$ARDUINO_DIR/variants/standard/*.h) #  Arduino Core SOURCES += $$files($$ARDUINO_DIR/cores/arduino/*.c) SOURCES += $$files($$ARDUINO_DIR/cores/arduino/*.cpp) #   SOURCES += $$files(./src/*.cpp) 

рдЕрдм рд╣рдо рд╡рд╣реА рдХрд░реЗрдВрдЧреЗ рдЬреЛ Arduino IDE рдХрднреА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛: рд╕реНрдХреЗрдЪ рдореЗрдВ рдПрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ, рдКрдкрд░ рдЬреИрд╕рд╛ рдХрджрдо



рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЖрд╡рд╢реНрдпрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реЗрдбрд░ рдЬреЛрдбрд╝реЗрдВ

 #ifndef LED_BLINK_H #define LED_BLINK_H #include <Arduino.h> #endif // LED_BLINK_H 

рд╣реЗрдбрд░ рдФрд░ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд▓рд┐рдП рдкрде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

 #  INCLUDEPATH += ./include HEADERS += $$files(./include/*.h) #   SOURCES += $$files(./src/*.cpp) 

рдФрд░ рдЕрдм рдЕрдВрдд рдореЗрдВ рдПрдХ рд╕реНрдХреЗрдЪ рд▓рд┐рдЦреЗрдВ

 #include "led-blink.h" //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ void setup() { } //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ void loop() { } 

рдЕрдм рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреНрд░реА рдкрд░ рд░рд╛рдЗрдЯ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ "рдЕрд╕реЗрдВрдмрд▓" рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ



рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд┐рди / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдХрд▓рдХ рдХрд╛рд░реНрдп рдЙрддреНрдкрд╛рдж рд╣реИрдВ



рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдИрдПрд▓рдПрдл рд╣реИ, рдЬреЛ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рд╣реЗрдХреНрд╕ рдХреЗ рд╕рдордп рдЙрдкрдпреЛрдЧреА рд╣реИред рдЕрдм рдЖрдЗрдП рдкрд┐рди 13 рдкрд░ рдПрд▓рдИрдбреА рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдмреНрд▓рд┐рдВрдХрд░ рд▓рд┐рдЦреЗрдВ

 #include "led-blink.h" #define LED_STAND_PIN 13 unsigned long time = 0; unsigned long DELAY = 500000; bool on = false; //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ void setup() { pinMode(LED_STAND_PIN, OUTPUT); } //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ void loop() { if ( micros() >= time + DELAY ) { time = micros(); on = !on; } uint8_t state = on ? HIGH : LOW; digitalWrite(LED_STAND_PIN, state); } 

рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ, рдмрд┐рди / рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдо рдЖрдкрдХреЗ USB рдмреЛрд░реНрдб рдореЗрдВ рдЪрд┐рдкрдХ рдЬрд╛рддреЗ рд╣реИрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдКрдиреЛ рд╣реИ, рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдирд╛рдо / dev / ttyACM0 рдХреЗ рд╕рд╛рде рдПрдХ рдкреЛрд░реНрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

 $ avrdude -c arduino -p m328p -P /dev/ttyACM0 -b 115200 -U flash:w:led-blink.hex:i 

рдпрд╣рд╛рдВ

  • -рдкреА / рджреЗрд╡ / ttyACM0 - рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкреЛрд░реНрдЯ
  • -p m328p - рдирд┐рдпрдВрддреНрд░рдХ рдореЙрдбрд▓
  • -рд╕реА рдЕрд░рдбрд┐рдиреЛ - рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛ рдкреНрд░рдХрд╛рд░: рдпреВрдиреЛ рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд
  • -b 115200 - рдкреЛрд░реНрдЯ рд╕реНрдкреАрдб
  • -U рдлреНрд▓реИрд╢: w: рдПрд▓рдИрдбреА- blink.hex: i - рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рдХреНрд╖реЗрддреНрд░, рдСрдкрд░реЗрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░ (рд▓рд┐рдЦрдиреЗ) рдФрд░ рдлрд░реНрдорд╡реЗрдпрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ

рдЗрд╕реА рдХреЗ рд╕рдорд╛рди рдПрдХ рдирд┐рдХрд╛рд╕

 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e950f (probably m328p) avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "led-blink.hex" avrdude: writing flash (2838 bytes): Writing | ################################################## | 100% 0.47s avrdude: 2838 bytes of flash written avrdude: verifying flash memory against led-blink.hex: avrdude: load data flash data from input file led-blink.hex: avrdude: input file led-blink.hex contains 2838 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.38s avrdude: verifying ... avrdude: 2838 bytes of flash verified avrdude: safemode: Fuses OK (E:00, H:00, L:00) avrdude done. Thank you. 

рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд▓реА рдЧрдИред рдПрд▓рдИрдбреА 2 рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдЭрдкрдХреА рд▓реЗрдЧрд╛ред

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



рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ (Ctrl + R рджрдмрд╛рдХрд░) рд╣рдо рдлрд░реНрдорд╡реЗрдпрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВрдЧреЗ рдЬреИрд╕реЗ рдХрд┐ Arduino IDE рдХрд░рддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


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

рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, "рдорд╛рдереЗ рдореЗрдВред" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, Arduino IDE Arduino Core рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд┐рд░ Core.a рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдорд╛рдирдХ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдХрддреНрд░ рдлрд░реНрдорд╡реЗрдпрд░ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрдХрд╛рд░ рдореЗрдВ рдЫреЛрдЯрд╛ рд╣реИред рдореБрдЭреЗ рдЕрднреА рднреА рдЗрди рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИред рдФрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦ рдореЗрдВ рдЙрд╕реА рд╕рдордп рд╣рдо рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ:

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

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

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


All Articles