ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ-Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Β«ArduinoΒ» Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ
Π ΠΈΡ. 9 Π Π΅ΠΆΠΈΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΎΡΡΠ°Π²ΡΠ΅ΠΌΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ΅, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π° ΡΠΈΠ½Π΅ I2C ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Π΄Π°ΡΡΠΈΠΊΠ°. ΠΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ I2C (3400 ΠΊΠΡ) ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π·Π°ΠΏΠΈΡΡΡ Π² Π±ΠΈΡ MR7 Π΅Π΄ΠΈΠ½ΠΈΡΡ. MD1|MD0 ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Π΄Π°ΡΡΠΈΠΊΠ°: 00 — ΡΠ΅ΠΆΠΈΠΌ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ. 01 — ΡΠ΅ΠΆΠΈΠΌ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ (Π² ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π΄Π°ΡΡΠΈΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). ΠΠΎΡΠ»Π΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ-Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Β«ArduinoΒ» Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ-Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ «Arduino» Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ
ΠΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΡΠ»ΠΈ Ρ Π½Π°Ρ Π½Π΅Ρ GPS ΠΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°, Π° ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΠΊΠ°ΠΊ-ΡΠΎ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΠΌΠ°Π³Π½ΠΈΡΠ½ΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π½Π°ΡΠ΅ΠΉ ΠΏΠ»Π°Π½Π΅ΡΡ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΠΎΠ»ΡΡΠΎΠ². ΠΠΎΠ½ΡΡΠ½ΠΎ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ ΠΏΡΠΈΠ±ΠΎΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΠΊ Π»ΡΠ±ΡΠΌ ΠΌΠ°Π³Π½ΠΈΡΠ½ΡΠΌ Π²ΠΎΠ·ΠΌΡΡΠ΅Π½ΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π²Π±Π»ΠΈΠ·ΠΈ, Π΅ΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π½Π° ΡΠ°ΠΊΡΡ ΡΡ Π΅ΠΌΡ Π² Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅, Π½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π±ΡΠ΄ΠΈΡ Π»ΠΈ ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΎΠΎΠ±ΡΠ΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΌΠ°Π³Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, ΡΠ΅ ΠΆΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π»Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ°Ρ , ΠΊΠ²Π°Π΄ΡΠΎΠΊΠΎΠΏΡΠ΅ΡΠ°Ρ , Π² ΡΠΎΡΠΎΠ²ΡΡ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°Ρ , ΡΠΌΠ°ΡΡΡΠΎΠ½Π°Ρ . ΠΠ»Ρ ΠΈΠ³ΡΡΡΠ΅ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, Π³Π΄Π΅ ΡΠ³, Π³Π΄Π΅ Π·Π°ΠΏΠ°Π΄, Π³Π΄Π΅ Π²ΠΎΡΡΠΎΠΊ. ΠΠ»Ρ GPS ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π² ΡΠΎΡΠΊΠ΅, Π½ΠΎ ΠΌΡ Π½Π΅ Π·Π½Π°Π΅ΠΌ ΠΊΡΠ΄Π° ΡΠΌΠΎΡΡΠΈΠΌ, ΡΠΎ Π΅ΡΡΡ Π±Π΅Π· Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΌΡ Π½Π΅ ΡΠ·Π½Π°Π΅ΠΌ Π³Π΄Π΅ ΠΌΡ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ³Π°Π΅ΠΌΡΡ. ΠΠΎΠΌΠΏΠ°Ρ ΡΡΠ°Π·Ρ ΠΏΠΎΠ΄ΡΠΊΠ°ΠΆΠ΅Ρ, ΠΊΡΠ΄Π° Π½Π°Ρ ΡΠΌΠ°ΡΡΡΠΎΠ½ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½.
Π§Π΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ Π΄Π°ΡΡΠΈΠΊ HMC5883L? Π£ Π½Π΅Π³ΠΎ Π²ΡΡ ΠΎΠ΄ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ, ΡΠΈΠ½Π° I2C. Π¨ΠΈΠ½Π° I2C ΠΈ 2Π‘ — ΡΡΠΎ Π¨ΠΈΠ½Π° ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½Π½Π°Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ΅ΠΉ Philips, ΡΡΠΎ Π΄Π²ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄Π½Π°Ρ ΡΠΈΠ½Π°, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ , Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠΊΠΎΡΠΎΡΡΠ½Π°Ρ ΡΠΈΠ½Π° Π΄Π°Π½Π½ΡΡ . ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ»Π° ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ΅Π½Π° Philips Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌ Π²Π½ΡΡΡΠΈ ΡΠ΅Π»Π΅Π²ΠΈΠ·ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°, Π½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΡΡΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ°ΠΊ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ Π΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΠ½Ρ I2C. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π°ΡΡΠΈΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Ρ ΡΠΈΡΡΠΎΠ²ΡΠΌ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ ΠΈ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΊΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°ΡΡΠΈΠΊ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ Π΄Π°ΡΡΠΈΠΊΠ°Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠΉ, ΡΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΡΠΎΠ³ΠΈΠ΅. Π’ΠΎ Π΅ΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΡΠ½Π°ΡΠ°Π»Π° Π±ΡΠ»Π° Π΄ΠΎΡΠΎΠ³ΠΎΠΉ, Π½ΠΎ Π·Π° ΡΡΠ΅Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠ° ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅Π½ΡΠΎΡΡ, Π΄Π°ΡΡΠΈΠΊΠΈ ΡΡΠ°Π»ΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Ρ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
Π’Π°ΠΊ ΠΆΠ΅ ΠΈ Π·Π΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π°ΡΡΠΈΠΊ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ. ΠΠ΄Π΅ΡΡ Π½Π΅ Π²ΡΠ΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π°ΡΡΠΈΠΊΠΈ. Π‘Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°ΡΡΠΈΠΊ, ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Ρ ΠΊΠ°ΠΊΠΎΠΉ ΡΠ°ΡΡΠΎΡΠΎΠΉ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ Π΄Π°Π»Π΅Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π°ΡΡΠΈΠΊ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΎΡΠΎΠ½ ΡΠ²Π΅ΡΠ°.
1.Arduino UNO — ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Ρ Π ΠΈΡ. 1. ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° HMC5883L
ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° HMC5883L ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ 3-Ρ ΠΎΡΠ΅Π²ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° (Π ΠΈΡ.1), ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΏΠΎ ΡΠΈΠ½Π΅ I2C. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π½ΡΠΎΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΈ ΠΌΠ°Π³Π½ΠΈΡΠΎΡΠ΅Π·ΠΈΡΡΠΈΠ²Π½ΡΡ Π΄Π°ΡΡΠΈΠΊΠ°. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ: ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Honeywell. ΠΠ°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 2.2−3.6 Π. Π§ΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π°ΡΡΠΈΠΊΠ° ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 5 ΠΌΠΈΠ»Π»ΠΈΠ³Π°ΡΡΡ.
ΠΠ°ΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°Ρ , ΠΏΠ»Π°Π½ΡΠ΅ΡΠ°Ρ , Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΠΉ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠ΅, Π½ΠΎ Π΄Π»Ρ ΡΠ°Π΄ΠΈΠΎΠ»ΡΠ±ΠΈΡΠ΅Π»Π΅ΠΉ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ΅Π½ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠ±ΠΎΡΠΎΠ² ΠΈ ΡΠ°Π΄ΠΈΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ HMC5883L ΠΊ Arduino. Π’.ΠΊ. Π΄Π°ΡΡΠΈΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΡΠΈΠ½Π΅ I2C, ΡΠΎ ΡΡ Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Fritzing. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠ° HMC5883L ΠΊ Arduino UNO, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° (Π ΠΈΡ.2):
Π ΠΈΡ. 2. Π‘Ρ Π΅ΠΌΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Fritzing
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠ° HMC5883L ΠΊ Arduino UNO.
Π’.ΠΊ. ΡΠ°ΠΌ ΡΠΈΠΏ ΠΊΠΎΠΌΠΏΠ°ΡΠ° ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ 3×3 ΠΌΠΌ (16-ΡΠΈ Π²ΡΠ²ΠΎΠ΄Π½ΠΎΠΉ LPCC ΠΊΠΎΡΠΏΡΡ), ΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΡΠΌΡ Π²ΡΠΏΡΡΠΊΠ°ΡΡ ΠΏΠ»Π°ΡΡ Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΌΠΈ Π²ΡΠ²ΠΎΠ΄Π°ΠΌΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°ΡΠΏΠ°ΡΠ½Π½ΡΠΌΠΈ ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠΈΠΌΠΈ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ°ΠΌΠΈ.
1.1 ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΡΠ²ΠΎΠ΄ SDA ΡΠΈΠΏΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ SDA ΠΏΠ»Π°ΡΡ Arduino (ΠΎΠ±ΡΡΠ½ΠΎ Analog IN 4), Π° Π²ΡΠ²ΠΎΠ΄ SCL ΡΠΈΠΏΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ SCL ΠΏΠ»Π°ΡΡ Arduino (ΠΎΠ±ΡΡΠ½ΠΎ Analog IN 5). ΠΠ° Arduino Mega ΡΡΠΎ 20 ΠΈ 21 ΠΏΠΈΠ½Ρ. Π Π½Π΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ 3.3 Π ΠΈ ΠΎΠ±ΡΠΈΠΉ GND
1.2 ΠΠΎΠ΄ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°ΡΡΠΈΠΊΠΎΠΌ:
#include «Wire.h»
#include «HMC5883L.h»
HMC5883L compass;
void setup (){
Serial.begin (9600);
Wire.begin ();
compass = HMC5883L (); // ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ HMC5883L Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
setupHMC5883L (); // ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ HMC5883L
}
void loop (){
float heading = getHeading ();
Serial.println (heading);
delay (250);
}
void setupHMC5883L (){
// ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ HMC5883L, ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π°Π»ΠΈΡΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ
int error;
error = compass. SetScale (0.88); // ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π°ΡΡΠΈΠΊΠ° ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°: 0.88, 1.3, 1.9, 2.5, 4.0, 4.7, 5.6, 8.1
if (error ≠ 0) Serial. println (compass.GetErrorText (error)); // Π΅ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ°, ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΅Π΅
error = compass. SetMeasurementMode (Measurement_Continuous); // ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΠΆΠΈΠΌΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ Continuous (ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ)
if (error ≠ 0) Serial. println (compass.GetErrorText (error)); // Π΅ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ°, ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π΅Π΅
}
float getHeading (){
// ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ Ρ HMC5883L ΠΈ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
MagnetometerScaled scaled = compass. ReadScaledAxis (); // ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ Π΄Π°ΡΡΠΈΠΊΠ°
float heading = atan2(scaled.YAxis, scaled. XAxis); // Π²ΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
// ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ΡΡΠ΅ΡΠΎΠΌ Π·Π½Π°ΠΊΠΎΠ²
if (heading < 0) heading += 2*PI;
if (heading > 2*PI) heading -= 2*PI;
return heading * RAD_TO_DEG; // ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠ°Π΄ΠΈΠ°Π½Ρ Π² Π³ΡΠ°Π΄ΡΡΡ
}
Π§ΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π°ΡΡΠΈΠΊΠ° Π·Π°Π΄Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ SetScale () ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ±ΡΠ°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ: 0.88, 1.3, 1.9, 2.5, 4.0, 4.7, 5.6, 8.1.
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΊΠ΅ΡΡΠ° Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Arduino ΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡΠΈΠ»ΠΈΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΏΠΎΡΡΠ°, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Ρ Π΄Π°ΡΡΠΈΠΊΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π½Π° (Π ΠΈΡ.3):
Π ΠΈΡ. 3 ΠΠΎΡΡΡΠΏΠ°ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Ρ Π΄Π°ΡΡΠΈΠΊΠ° ΠΡΠ°ΡΠ°Ρ Π΄Π°ΡΡΠΈΠΊ Π²ΠΎΠΊΡΡΠ³ ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠΈ, Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π³ΡΠ°Π΄ΡΡ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ°. 0Β° - ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π²Π΅Ρ, Π° 180Β° - ΡΠ³. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π΄Π°ΡΡΠΈΠΊ ΠΎΡΠ΅Π½Ρ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΠΊ Π»ΡΠ±ΡΠΌ Π½Π°ΠΌΠ°Π³Π½ΠΈΡΠ΅Π½Π½ΡΠΌ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ°ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊ ΡΠΎΡΠΎΠ²ΡΠΌ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°ΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ ΠΈΠ·Π»ΡΡΠ°ΡΡΠΈΡ ΠΌΠ°Π³Π½ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ. Π’Π°ΠΊΠΆΠ΅ Π΄Π°ΡΡΠΈΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡ ΡΡΡΠΎΠ³ΠΎ Π² Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ, ΡΡΠΎΠΈΡ Π΅Π³ΠΎ Π½Π°ΠΊΠ»ΠΎΠ½ΠΈΡΡ ΠΈ ΡΠΎΠ³Π΄Π° Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ Π½Π΅Π²Π΅ΡΠ½ΡΠ΅. ΠΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΊΠΎΠΌΠΏΠ°ΡΠΎΠ² Π² ΡΠΎΠ±ΠΎΡΠΎΡΠ΅Ρ Π½ΠΈΠΊΠ΅ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ, ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π² ΠΏΠ°ΡΠ΅ Ρ ΡΠΈΡΡΠΎΠ²ΡΠΌ Π°ΠΊΡΠ΅Π»Π΅ΡΠΎΠΌΠ΅ΡΡΠΎΠΌ, Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π°ΠΊΠ»ΠΎΠ½Π°.
2. Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠ°Π³Π½ΠΈΡΠΎΠΌΠ΅ΡΡΠΎΠΌ HMC5883L
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π΄Π°ΡΡΠΈΠΊΠ° — ΠΌΠ°Π³Π½ΠΈΡΠΎΠΌΠ΅ΡΡΠ° HMC5883L. ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΡΠΎΡ Π΄Π°ΡΡΠΈΠΊ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Ρ ΠΌΠ°Π³Π½ΠΈΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, ΠΏΡΠΈΡΠ΅ΠΌ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π² ΡΡΠ΅Ρ ΠΎΡΡΡ . ΠΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΡΡΠΈ ΠΌΠ°Π³Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΠΈ Π΅Π³ΠΎ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ. Π Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅, ΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ Π΄Π°ΡΡΠΈΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Ρ. HMC5883L Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΠΈ Π½Π΅Π΄ΠΎΡΠΎΠ³ΠΎΠΉ Π΄Π°ΡΡΠΈΠΊ, Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ I2C ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. Π§ΠΈΠΏ Π²ΡΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² ΠΊΡΠΎΡΠ΅ΡΠ½ΠΎΠΌ 16-ΠΈ Π²ΡΠ²ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΡΠΏΡΡΠ΅ LPCC ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ 3×3 ΠΌΠΌ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π½Π° (Π ΠΈΡ.4).
Π ΠΈΡ. 4.ΠΠ°Π³Π½ΠΈΡΠΎΠΌΠ΅ΡΡ HMC5883L
2.1 ΠΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΎΠ²
1. SCL — Π²Ρ ΠΎΠ΄ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ½Ρ I2C (Π»ΠΈΠ½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ)
2. VDD — Π²Ρ ΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ (ΠΊΠΎΡΠΌΠΈΡΡΡ ΡΡΠ° ΠΊΠΎΠ·ΡΠ²ΠΊΠ° Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 2,16−3,6 Π²ΠΎΠ»ΡΡ)
3. Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
4. S1 — Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠΎΡΡΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ VDDIO
5. Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
6. Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
7. Π½Π΅ ΠΈΡΠΏΠΎΠ»Π·ΡΠ΅ΡΡΡ
8. SETP — ΠΏΠ΅ΡΠ²ΡΠΉ Π²Ρ ΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ΅ΡΠ°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΠ° Π½Π° 0,22uF
9. GND — Π·Π΅ΠΌΠ»Ρ
10. Π‘1 — Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²Ρ ΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΠ°. ΠΠ»Π΅ΠΊΡΡΠΎΠ»ΠΈΡΠΈΡΠΈΡΠΊΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡΠ°Π½ΡΠ°Π»ΠΎΠ²ΠΎΠ³ΠΎ Π½Π° 4,7uF (Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½Π΅Ρ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ Π·Π΅ΠΌΠ»Π΅)
11. GND — Π·Π΅ΠΌΠ»Ρ
12. SETC — Π²ΡΠΎΡΠΎΠΉ Π²Ρ ΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ΅ΡΠ°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΠ° Π½Π° 0,22uF
13. VDDIO — Π²Ρ ΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π° ΠΏΠΎΡΡΠ°Ρ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°
14. Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
15. ΠΡΡ ΠΎΠ΄ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½ΡΠ΅ Π³ΠΎΡΠΎΠ²Ρ Π½Π° ΡΡΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ 1
16. SDA — Π»ΠΈΠ½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° I2C
Π ΠΎΠ±ΡΠ΅ΠΌ, ΠΎΠ±Π²ΡΠ·ΠΊΠ° Ρ ΡΠ΅Π½ΡΠΎΡΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ, Π²ΡΠ΅Π³ΠΎ Π΄Π²Π° ΠΊΠΎΠ½Π΄Π΅Π½ΡΠ°ΡΠΎΡΠ°. ΠΠ΅ ΡΡΠΈΡΠ°Ρ Π΄Π²ΡΡ pullup ΡΠ΅Π·ΠΈΡΡΠΎΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠΈΠ½Ρ I2C. Π ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΡΡ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡ Π΅ΠΌΡ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΡΡ Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ: ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° (Π ΠΈΡ.5).
2.2 Π‘Ρ Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π ΠΈΡ. 5. Π‘Ρ Π΅ΠΌΠ° HMC5883L, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΡΡ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡ Π΅ΠΌΡ ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ
3. Π Π°Π±ΠΎΡΠ° ΠΏΠΎ ΡΠΈΠ½Π΅ I2C
ΠΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ ΠΏΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ I2C, Π΄Π°ΡΡΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ. HMC5883L ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ Π°Π΄ΡΠ΅Ρ 0Ρ 1E. Π‘ Π²ΠΎΡΡΠΌΡΠΌ Π±ΠΈΡΠΎΠΌ Π·Π°ΠΏΠΈΡΠΈ/ΡΡΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅Ρ Π±ΡΠ΄Π΅Ρ 0Ρ 3D Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ 0Ρ 3C Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ.
ΠΠ°ΡΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄Π°ΡΡΠΈΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π½ΠΈΠΆΠ΅ (Π ΠΈΡ.6):
Π ΠΈΡ.6
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π°ΡΡΠΈΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ΅Π³ΠΈΡΡΡΡ (ΡΡΠΎ ΡΠ΅, ΠΊΡΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ) Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π½Π° Π°Π΄ΡΠ΅ΡΠ°Ρ 00 (configuration register A), 01 (configuration register B) ΠΈ 02 (mode register).
3.1 Configuration Register A (CRA)
Π ΠΈΡ. 7. Π Π΅Π³ΠΈΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π
ΠΠ΅ΡΠ²ΡΠΉ ΠΈΠ· Π΄ΠΎΡΡΡΠΏΠ½ΡΡ , Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π°ΡΡΠΈΠΊΠ°, ΡΠ΅Π³ΠΈΡΡΡΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ Π±ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠ΅ ΠΈΠΌΡ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ Π²ΠΈΠ΄Π½ΠΎ Ρ ΠΊΠ°ΠΊΠΈΠΌ Π΅ΡΠ΅ Π±ΠΈΡΠΎΠΌ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΠΎΠ½ ΡΠ²ΡΠ·Π°Π½ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΈΡΡ CRA6 ΠΈ CRA5 ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΈΠΌΡ MA1 ΠΈ MA0 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ) CRA7 — Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±ΠΈΡ ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ CRA6|CRA5 — ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΈΡΠ»ΠΎ Π·Π°ΠΌΠ΅ΡΠΎΠ² (ΡΠ΅ΠΌΠΏΠ»ΠΎΠ²) ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ΄Π°ΡΠ΅ΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠΈ Π±ΠΈΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ: 00 = 1(Default); 01 = 2; 10 = 4; 11 = 8 ΠΡΠΈΠΌΠ΅Ρ: ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ 4 ΡΠ΅ΠΌΠΏΠ»Π° Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π² CRA6 Π΅Π΄ΠΈΠ½ΠΈΡΡ, a Π² CRA5 Π½ΠΎΠ»Ρ. CRA4|CRA3|CRA2 — ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Ρ ΠΊΠ°ΠΊΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅Π³ΠΈΡΡΡΡ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ (Data Output Registers). 000 — 0,75 ΠΡ 001 — 1,5 ΠΡ 010 — 3 ΠΡ 011 — 7,5 ΠΡ 100 — 15 ΠΡ (Π΄Π΅ΡΠΎΠ»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) 101 — 30 ΠΡ 110 — 75 ΠΡ 111 — Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΡΠΈΠΌΠ΅Ρ: Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ Π΄ΠΎ 75 ΠΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π² CRA4 Π΅Π΄ΠΈΠ½ΠΈΡΡ, Π² CRA3 Π΅Π΄ΠΈΠ½ΠΈΡΡ, Π² CRA2 Π½ΠΎΠ»Ρ. CRA1|CRA0 — Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠΈΠΏ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ. Π’ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°ΠΌΠΎΡΠΎΡΠΊΠΈ Ρ ΠΈΠΌΠΏΠ΅Π΄Π°Π½ΡΠΎΠΌ Π² ΠΌΠ°Π³Π½ΠΈΡΠΎΡΠ΅Π·ΠΈΡΡΠΈΠ²Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅ Π΄Π°ΡΡΠΈΠΊΠ° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΎΡΠ΅ΠΉ. ΠΡΡΠ°Π²ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (00 — Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ). ΠΡΠΈΠΌΠ΅Ρ: Π½Π°ΡΡΡΠΎΠΈΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΅Π³ΠΈΡΡΡ Π, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΌΠΏΠ»ΠΎΠ² ΡΠ°Π²Π½ΡΠΌ 8, ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ 3 ΠΡ, Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ 8 Π±ΠΈΡ Π΄Π°Π½Π½ΡΡ , Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ: &b01101000.
3.2. Configuration Register B (CRB)
Π ΠΈΡ. 8. Π Π΅Π³ΠΈΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π
Π ΡΠ΅Π³ΠΈΡΡΡΠ΅ B Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π°ΡΡΠΈΠΊΠ° ΠΊ ΠΌΠ°Π³Π½ΠΈΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»Ρ. ΠΠ° ΡΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π±ΠΈΡΡ CRB7|CRB6|CRB5. ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ 5 Π±ΠΈΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, Π½ΠΎ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°Π±ΠΈΡΡ Π½ΡΠ»ΡΠΌΠΈ. ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (Lsb/Gauss) Π΄Π°ΡΡΠΈΠΊΠ° ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π±ΠΈΡΠΎΠ² CRB7|CRB6|CRB5
000 -1370 001 -1090 (Π΄Π΅ΡΠΎΠ»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅) 010 — 820 011 — 660 100 — 440 101 — 390 110 — 330 111 — 230 ΠΡΠΈΠΌΠ΅Ρ: ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π°ΡΡΠΈΠΊΠ°, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΠΌ Π² ΡΠ΅Π³ΠΈΡΡΡ B Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ &b00000000 3.3. Mode Register (MR)
Π ΠΈΡ. 9 Π Π΅ΠΆΠΈΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΎΡΡΠ°Π²ΡΠ΅ΠΌΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ΅, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π° ΡΠΈΠ½Π΅ I2C ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Π΄Π°ΡΡΠΈΠΊΠ°. ΠΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ I2C (3400 ΠΊΠΡ) ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π·Π°ΠΏΠΈΡΡΡ Π² Π±ΠΈΡ MR7 Π΅Π΄ΠΈΠ½ΠΈΡΡ. MD1|MD0 ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Π΄Π°ΡΡΠΈΠΊΠ°: 00 — ΡΠ΅ΠΆΠΈΠΌ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ. 01 — ΡΠ΅ΠΆΠΈΠΌ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ (Π² ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π΄Π°ΡΡΠΈΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). ΠΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π² ΡΠ΅Π³ΠΈΡΡΡ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Π΄Π°ΡΡΠΈΠΊ ΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ (Idle) 10 — ΠΏΠΎΠ³ΡΡΠΆΠ°Π΅Ρ Π΄Π°ΡΡΠΈΠΊΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. ΠΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π² ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠ°Π΄Π°Π΅Ρ Π΄ΠΎ 2 ΠΌΠΊΠ 11 — ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ³ΡΡΠΆΠ°Π΅Ρ Π΄Π°ΡΡΠΈΠΊ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ: ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π°ΡΡΠΈΠΊΠ° Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ Π½Π° ΡΠΊΠΎΡΠΎΡΡΠΈ 3400ΠΊΠΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΠΌ ΡΠ΅ΠΆΠΈΠΌ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π² ΡΠ΅Π³ΠΈΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ &b10000000. ΠΠ·ΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΏΠΎ ΡΡΠ΅ΠΌ ΠΎΡΡΠΌ Π΄Π°Π½Π½ΡΠ΅ Π·Π°Π±ΠΈΡΠ°ΡΡΡΡ ΠΈΠ· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΎΡΠ΅ΠΉ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· Π΄Π²ΡΡ Π±Π°ΠΉΡ — ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΠΈ ΠΌΠ»Π°Π΄ΡΠ΅Π³ΠΎ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»ΠΎΠΆΠΈΡΡ, Π½ΠΎ ΡΡΠΎ ΡΠΆΠ΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅ Π²Π΅ΡΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΠΊΠΎΠ΄Ρ ΠΈ ΠΆΠ΅Π»Π΅Π·Ρ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ ΠΏΠ°ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡΠΏΠΈΡΡ Π²ΠΎΡ ΡΠ°ΠΊΡΡ Π³ΠΎΡΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ°ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° (Π ΠΈΡ.10):
Π ΠΈΡ. 10.ΠΠ΅ΡΠ°ΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ° Π‘ΡΠΎΠΈΠΌΠΎΡΡΡ 5 $ ΠΈ ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΡΡ Π΅ΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠΎΠ²Π½Π΅ΠΉ. ΠΠΎΡΡΠΎΠΌΡ ΡΡΡ ΠΏΠ»Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΊ 5-ΠΈ Π²ΠΎΠ»ΡΡΠΎΠ²ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π±Π΅Π· ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΏΠ°Π»ΠΈΡΡ ΡΠ΅Π½ΡΠΎΡ. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΠ»Π°ΡΠ° Ρ Π΄Π°ΡΡΠΈΠΊΠΎΠΌ Π½Π°ΠΏΡΡΠΌΡΡ ΠΊ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ, ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΠ΅Π·ΠΈΡΡΠΎΡΡ ΡΡΠ°Π²ΠΈΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΠΎΠ½ΠΈ ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ Π½Π° ΠΏΠ»Π°ΡΠ΅ (Π ΠΈΡ.11):
Π ΠΈΡ. 11. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ ΠΏΠ»Π°ΡΠ° Ρ Π΄Π°ΡΡΠΈΠΊΠΎΠΌ Π½Π°ΠΏΡΡΠΌΡΡ ΠΊ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΠΏΠ΅ΡΠ²ΡΡ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π°:
#include //I2C Arduino Library
#define address 0x1E //1 1110b, I2C 7bit address of HMC5883
void setup (){
//Initialize Serial and I2C communications
Serial.begin (9600);
Wire.begin ();
//Put the HMC5883 IC into the correct operating mode
Wire.beginTransmission (address); //open communication with HMC5883
Wire.send (0×02); //select mode register
Wire.send (0×00); //continuous measurement mode
Wire.endTransmission ();
}
ΠΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ Setup () ΡΡΠ½ΠΊΡΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π² Π½Π°ΡΠ°Π»Π΅. ΠΠ½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ 9600 Π±ΠΎΠ΄. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ , Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. I2C ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ «write» Π² HMC5883L. Π¦Π΅Π»Ρ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ 'Π·Π°ΠΏΠΈΡΠΈ' ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΅Π³ΡΠ»ΠΈΡΠΎΠ²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΎΡ HMC5883L, Π·Π°Π΄Π°Π΅ΠΌ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΎΡΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΠΏ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΈΠ΄ΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΡΠ½Π΅ΡΠ³ΠΈΠΈ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΠΌΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π² Π½Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΡΠΈΡΠ°ΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ ΡΠ½ΠΎΠ²Π°.
ΠΠ²ΠΈΠ³Π°Π΅ΠΌΡΡ Π΄Π°Π»ΡΡΠ΅, Π²ΠΎΡ Π³Π΄Π΅ ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅:
void loop (){
int x, y, z; //triple axis data
//Tell the HMC5883L where to begin reading data
Wire.beginTransmission (address);
Wire.send (0×03); //select register 3, X MSB register
Wire.endTransmission ();
//Read data from each axis, 2 registers per axis
Wire.requestFrom (address, 6);
if (6<=Wire.available ())= Wire. receive (); //X lsb
z = Wire. receive ()<<8; //Z msb
z
//Print out values of each axis
Serial.print («x: «);
Serial.print (x);
Serial.print («y: «);
Serial.print (y);
Serial.print («z: «);
Serial.println (z);
delay (250);
}
Π€ΡΠ½ΠΊΡΠΈΡ loop () Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ½ΠΎΠ²Π° ΠΈ ΡΠ½ΠΎΠ²Π° Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π΅ΡΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΡ. Π§Π΅ΡΠ΅Π· ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ Π±ΡΡΡΡΡΡ Π·Π°ΠΏΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π³Π΄Π΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π½Π°ΡΠ°ΡΡ ΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΡΠ΅ΠΉ. Π Π΅Π³ΠΈΡΡΡ 3 Π²ΡΠ±ΡΠ°Π½ ΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΡΠΈΠΌΡΠΉ Π±Π°ΠΉΡ ΠΎΡΠΈ Π₯.
ΠΡ Π·Π°Π΄Π°Π΅ΠΌ ΡΡΠ΅Π½ΠΈΠ΅ 6 Π±Π°ΠΉΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄ΡΡΠ³ΠΈΠΌ. Π§ΠΈΠΏ Π°Π²ΡΠΎ-ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠΎ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ Π²ΡΡΡΠ½ΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ. ΠΡΡ Π΄Π°Π½Π½ΡΡ Ρ , Ρ, z ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ 'Serial Monitor' ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Arduino, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ (Π ΠΈΡ.12).
Π ΠΈΡ. 12.ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡΠ΅ΠΉ Ρ , Ρ, z
4.ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠ΅ ΠΠ°Π½Π½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ 5 Π Π²ΡΡ ΠΎΠ΄Π° Ρ 3.3 Π Π²Ρ ΠΎΠ΄ΠΎΠΌ. Π‘Ρ Π΅ΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΡΡΠΎΡΠΎΠ½Π½Π΅ΠΉ (Π ΠΈΡ.13).
Π ΠΈΡ. 13.Π‘Ρ Π΅ΠΌΠ° ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ 5 Π Π²ΡΡ ΠΎΠ΄Π° Ρ 3.3 Π Π²Ρ ΠΎΠ΄ΠΎΠΌ ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ NPN ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠ°. Π‘ΠΈΠ³Π½Π°Π» ΠΈΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΡΡΡ, Π² ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ ΡΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠ³Π½Π°Π»Π°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ n-ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠ° (Π ΠΈΡ.14):
Π ΠΈΡ. 14.Π‘Ρ Π΅ΠΌΠ° ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ 5 Π Π²ΡΡ ΠΎΠ΄Π° Ρ 3.3 Π Π²Ρ ΠΎΠ΄ΠΎΠΌ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ n-ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠ°
Π Π΅Π·ΠΈΡΡΠΎΡ R2 Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠ° ΠΏΡΠΈ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΌ ΡΡΠΎΠ²Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΎΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΡ Ρ ΠΌΠ°Π»ΡΠΌ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΡΠΌ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°ΡΠ²ΠΎΡΠ°. ΠΠ΄Π΅Π°Π»ΡΠ½ΡΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ «ΡΠΈΡΡΠΎΠ²ΡΡ » ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡΠΎΠ². ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°ΡΠ°ΡΡΠ°Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π½ΠΎΠΌΠΈΠ½Π°Π» ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ΅Π·ΠΈΡΡΠΎΡΠ° R5 Π΄ΠΎ 4.7 ΠΊΠΠΌ. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π½Π°Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ. ΠΠΎΠ»Π΅Π΅ ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ MOSFET ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡ Π² Π΄ΡΡΠ³ΠΎΠΌ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ.
4.1 Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ²Π½Π΅ΠΉ ΡΠΈΠ½Ρ I2C
Π ΠΈΡ. 15.ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΡΡ Π΅ΠΌΠ° ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΡΠΈΠ½Ρ I2C
4.2 Π‘Ρ Π΅ΠΌΠ° Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ I2C
Π ΠΈΡ. 16. ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΡΡ Π΅ΠΌΠ° Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΡΠΈΠ½Ρ I2C
ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Ρ Π Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅: ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Ρ HMC5883L, ΠΏΠ»Π°ΡΠ° Arduino UNO, ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ. Π£Π·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ HMC5883L ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°. Π£Π·Π½Π°Π»ΠΈ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΈΠ½Π° I2C ΠΈ ΠΊΠ°ΠΊ Ρ Π½Π΅ΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΡΡΡΠ½ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°. Π Π°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Fritzing, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π½Π°ΡΠ΅ΠΉ ΡΡ Π΅ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠ° HMC5883L ΠΊ Arduino UNO. Π’Π°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ 5 Π Π²ΡΡ ΠΎΠ΄Π° Ρ 3.3 Π Π²Ρ ΠΎΠ΄ΠΎΠΌ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
1. ΠΠ°Π±ΠΈΠ½ Π. Π., Π¨ΠΈΠΏΠΈΠ»ΠΎΠ². ΠΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈ ΡΡ Π΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ: ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π΄Π»Ρ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² ΠΎΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ Π΄ΠΈΡΡΠ΅ΠΏΠ»ΠΈΠ½Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠΏΡΠΈΠ²ΠΎΠ΄. 2010. — 65 Ρ.
2. ΠΠΎΡΠΊΠ°Π»Π΅Π½ΠΊΠΎ Π. Π. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠΏΡΠΈΠ²ΠΎΠ΄: Π£ΡΠ΅Π±Π½ΠΈΠΊ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ².- Π.: ΠΠ½Π΅ΡΠ³ΠΎΠ°ΡΠΎΠΌΠΈΠ·Π΄Π°Ρ, 2008. — 416 Ρ.
3. Π§ΠΈΠ»ΠΈΠΊΠΈΠ½ Π. Π., Π‘Π°Π½Π΄Π»Π΅Ρ Π. Π‘. ΠΠ±ΡΠΈΠΉ ΠΊΡΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠΏΡΠΈΠ²ΠΎΠ΄Π°: ΡΡΠ΅Π±Π½ΠΈΠΊ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ². — Π.:ΠΠ½Π΅ΡΠ³ΠΎΠΈΠ·Π΄Π°Ρ, 2007. — 567 Ρ.