π§Ύ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΄Π²ΡΡ ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ Π²ΠΎΠ»ΡΡΠΌΠ΅ΡΡ Π½Π° Π±Π°Π·Π΅ 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.
- ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ.
- Π£ΡΠ΅Π±Π½ΡΠ΅ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΡΠ΅Π½Π΄Ρ.
