Witam.
Mam dziwną sytuację.
Mierzę napięcie wejściowe na jednym z kanałów przetwornika PCF8591 za pomocą kodu:
I co otrzymuję?
Jeśli na Vref podłączę 2,5 V otrzymuję:
- dla 2,5V ADC zwraca wartość 48
- dla 5V ADC zwraca wartość 97
Jeśli na Vref podłączę VCC = 5V wówczas otrzymuję:
- dla 2,5V ADC zwraca wartość 24
- dla 5V ADC zwraca wartość 49
Tymczasem PCF8591 to przetwornik 8bitowy zatem przedział wartości to 0...255. Przy napięciu odniesienia Vref=5V przy podaniu na wejście wartości 5V spodziewał bym się raczej wartości ADC=255 a nie 49.
Jakieś podpowiedzi?
Mam dziwną sytuację.
Mierzę napięcie wejściowe na jednym z kanałów przetwornika PCF8591 za pomocą kodu:
Const Pcf1_read_ad = 145
Const Pcf1_write_ad = 144
Const Pcf2_read_ad = 153
Const Pcf2_write_ad = 152
Config Sda = Portc.1
Config Scl = Portc.0
$regfile = "m16def.DAT"
$crystal = 1843200
$baud = 4800
Echo Off
Nadawanie Alias Portd.4
Dim Wartosc_ac$ As Word
Dim Kanal As Byte
Dim Read_ad As Byte
Dim Write_ad As Byte
Declare Sub Odczyt_pcf8591
Set Nadawanie
Print
Print "Nadawanie OK"
Reset Nadawanie
Read_ad = Pcf1_read_ad
Write_ad = Pcf1_write_ad
Kanal = 0
Do
Call Odczyt_pcf8591
Set Nadawanie
Print Wartosc_ac$
Print
Reset Nadawanie
Waitms 255
Loop
Sub Odczyt_pcf8591
I2cstart
I2cwbyte Write_ad
I2cwbyte Kanal ' Kanał 0...3 PCF8591
I2cstart
I2cwbyte Read_ad
I2crbyte Wartosc_ac$ , Nack
I2cstop
End Sub
EndI co otrzymuję?
Jeśli na Vref podłączę 2,5 V otrzymuję:
- dla 2,5V ADC zwraca wartość 48
- dla 5V ADC zwraca wartość 97
Jeśli na Vref podłączę VCC = 5V wówczas otrzymuję:
- dla 2,5V ADC zwraca wartość 24
- dla 5V ADC zwraca wartość 49
Tymczasem PCF8591 to przetwornik 8bitowy zatem przedział wartości to 0...255. Przy napięciu odniesienia Vref=5V przy podaniu na wejście wartości 5V spodziewał bym się raczej wartości ADC=255 a nie 49.
Jakieś podpowiedzi?