Jest to DAC czyli Digital to Analog Converter. Sterowany jest szyną I2C.
Układ ten ma obudowę SOT23-6 czyli sześć nóżek i nie bardzo mogli zaimplementować wybór adresu układu poprzez konfigurację nóżek.
Wpadli wiec na pomysł, że będzie można kupić układ z jednym z ośmiu adresów.
Co ciekawe ludzie, i ja do nich należę, najbardziej polubili ten pierwszy z brzegu adres A0.
Niestety koniunkturę wyczuli chyba handlarze i na znanym portalu aukcyjnym układy z tym adresem są czasem po 7zł - 9zł
Tymczasem każdy inny adres w TME można kupić za 3,5zł
Powstała wiec idea by:
-przy pierwszym włączeniu urządzenia sprawdzić jaki adres ma zamontowany DAC i potem go używać
Kod wygląda jak poniżej a przedstawiam go by każdy poszerzył swoje horyzonty myślowe i szukał lepszych sposobów na obejście zwykłych codziennych zmagań z rzeczywistością
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- '*****************************************************************
- '* CONFIG FOR MCP4726 DAC *
- '*****************************************************************
- Dim Dac_val As Word
- Dim Dac_bytes(2) As Byte At Dac_val Overlay
- Dim Dac_learned As Byte , Dac_learned_ee As Eram Byte
- Dim Dac_address As Byte , Dac_address_ee As Eram Byte
- Dac_learned = Dac_learned_ee
- If Dac_learned <> 0 Then
- For Dac_address = 192 To 206 Step 2
- I2cstart
- I2cwbyte Dac_address
- If Err = 0 Then
- Dac_address_ee = Dac_address 'zapamietaj adres
- Dac_learned_ee = 0 'zapamietaj ze wyuczono
- Exit For
- End If
- Next
- End If
- Dac_address = Dac_address_ee 'normalny odczyt adresu z pamieci