Carte intégrée :

Ampli mono constant :
I2C 2 channels digital volume controller IC PT2257 :
Scketch de test ici
/*
PT2257 - Electronic Volume Controller IC
Datasheet - http://www.princeton.com.tw/Portals/0/Product/PT2257.pdf
Pinout
|-----_-----|
1 -| Lin Rin |- 8
2 -| Lout Rout |- 7
3 -| Gnd V+ |- 6
4 -| SDA SCL |- 5
|-----------|
The interface protocol consists of the following:
• A Start bit
• A Chip Address byte=88H 10001000
• ACK=Acknowledge bit
• A Data byte
• A Stop bit
Max. clock speed=100K bits/s
FUNCTION BITS
MSB 2 3 4 5 6 7 LSB Function
----------------------------------------------------------------------------------------
1 1 1 1 1 1 1 1 Function OFF (-79dB)
1 1 0 1 A3 A2 A1 A0 2-Channel, -1dB/step
1 1 1 0 0 B2 B1 B0 2-Channel, -10dB/step
1 0 1 0 A3 A2 A1 A0 Left Channel, -1dB/step
1 0 1 1 0 B2 B1 B0 Left Channel, -10dB/step
0 0 1 0 A3 A2 A1 A0 Right Channel, -1dB/step
0 0 1 1 0 B2 B1 B0 Right Channel, -10dB/step
0 1 1 1 1 0 0 M 2-Channel MUTE (M=1 -> MUTE=ON / M=0 -> MUTE=OFF)
ATTENUATION UNIT BIT
A3 AB2 AB1 AB0 ATT(-1) ATT(-10)
0 0 0 0 0 0
0 0 0 1 -1 -10
0 0 1 0 -2 -20
0 0 1 1 -3 -30
0 1 0 0 -4 -40
0 1 0 1 -5 -50
0 1 1 0 -6 -60
0 1 1 1 -7 -70
1 0 0 0 -8
1 0 0 1 -9
*/
#include <Wire.h>
void setup() {
Serial.begin(9600);
Serial.println("pt2257 Ampli");
Wire.begin();
delay(200);
}
void loop() {
Wire.beginTransmission(0x44);
Serial.println("Set attenuation");
Wire.write(0b011100000); // set low attenuation
delay(200);
Wire.endTransmission();
delay(5000);
Wire.beginTransmission(0x44);
Serial.println("Set very attenuation");
Wire.write(0b011100001); // set very low attenuation
delay(200);
Wire.endTransmission();
delay(5000);
Wire.beginTransmission(0x44);
Serial.println("Set very very attenuation");
Wire.write(0b011100011); // set very low attenuation
delay(200);
Wire.endTransmission();
delay(5000);
Wire.beginTransmission(0x44);
Serial.println("Set very very very attenuation: ");
Wire.write(0b011100111); // set very low attenuation
delay(200);
Wire.endTransmission();
delay(5000);
/*
Wire.beginTransmission(0x44);
Serial.println("set full attenuation ");
Wire.write(0b111111111); // set very low attenuation
delay(200);
Wire.endTransmission();
delay(5000);
*/
}
Votre commentaire