ΠΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Β«was not declared in this scopeΒ»** β ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π½Π° C++, Arduino ΠΈΠ»ΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ AVR. Π Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅ Π½Π° ΡΡΡΡΠΊΠΈΠΉ ΠΎΠ½Π° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ: Β«Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈΒ». ΠΠΎ ΡΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΈ ΠΊΠ°ΠΊ Π±ΡΡΡΡΠΎ ΡΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
ΠΡΠ»ΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ: Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ Β«Π½Π΅ Π²ΠΈΠ΄ΠΈΡΒ». ΠΡΠΈΡΠΈΠ½Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ β ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ Π΄ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΡΠ½Π½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°Π·Π±Π΅ΡΡΠΌ 7 ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΏΡΠΈΡΠΈΠ½ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ Π΄Π°Π΄ΠΈΠΌ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° ΠΈ ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ Β«ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈΒ». ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΠΈΠΌ Π½ΡΠ°Π½ΡΠ°ΠΌ Π΄Π»Ρ Arduino IDE ΠΈ PlatformIO, Π³Π΄Π΅ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ.
Π§ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«was not declared in this scopeΒ» Π½Π° ΡΡΡΡΠΊΠΎΠΌ?
Π€ΡΠ°Π·Π° was not declared in this scope Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠ°ΠΊ Β«Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ Π² ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈΒ»**. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ:
- π ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π² ΠΊΠΎΠ΄Π΅.
- π ΠΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ, Π½ΠΎ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠ°
{}). - π ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
#include <Library.h>). - π₯οΈ ΠΠ»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ²: Π½Π΅Π²Π΅ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈΠ»ΠΈ ΡΠ΄ΡΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ESP32 Π²ΠΌΠ΅ΡΡΠΎ AVR).
ΠΡΠΈΠΌΠ΅Ρ ΡΠΈΠΏΠΈΡΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Arduino IDE:
sketch.ino:10:5: error: 'Serial1' was not declared in this scope
Serial1.begin(9600);
^~~~~~
ΠΠ΄Π΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ Serial1 Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½. ΠΡΠΈΡΠΈΠ½Π°? ΠΠ° ΠΏΠ»Π°ΡΠ°Ρ
ΡΠΈΠΏΠ° Arduino Uno Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Serial, Π° Serial1 Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π»ΠΈΡΡ Π½Π° Mega ΠΈΠ»ΠΈ ESP32.
- Arduino (AVR)
- ESP32/ESP8266
- STM32
- Raspberry Pi Pico
- ΠΡΡΠ³Π°Ρ
Π’ΠΎΠΏ-7 ΠΏΡΠΈΡΠΈΠ½ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ
Π Π°Π·Π±Π΅ΡΡΠΌ ΡΠ°ΠΌΡΠ΅ ΡΠ°ΡΡΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ. ΠΠ°ΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° β ΡΠ°ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ Π·Π° 1β2 ΡΠ°Π³Π°.
1. ΠΠΏΠ΅ΡΠ°ΡΠΊΠ° Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
Π‘Π°ΠΌΠ°Ρ Π±Π°Π½Π°Π»ΡΠ½Π°Ρ, Π½ΠΎ ΠΈ ΡΠ°ΠΌΠ°Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π°. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
int myVar = 10;
print(myvar); // ΠΡΠΈΠ±ΠΊΠ°: 'myvar' Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ (ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ: myVar)
- β
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡ Π±ΡΠΊΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
digitalWriteβDigitalwrite). - β
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π½Π΅Ρ Π»ΠΈΡΠ½ΠΈΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
delay();vsdelay ;). - β ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² IDE (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² VS Code ΠΈΠ»ΠΈ PlatformIO).
Π Arduino IDE Π½Π°ΠΆΠΌΠΈΡΠ΅ Ctrl+Shift+F Π΄Π»Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ β ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
2. ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, LiquidCrystal Π΄Π»Ρ Π΄ΠΈΡΠΏΠ»Π΅Π΅Π² ΠΈΠ»ΠΈ WiFi.h Π΄Π»Ρ ESP32), Π½ΠΎ Π·Π°Π±ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΡΠΈΠΌΠ΅Ρ:
LCD.begin(16, 2); // ΠΡΠΈΠ±ΠΊΠ°: 'LCD' Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ
// ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅:
#include <LiquidCrystal.h>
LiquidCrystal LCD(12, 11, 5, 4, 3, 2);
ΠΠ»Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ:
| ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° | ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ | Π’ΠΈΠΏΠΈΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° |
|---|---|---|
| Π Π°Π±ΠΎΡΠ° Ρ Wi-Fi (ESP) | #include <WiFi.h> | 'WiFi' was not declared |
| ΠΠΈΡΠΏΠ»Π΅ΠΉ LCD 1602 | #include <LiquidCrystal.h> | 'LiquidCrystal' was not declared |
| Π Π°Π±ΠΎΡΠ° Ρ EEPROM | #include <EEPROM.h> | 'EEPROM' was not declared |
| Π‘Π΅ΡΠ²ΠΎΠΏΡΠΈΠ²ΠΎΠ΄Ρ | #include <Servo.h> | 'Servo' was not declared |
ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² Arduino IDE?
ΠΡΠΊΡΠΎΠΉΡΠ΅ Π‘ΠΊΠ΅ΡΡ β ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ β Π£ΠΏΡΠ°Π²Π»ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ. Π ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π²Π²Π΅Π΄ΠΈΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, LiquidCrystal) ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ.
3. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ
Π C++ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠ° {}, Π½Π΅ Π²ΠΈΠ΄Π½Ρ Π·Π° ΠΈΡ
ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ. ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ:
void setup() {
int x = 10;
}
void loop() {
Serial.println(x); // ΠΡΠΈΠ±ΠΊΠ°: 'x' Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ Π² ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
}
Π Π΅ΡΠ΅Π½ΠΈΡ:
- π ΠΠ±ΡΡΠ²ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ (ΠΏΠ΅ΡΠ΅Π΄
setup()). - π ΠΠ΅ΡΠ΅Π΄Π°Π²Π°ΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
- π¦ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
staticΠ΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ.
ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ. ΠΠ»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
4. ΠΠ΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈΠ»ΠΈ ΡΠ΄ΡΠ°
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΠΏΠ»Π°ΡΠ°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
- π
Serial1,Serial2β ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Arduino Mega ΠΈΠ»ΠΈ ESP32. - π‘
WiFiβ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ESP8266/ESP32, Π½ΠΎ Π½Π΅ Π½Π° AVR (Uno, Nano). - π₯οΈ
USBβ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Native USB (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Arduino Leonardo).
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΠΊΠ°ΠΊΡΡ ΠΏΠ»Π°ΡΡ Π²Ρ Π²ΡΠ±ΡΠ°Π»ΠΈ Π² ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ β ΠΠ»Π°ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ESP32 Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΄ΡΠΎ esp32 ΡΠ΅ΡΠ΅Π· Board Manager.
ΠΡΠ±ΡΠ°Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° Π² Arduino IDE|
ΠΡΠΎΠ²Π΅ΡΠ΅Π½Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°|
Π£ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ΄ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, esp32 Π΄Π»Ρ ESP32)|
ΠΠ°ΠΌΠ΅Π½Π΅Π½Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅-->
5. ΠΡΠΈΠ±ΠΊΠ° Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ
Π C++ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π’ΠΈΠΏΠΈΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°:
void loop() {
myFunction(); // ΠΡΠΈΠ±ΠΊΠ°: 'myFunction' Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ
}
void myFunction() {
// ...
}
Π Π΅ΡΠ΅Π½ΠΈΡ:
- π ΠΠ΅ΡΠ΅Π½Π΅ΡΠΈΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΠ΅ Π΅Ρ Π²ΡΠ·ΠΎΠ²Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅Π΄
setup()). - π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΡΡΠ½ΠΊΡΠΈΠΈ:
// ΠΡΠΎΡΠΎΡΠΈΠΏ
void myFunction();
void setup() {
myFunction(); // Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅Ρ
}
void myFunction() {
// ...
}
6. ΠΠΎΠ½ΡΠ»ΠΈΠΊΡ ΠΈΠΌΡΠ½ Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π° C++ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠΌΡΠ½ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
int void = 10; // ΠΡΠΈΠ±ΠΊΠ°: 'void' β ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ
int class = 5; // ΠΡΠΈΠ±ΠΊΠ°: 'class' β ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ
ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ»ΠΎΠ²: auto, break, case, class, const ΠΈ Π΄Ρ. (Π²ΡΠ΅Π³ΠΎ ~90 ΡΠ»ΠΎΠ²).
ΠΡΠ»ΠΈ Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠ΅ΡΠΈΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: myClass Π²ΠΌΠ΅ΡΡΠΎ class.
7. ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°ΠΌΠΈ ΠΈΠΌΡΠ½ (namespace)
Π ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Standard Template Library) ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΡΠ½. ΠΡΠΈΠΌΠ΅Ρ:
string s = "Hello"; // ΠΡΠΈΠ±ΠΊΠ°: 'string' Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ
// ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅:
#include <string>
std::string s = "Hello";
ΠΡΠ»ΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ Π΄Π»Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ (cout, vector), Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ std:: ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ using namespace std; (Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
).
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Arduino IDE ΠΈ PlatformIO
Π ΡΡΠ΅Π΄Π°Ρ
Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΎΡΠΈΠ±ΠΊΠ° was not declared in this scope ΡΠ°ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ.
Arduino IDE: ΡΠΈΠΏΠΈΡΠ½ΡΠ΅ Β«ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈΒ»
- π ΠΠ΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°ΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ESP8266WiFi ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
- π ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΠΈΠ½. ΠΠ° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ»Π°ΡΠ°Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ESP32) Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ AVR.
- π ΠΠΎΠ½ΡΠ»ΠΈΠΊΡ ΠΈΠΌΡΠ½ Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅Π»ΡΠ·Ρ Π½Π°Π·Π²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
millisΠΈΠ»ΠΈdelay.
ΠΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ESP32:
#include <WiFi.h>
void setup() {
WiFi.begin("SSID", "password"); // ΠΡΠΈΠ±ΠΊΠ°, Π΅ΡΠ»ΠΈ Π½Π΅ Π²ΡΠ±ΡΠ°Π½Π° ΠΏΠ»Π°ΡΠ° ESP32
}
PlatformIO: Π½ΡΠ°Π½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
Π PlatformIO ΠΎΡΠΈΠ±ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΈΠ·-Π·Π°:
- π ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π²
platformio.ini. - π ΠΡΡΡΡΡΡΠ²ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π²
lib_deps. - π¦ ΠΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° Π²Π΅ΡΡΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ platformio.ini Π΄Π»Ρ ESP32:
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
lib_deps =
WiFi
Π PlatformIO Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ β ΡΠ°ΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ .
ΠΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ: 5 ΠΏΡΠΎΡΠΈΠ»Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅Ρ
Π§ΡΠΎΠ±Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠΊ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ was not declared in this scope, ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ:
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ:
- π ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅:
camelCase(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,sensorValue). - π·οΈ ΠΠΎΠ½ΡΡΠ°Π½ΡΡ:
UPPER_CASE(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,MAX_TEMP). - π Π€ΡΠ½ΠΊΡΠΈΠΈ:
camelCaseΡ Π³Π»Π°Π³ΠΎΠ»ΠΎΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,readSensor()).
- π ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅:
#ifdef Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
#ifdef ESP32
#include <WiFi.h>
#else
#include <Ethernet.h>
#endif
Π VS Code Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ PlatformIO Π½Π°ΠΆΠΌΠΈΡΠ΅ F1 β PlatformIO: Check Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π° Π½Π° ΠΎΡΠΈΠ±ΠΊΠΈ.
Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ°: ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΠΈΡΠΈΠ½
ΠΡΠ»ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠΉ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ:
| ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ | ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ | Π§ΡΠΎ ΠΈΡΠ΅Ρ |
|---|---|---|
| Arduino CLI | arduino-cli compile --verbose | ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠ΅ Π»ΠΎΠ³ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ |
| PlatformIO | pio run -v | ΠΠΎΠ»Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΎΡΠΈΠ±ΠΎΠΊ Ρ ΠΏΡΡΡΠΌΠΈ |
| GCC/G++ | g++ -E myfile.cpp | Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° #include) |
| Cppcheck | cppcheck --enable=all myfile.cpp | Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° |
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Arduino CLI Π΄Π»Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ:
$ arduino-cli compile --verbose sketch.ino
[...]
sketch.ino:15:10: error: 'myVar' was not declared in this scope
int x = myVar + 1;
^~~~~
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ (15:10) β ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡΡΠΎ Π½Π°ΠΉΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠ°ΠΊ ΡΠΈΡΠ°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°?
ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° β ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΈ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
ΠΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΊΠ° β ΠΊΠΎΠ΄ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° (ΡΠΈΠΌΠ²ΠΎΠ» ^).
Π’ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠ° β ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
FAQ: Π§Π°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ Β«was not declared in this scopeΒ»
ΠΠΎΡΠ΅ΠΌΡ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π½Π° ESP32, Π½ΠΎ Π½Π΅ Π½Π° Arduino Uno?
ΠΠ»Π°ΡΡΠΎΡΠΌΡ AVR (Uno/Nano) ΠΈ ESP32 ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΄ΡΠ° ΠΈ Π½Π°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ESP32 Π½Π΅Ρ analogWrite() Π΄Π»Ρ Π²ΡΠ΅Ρ
Π²ΡΠ²ΠΎΠ΄ΠΎΠ² β ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΅Ρ
, ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π¨ΠΠ. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ Espressif.
Π― ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, Π½ΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΠΎΡΡΠ°Π»Π°ΡΡ. Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ?
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ:
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΏΠ°ΠΏΠΊΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
~/Arduino/libraries/Π΄Π»Ρ Arduino IDE). - ΠΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ IDE ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.
- ΠΠ΅ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ (ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅
library.properties).
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΡΡΠ°ΡΡΡΡ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠ²Π½ΠΎ:
#include "ΠΏΡΡΡ/ΠΊ/Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅/MyLibrary.h"
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ?
ΠΠ΅Ρ. ΠΡΠΈΠ±ΠΊΠ° was not declared in this scope β ΡΡΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠΎΠ΄ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½ Π½Π° ΠΏΠ»Π°ΡΡ, ΠΏΠΎΠΊΠ° Π²Ρ Π΅Ρ Π½Π΅ ΠΈΡΠΏΡΠ°Π²ΠΈΡΠ΅. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ (warnings), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΠ±ΠΎΡΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ/ΡΡΠ½ΠΊΡΠΈΡ?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ (Ctrl+Shift+F Π² Arduino IDE ΠΈΠ»ΠΈ VS Code). ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π΅Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ (ΠΎΠ±ΡΡΠ½ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ src/ ΠΈΠ»ΠΈ .h-ΡΠ°ΠΉΠ»Π°Ρ
).
ΠΠ»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, digitalWrite) ΡΠΌΠΎΡΡΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ:
- AVR: Arduino Reference
- ESP32: ESP32 Arduino Core
ΠΠΎΡΠ΅ΠΌΡ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Arduino IDE?
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ IDE ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ:
- π ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΉ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
WiFi.hΠ΄Π»Ρ ESP32). - π Π£Π΄Π°Π»Π΅Π½ΠΈΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
Streaming.hΠ±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ). - π₯οΈ ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΡΠ΅ΠΉ ΠΊ ΡΠ΄ΡΠ°ΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π‘ΠΊΠ΅ΡΡ β Include Library β Update All ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ Π²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΡΡΠ°ΡΡΡΡ, ΠΎΡΠΊΠ°ΡΠΉΡΠ΅ΡΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ Π²Π΅ΡΡΠΈΡ IDE.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅: ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ΅
Π§ΡΠΎΠ±Ρ Π±ΡΡΡΡΠΎ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ was not declared in this scope, ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΠΎΠΌΡ ΡΠ΅ΠΊ-Π»ΠΈΡΡΡ:
- ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ/ΡΡΠ½ΠΊΡΠΈΠΈ.
- Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
- ΠΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠΉΡΠ΅ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ (Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ vs Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ).
- ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π° Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ (AVR/ESP32/STM32).
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π²ΡΡΠ΅.
- ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π΄Π»Ρ ΡΠΎΡΠ½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΡΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ β ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅ ΠΊΠΎΠ΄ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈ ΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ ΠΈΡ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ. Π 90% ΡΠ»ΡΡΠ°Π΅Π² ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΡ 3 ΡΠ°Π³Π°Ρ .
Π‘Π°ΠΌΠ°Ρ ΡΠ°ΡΡΠ°Ρ ΠΏΡΠΈΡΠΈΠ½Π° ΠΎΡΠΈΠ±ΠΊΠΈ β ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠ° ΠΈΠ»ΠΈ Π·Π°Π±ΡΡΡΠΉ #include. ΠΠ°ΡΠ½ΠΈΡΠ΅ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΡ Ρ ΡΡΠΎΠ³ΠΎ!