Nemrég szükségem lett volna egy saját készítésű műszerbe egy nem túl pontos árammérésre (10 mA felbontás 0-5 A-es tartományban). Mega644-es proci van a kütyüben, de nem jött össze. Egy 0,2 Ohm-os mérőellenálláson eső fesz.-t vezettem az egyik ADC lábra. Kb 250 mA-ig nem történt semmi, utána nagyjából pontos volt, de nekem az alsó tartomány is fontos lett volna. Próbáltam a többi ADC lábon is, az eredmény ugyanez volt.
Kíváncsiságból vettem a ChipCad-nél MCP3421-et (I2C ADC), gondoltam hátha ezzel jobb eredmény születik. Tegnap este bekötögettem próbaképpen a régi MegaBoard panelemre és tátva maradt a szám.
Adatlap: http://ww1.microchip.com/downloads/en/D ... 22003e.pdf
Itt a minta progi, amivel próbáltam:
Kód: Egész kijelölése
'--- Alapadatok ---
$crystal = 14745600 'Sebesseg
$regfile = "M16def.dat" 'Chip
$baud = 9600
Config I2cdelay = 10 ' default slow mode:5
Config Sda = Portc.1
Config Scl = Portc.0
Dim Adat1 As Byte
Dim Adat2 As Byte
Dim Adat3 As Byte
Dim Adat4 As Byte
Dim Ertek1 As Long
Dim Ertek2 As Long
Dim Ertek3 As Long
Dim Ertek As Long
Dim Aram As Long
Do
I2cinit
I2cstart
I2cwbyte &HD0
'I2cwbyte &B10010000 '12bit
'I2cwbyte &B10010100 '14bit
'I2cwbyte &B10011000 '16bit
I2cwbyte &B10011100 '18bit
I2cstop
I2cstart
I2cwbyte &HD1
I2crbyte Adat1 , Ack
I2crbyte Adat2 , Ack
I2crbyte Adat3 , Ack
I2crbyte Adat4 , Nack
I2cstop
Ertek1 = 65536 * Adat1
Ertek2 = 256 * Adat2
Ertek = Ertek1 + Ertek2
Ertek = Ertek + Adat3
Ertek = Ertek * 10
Aram = Ertek / 77 ' 0,1 Ohm-os mérőellenállás esetén
If Adat1 = 255 Then Aram = 0
Print "Áram: " ; Aram ; " mA"
Waitms 30
Loop
Jó pár próbamérést csináltam, már az 1 mA-t stabilan érzékeli, 3 A-es terhelésnél is mA pontosságú a mérés (Maxwell multival ellenőriztem).
Nagyon szimpatikus a darab, bár az 520 Ft+fa ár nem mondható alacsonynak, de most az eredmény a lényeg
Remélem tudtam segíteni valakinek!
Üdv.