π§Ύ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΄Π²ΡΡ ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ Π²ΠΎΠ»ΡΡΠΌΠ΅ΡΡ Π½Π° Π±Π°Π·Π΅ Arduino, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎΠ»ΡΡΠΌΠ΅ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ:
- π’ ΠΡ ΠΎΠ΄Π½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ (V In)
- π΅ ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ (V Out)
- πΊ ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ (V Max)
- π ΠΡΠ°ΡΠΈΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ
- π ΠΠ΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΠΊΠ°Π»Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π°
ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΡΠ°Π΄ΠΈΠΎΠ»ΡΠ±ΠΈΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠΈΡΠ°Π½ΠΈΡ: ΠΎΠ½ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΠΎΠ², ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
π§ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ | ΠΠΎΠ»-Π²ΠΎ | ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ | ΠΠ΄Π΅ ΠΡΠΏΠΈΡΡ |
---|---|---|---|
Arduino Nano / Uno | 1 | ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ | ΠΡΠΏΠΈΡΡ |
OLED-Π΄ΠΈΡΠΏΠ»Π΅ΠΉ 128×64 I2C | 1 | ΠΠ΄ΡΠ΅Ρ 0x3C, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Adafruit | ΠΡΠΏΠΈΡΡ |
ΠΠ½ΠΎΠΏΠΊΠ° | 1 | ΠΠ»Ρ ΡΠ±ΡΠΎΡΠ° ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΠ° | ΠΡΠΏΠΈΡΡ |
Π Π΅Π·ΠΈΡΡΠΎΡΡ Π΄Π»Ρ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ | 4 | Π‘ΠΌ. Π½ΠΈΠΆΠ΅, Π΄Π»Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ | ΠΡΠΏΠΈΡΡ |
ΠΡΠΎΠ²ΠΎΠ΄Π°, ΠΌΠ°ΠΊΠ΅ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° | — | ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² | ΠΡΠΏΠΈΡΡ |
βοΈ Π‘Ρ Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ

π ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
π₯οΈ OLED-Π΄ΠΈΡΠΏΠ»Π΅ΠΉ:
- GND β GND
- VCC β 5V
- SCL β A5
- SDA β A4
ποΈ ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠΉ:
Arduino ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ Π²Ρ ΠΎΠ΄Ρ A0 ΠΈ A1. ΠΠΎ Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΠΎΠ΄Π°Π²Π°ΡΡ Π½Π° Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ 5 Π ΠΎΠΏΠ°ΡΠ½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅Π·ΠΈΡΡΠΈΠ²Π½ΡΠ΅ Π΄Π΅Π»ΠΈΡΠ΅Π»ΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ.
π₯ ΠΠ΅Π»ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ (V In β A0):
- ΠΠ΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π·ΠΈΡΡΠΎΡ: 40 ΠΊΠΠΌ
- ΠΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π·ΠΈΡΡΠΎΡ: 10 ΠΊΠΠΌ
- ΠΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΠ³Π½Π°Π» ΠΏΠΎΠ΄Π°ΡΡΡΡ Π½Π° Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π·ΠΈΡΡΠΎΡ
- Π‘ΡΠ΅Π΄Π½ΡΡ ΡΠΎΡΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ A0
- ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅ΡΡΡΡ Π΄ΠΎ 25 Π
π€ ΠΠ΅Π»ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ (V Out β A1):
- ΠΠ΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π·ΠΈΡΡΠΎΡ: 40 ΠΊΠΠΌ
- ΠΠΈΠΆΠ½ΠΈΠΉ ΡΠ΅Π·ΠΈΡΡΠΎΡ: 10 ΠΊΠΠΌ
- Π‘ΡΠ΅Π΄Π½ΡΡ ΡΠΎΡΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ A1
- Π’Π°ΠΊΠΎΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π΄Π°ΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ β 1/5, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅ΡΡΡΡ Π΄ΠΎ 25 Π
β οΈ ΠΠΎΠ΄Π±ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅Π·ΠΈΡΡΠΎΡΡ Ρ ΡΡΡΡΠΎΠΌ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°ΡΡΡΠΈΡΠ°Π½Π° Π½Π° Π²Ρ ΠΎΠ΄ 0β5 Π, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΡΠΌΡΠ»Ρ ΡΠ°ΡΡΡΡΠ° Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ.
βοΈ ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π²ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° VoltMeter
, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· Π²Ρ
ΠΎΠ΄ΠΎΠ².
Π ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Oscilloscope (ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°Ρ)
π¦ Π‘ΠΌΠΎΡΡΠΈ ΡΠ°Π·Π΄Π΅Π» "Π‘ΠΊΠ΅ΡΡ Arduino"
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°ΠΏΡ ΡΠ°Π±ΠΎΡΡ:
- ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠΉ:
- ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ
analogRead()
Π½Π° ΠΏΠΈΠ½Π°Ρ A0 ΠΈ A1. - ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² Π²ΠΎΠ»ΡΡΡ:
voltage = raw * (5.0 / 1023.0);
- ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ½ΠΎΠΆΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π° ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
voltage *= 2.0;
- ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ
- ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
:
- ΠΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΡ (V In, V Out, V Max) ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΠΊΡΡΠΏΠ½ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΈΡΡ
TextSize(1)
Π΄Π»Ρ ΡΡΡΠΊΠΎΡΡΠΈ ΠΈ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΠΌΠ΅ΡΡΠ°.
- Π€ΠΈΠΊΡΠ°ΡΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΠ°:
- Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΠΎΠΌ.
- ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ (ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΊ D2) ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ.
- ΠΡΠ°ΡΠΈΠΊ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ:
- ΠΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ
Oscilloscope
ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² Π±ΡΡΠ΅ΡΠ΅. - Π Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΡΠΈΡΡΠ΅ΡΡΡ Π»ΠΈΠ½ΠΈΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
- ΠΡΠ°ΡΠΈΠΊ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 110 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈ Π½Π΅ Π½Π°Π΅Π·ΠΆΠ°Π΅Ρ Π½Π° ΡΠΊΠ°Π»Ρ.
- ΠΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ
- ΠΠ΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΡΠΊΠ°Π»Π° ΡΠΏΡΠ°Π²Π°:
- Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½Π°Ρ ΡΠΊΠ°Π»Π° (10 Π΄Π΅Π»Π΅Π½ΠΈΠΉ) ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ.
- ΠΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ.
π§ ΠΠΈΡΠΏΠ»Π΅ΠΉ
Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ OLED Π΄ΠΈΡΠΏΠ»Π΅Ρ

ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΡΠΎΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΠΏΠΎΠ²:
- ΠΠ΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ Π΄ΠΈΡΠΏΠ»Π΅Ρ β ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠ΅ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ
- Π‘ΡΠ΅Π΄Π½ΡΡ ΡΠ°ΡΡΡ β Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ Π±Π»ΠΎΠΊΠ° ΠΏΠΈΡΠ°Π½ΠΈΡ.
- ΠΠΈΠΆΠ½ΡΡ ΡΠ°ΡΡΡ β Π³ΡΠ°ΡΠΈΠΊ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°
graphBuffer[]
, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 128 ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ² ΡΠ΄Π²ΠΈΠ³Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π»ΠΎΠΌΠ°Π½Π°Ρ Π»ΠΈΠ½ΠΈΡ, ΠΏΠΎΠ²ΡΠΎΡΡΡ ΡΠΎΡΠΌΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ. - ΠΡΠ°Π²Π°Ρ ΡΠ°ΡΡΡ β Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΠΎΠΉ ΡΠΊΠ°Π»Ρ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π΅Π½ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠΎΠ²Π½Ρ ΡΠΈΠ³Π½Π°Π»Π°.
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ OLED-Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ: ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎ ΠΈ ΠΊΡΠ°ΡΠΈΠ²ΠΎ.
π Π‘ΠΊΠ΅ΡΡ Arduino
#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); const int inputPin = A0; // ΠΡ ΠΎΠ΄Π½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ const int outputPin = A1; // ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ const int resetButtonPin = 2; // ΠΠ½ΠΎΠΏΠΊΠ° ΡΠ±ΡΠΎΡΠ° ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΠ° #define GRAPH_HEIGHT 20 #define GRAPH_WIDTH 110 // ΠΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΎ ΡΠΏΡΠ°Π²Π° ΠΏΠΎΠ΄ ΡΠΊΠ°Π»Ρ uint8_t graphBuffer[GRAPH_WIDTH]; // ΠΠ»Π°ΡΡ Π²ΠΎΠ»ΡΡΠΌΠ΅ΡΡΠ° class VoltMeter { private: int pin; float voltage; float maxVoltage; public: VoltMeter(int analogInputPin) { // ΠΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° pin = analogInputPin; voltage = 0.0; maxVoltage = 0.0; } void measure() { // ΠΠ΅ΡΠΎΠ΄ -ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ int raw = analogRead(pin); voltage = raw * (5.0 / 1023.0); if (voltage > maxVoltage) { maxVoltage = voltage; } } void resetMax() { // ΠΠ΅ΡΠΎΠ΄ - ΡΠ±ΡΠΎΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ maxVoltage = voltage; } float getVoltage() { // ΠΠ΅ΡΠΎΠ΄ - ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ return voltage; } float getMax() { // ΠΠ΅ΡΠΎΠ΄ - ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ return maxVoltage; } }; // ΠΠ»Π°ΡΡ ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°Ρ class Oscilloscope { public: Oscilloscope() { // ΠΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° // pin = analogInputPin; } void updateGraph(float voltage) { for (int i = 0; i < GRAPH_WIDTH - 1; i++) { graphBuffer[i] = graphBuffer[i + 1]; } uint8_t newY = map(voltage * 100, 0, 500, 0, GRAPH_HEIGHT); graphBuffer[GRAPH_WIDTH - 1] = newY; } void drawGraph() { int baseY = SCREEN_HEIGHT - 1; for (int x = 0; x < GRAPH_WIDTH - 1; x++) { display.drawLine(x, baseY - graphBuffer[x], x + 1, baseY - graphBuffer[x + 1], SSD1306_WHITE); } } void drawScale(float value) { const int segments = 10; const int startX = SCREEN_WIDTH - 10; // ΠΡΠ°Π²Π°Ρ ΡΡΠΎΡΠΎΠ½Π° ΡΠΊΡΠ°Π½Π° const int startY = 58; const int segWidth = 8; const int segHeight = 4; const int gap = 2; int activeSegments = map(value * 100, 0, 500, 0, segments); for (int i = 0; i < segments; i++) { int y = startY - i * (segHeight + gap); if (i < activeSegments) { display.fillRect(startX, y, segWidth, segHeight, SSD1306_WHITE); } else { display.drawRect(startX, y, segWidth, segHeight, SSD1306_WHITE); } } } }; VoltMeter vinMeter(inputPin); //ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Π²ΠΎΠ»ΡΡΠΌΠ΅ΡΡ V In VoltMeter voutMeter(outputPin); // ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Π²ΠΎΠ»ΡΡΠΌΠ΅ΡΡ V Out Oscilloscope oscill; //ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°Ρ void setup() { pinMode(resetButtonPin, INPUT_PULLUP); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay(); display.setTextSize(1); display.setTextColor(SSD1306_WHITE); display.setCursor(10, 28); display.println("Digital Voltmeter"); display.display(); delay(1500); } void loop() { vinMeter.measure(); voutMeter.measure(); if (digitalRead(resetButtonPin) == LOW) { vinMeter.resetMax(); voutMeter.resetMax(); delay(300); } float vin = vinMeter.getVoltage(); float vout = voutMeter.getVoltage(); float vmax = voutMeter.getMax(); oscill.updateGraph(vout); display.clearDisplay(); display.setTextSize(1); display.setCursor(0, 0); display.print("V In: "); display.print(vin, 2); display.println(" V"); display.setCursor(0, 10); display.print("V Max: "); display.print(vmax, 2); display.println(" V"); display.setCursor(0, 20); display.print("V Out: "); display.print(vout, 2); display.println(" V"); oscill.drawGraph(); oscill.drawScale(vout); display.display(); delay(200); }
π§ Π‘ΠΎΠ²Π΅ΡΡ ΠΈ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ
- β
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΠΏΡΡΠΌΠΎ Π² ΠΊΠ»Π°ΡΡ
VoltMeter
, ΡΡΠΎΠ±Ρ ΡΡΠ΅ΡΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. - πΎ Π‘ΠΎΡ ΡΠ°Π½ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ Π² EEPROM, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π½Π΅ ΡΠ±ΡΠ°ΡΡΠ²Π°Π»ΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ΅.
- π§² ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΡ: ΡΠΎΠΊ ΠΈΠ»ΠΈ ΠΌΠΎΡΠ½ΠΎΡΡΡ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠΎΠΊΠΎΠ²ΡΠΉ ΡΡΠ½Ρ.
- π ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ°ΡΡΡΠ°Π± Π³ΡΠ°ΡΠΈΠΊΠ° Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ.
β‘ ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠΈΡΠ°Π½ΠΈΡ.
- ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Arduino.
- ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ.
- Π£ΡΠ΅Π±Π½ΡΠ΅ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΡΠ΅Π½Π΄Ρ.