Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Wire, Π΅Π΅ ΡΠ½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
#include <Wire.h>
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ I2C
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΠ»Π°ΡΠ° Arduino ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»Ρ Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΠΈΠ½Π΅ I2C. Π§ΡΠΎΠ±Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Arduino ΠΊΠ°ΠΊ Π²Π΅Π΄ΡΡΠ΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ begin Π² ΡΡΠ½ΠΊΡΠΈΠΈ setup, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π»Π΅Π΅:
void setup()
{
Β Β Wire.begin();
}
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ»Π°ΡΠ° Arduino Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ Π²Π΅Π΄ΡΡΠ΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, Π΅ΠΉ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π°Π΄ΡΠ΅Ρ. ΠΡΠ»ΠΈ Π±Ρ ΠΏΠ»Π°ΡΠ° Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π»Π°ΡΡ Π½Π° ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π°Π΄ΡΠ΅Ρ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0 Π΄ΠΎ 127, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ»Π°ΡΡ Π½Π° ΡΠΈΠ½Π΅ I2C.
ΠΡΠΏΡΠ°Π²ΠΊΠ° Π΄Π°Π½Π½ΡΡ Π²Π΅Π΄ΡΡΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ
Π§ΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ Π½Π° ΡΠΈΠ½Π΅ I2C, ΡΠ½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ beginTransmission ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΠΉ Π°Π΄ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°-ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ:
Wire.beginTransmission(4);
ΠΡΠΏΡΠ°Π²ΠΊΠ° Π΄Π°Π½Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ Π½Π° ΡΠΈΠ½Π΅ I2C ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ ΠΏΠΎΠ±Π°ΠΉΡΠ½ΠΎ ΠΈΠ»ΠΈ ΡΠ΅Π»ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΡΠΈΠΏΠ° char, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π΄Π²ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ :
Wire.send(123); // ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π±Π°ΠΉΡΠ° ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 123
Wire.send("ABC"); // ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΡΡΠΎΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² "ABC"
ΠΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ endTransmission:
Wire.endTransmission();
ΠΡΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ Π²Π΅Π΄ΡΡΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ
Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΠ½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ Π±Π°ΠΉΡΠΎΠ² Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ requestFrom:
Wire.requestFrom(4, 6); // Π·Π°ΠΏΡΠΎΡΠΈΡΡ 6 Π±Π°ΠΉΡ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ Π°Π΄ΡΠ΅ΡΠΎΠΌ 4
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π°Π΄ΡΠ΅Ρ Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Π΅Π΄ΡΡΠ΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΆΠ΅Π»Π°Π΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅ β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π°ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ. ΠΠ΅Π΄ΠΎΠΌΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π°ΠΉΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π±ΡΠ»ΠΈ Π»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π°ΠΉΡΠΎΠ² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ available. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ (Π²Π·ΡΡ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² ΡΠΎΡΡΠ°Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Wire) Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊ Π²Π΅Π΄ΡΡΠ΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΡ Π² ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°:
#include <Wire.h>
void setup() {
Β Β Wire.begin();Β Β Β Β Β Β Β Β // ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΠΈΠ½Π΅ i2c (Π΄Π»Ρ Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β // ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π°Π΄ΡΠ΅Ρ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ)
Β Β Serial.begin(9600);Β Β // ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°
}
void loop() {
Β Β Wire.requestFrom(8, 6);Β Β Β Β // Π·Π°ΠΏΡΠΎΡΠΈΡΡ 6 Π±Π°ΠΉΡ Ρ Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° #8
Β Β while (Wire.available()) { // Π²Π΅Π΄ΠΎΠΌΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡΠ»Π°ΡΡ ΠΌΠ΅Π½ΡΡΠ΅
Β Β Β Β char c = Wire.read();Β Β Β Β // ΠΏΡΠΈΠ½ΡΡΡ Π±Π°ΠΉΡ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»
Β Β Β Β Serial.print(c);Β Β Β Β Β Β Β Β Β // Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»
Β Β }
Β Β delay(500);
}
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Wire Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΡΠ΅ΡΠΈΠ·ΡΠ΅Ρ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ I2C
ΠΡΠ±ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ I2C Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, Π³Π΄Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π²Π΅Π΄ΠΎΠΌΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΎΡΠ²Π΅ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ² I2C, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ ΠΏΠ»Π°ΡΠ΅ Arduino, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΎΠ±Π΅ΡΡΡΠ²Π°ΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ I2C Π² ΠΏΡΠΎΡΡΡΠ΅ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΠΉΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ Π²ΡΠ΅ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π·Π°ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ ΡΠ΅Π±Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΊΠΎΠ² Π² ΠΊΠ°ΡΠΌΡ.
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΡΠ°ΡΡΠΎ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ.
Π£ΠΠ-ΡΠ°Π΄ΠΈΠΎΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ TEA5767
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠ΅ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ I2C, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ. ΠΠ΄Π΅ΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΠΌΠ΅Π½ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Arduino ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ TEA5767. ΠΠ°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡΠΏΠΈΡΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΎΡΠ΅Π½Ρ Π½Π΅Π΄ΠΎΡΠΎΠ³ΠΎ, ΠΎΠ½ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ ΠΏΠ»Π°ΡΠ΅ Arduino ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π£ΠΠ-ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Arduino.
Π‘Π°ΠΌΡΠΉ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΡΡΠ°ΠΏ β ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΎΠ½ΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΈ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅ ΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΎΡΠ΅Π½Ρ Π±Π»ΠΈΠ·ΠΊΠΎ Π΄ΡΡΠ³ ΠΊ Π΄ΡΡΠ³Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΠΌΠ°ΡΡΠ΅ΡΠΈΡΡ ΠΈΠ»ΠΈ ΠΊΡΠΏΠΈΡΡ Π°Π΄Π°ΠΏΡΠ΅Ρ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠ»Π°ΡΠ΅.
ΠΠ° ΡΠΈΡ. 7.5 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° ΡΡ Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΊ Arduino.

Π ΠΈΡ. 7.5. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ TEA5767 ΠΊ ΠΏΠ»Π°ΡΠ΅ Arduino Uno ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ I2C
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ TEA5767 ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ www.sparkfun.com/datasheets/Wireless/General/TEA5767.pdf. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°ΡΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π½ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π΅ΠΆΠ°ΡΡ Π²Π·Π³Π»ΡΠ΄ΠΎΠΌ ΠΏΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΡΠ°Π·Π΄Π΅Π» Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π΅ΠΌΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ. Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ TEA5767 ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΠ½ΠΎΠΉ 5 Π±Π°ΠΉΡ. ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΡΠ°ΡΡΠΎΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ°. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΆΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ ΠΆΠΈΠ΄ΠΊΠΎΠΊΡΠΈΡΡΠ°Π»Π»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΏΠ»Π΅Ρ.
// sketch_07_01_I2C_TEA5767
#include <Wire.h>
void setup()
{
Β Β Wire.begin();
Β Β setFrequency(93.0); // ΠΠΡ
}
void loop()
{
}
void setFrequency(float frequency)
{
Β Β unsigned int frequencyB = 4 * (frequency * 1000000 + 225000) / 32768;
Β Β byte frequencyH = frequencyB >> 8;
Β Β byte frequencyL = frequencyB & 0XFF;
Β Β Wire.beginTransmission(0x60);
Β Β Wire.write(frequencyH);
Β Β Wire.write(frequencyL);
Β Β Wire.write(0xB0);
Β Β Wire.write(0x10);
Β Β Wire.write(0x00);
Β Β Wire.endTransmission();
Β Β delay(100);
}
ΠΠ΅ΡΡ ΠΊΠΎΠ΄, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π΄Π»Ρ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ setFrequency. ΠΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ β ΡΠ°ΡΡΠΎΡΡ Π² ΠΌΠ΅Π³Π°Π³Π΅ΡΡΠ°Ρ . Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΆΠ΅Π»Π°Π΅ΡΠ΅ ΡΠΎΠ±ΡΠ°ΡΡ ΠΈ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠ·Π½Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΎΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Π΅ΡΠ°Π΅Ρ ΠΌΠ΅ΡΡΠ½Π°Ρ ΡΠ°Π΄ΠΈΠΎΡΡΠ°Π½ΡΠΈΡ Ρ Ρ ΠΎΡΠΎΡΠΈΠΌ ΡΠΈΠ»ΡΠ½ΡΠΌ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ, ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π²ΡΠ·ΠΎΠ² setFrequency Π² ΡΡΠ½ΠΊΡΠΈΠΈ setup.
Π§ΡΠΎΠ±Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎΡΡ Π² Π΄Π²ΡΡ Π±Π°ΠΉΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π°ΡΡ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΏΡΡΠΈΠ±Π°ΠΉΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ:
unsigned int frequencyB = 4 * (frequency * 1000000 + 225000) / 32768;
byte frequencyH = frequencyB >> 8;
byte frequencyL = frequencyB & 0XFF;
ΠΠΎΠΌΠ°Π½Π΄Π° >> ΡΠ΄Π²ΠΈΠ³Π°Π΅Ρ Π±ΠΈΡΡ Π²ΠΏΡΠ°Π²ΠΎ, ΡΠΎ Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ >> 8 ΡΠ΄Π²ΠΈΠ½Π΅Ρ ΡΡΠ°ΡΡΠΈΠ΅ 8 Π±ΠΈΡ Π² ΡΡΠΎΡΠΎΠ½Ρ ΠΌΠ»Π°Π΄ΡΠΈΡ Π½Π° 8 Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ°Π·ΡΡΠ΄ΠΎΠ². ΠΠΏΠ΅ΡΠ°ΡΠΎΡ & Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π (AND), ΠΊΠΎΡΠΎΡΠ°Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΡΠΎΡΠΈΡ ΡΡΠ°ΡΡΠΈΠ΅ 8 Π±ΠΈΡ ΠΈ ΠΎΡΡΠ°Π²ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ»Π°Π΄ΡΠΈΠ΅. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ Π±ΠΈΡΠ°ΠΌΠΈ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π² Π³Π»Π°Π²Π΅ 9.
ΠΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ΄ Π² ΡΡΠ½ΠΊΡΠΈΠΈ setFrequency ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ I2C Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ Ρ Π°Π΄ΡΠ΅ΡΠΎΠΌ 0x60, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ Π·Π° ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠΌ TEA5767. ΠΠ°ΡΠ΅ΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° 5 Π±Π°ΠΉΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ 2 Π±Π°ΠΉΡ ΡΠ°ΡΡΠΎΡΡ.
ΠΡΠΎΡΠΈΡΠ°Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ°Π·Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π΄Π²ΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ² Π²ΡΠ²ΠΎΠ΄Π° Π·Π²ΡΠΊΠ° ΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΌΠΎΠ½ΠΎ/ΡΡΠ΅ΡΠ΅ΠΎ.
Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ Π΅ΡΠ΅ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΡΡΠΎΠΌΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄Π»Ρ Arduino, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ TEA5767.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΏΠ»Π°ΡΠ°ΠΌΠΈ Arduino
ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π²Π΅ ΠΏΠ»Π°ΡΡ Arduino, ΠΎΠ΄Π½Π° Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ Π²Π΅Π΄ΡΡΠ΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ I2C, Π° Π΄ΡΡΠ³Π°Ρ β ΠΊΠ°ΠΊ Π²Π΅Π΄ΠΎΠΌΠΎΠ΅. ΠΠ΅Π΄ΡΡΠ΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π²Π΅Π΄ΠΎΠΌΠΎΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΡ Π² ΠΌΠΎΠ½ΠΈΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΡΡ Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.