ads1115 analog-to-digital 4-channel added
[i2c-telemetry.git] / ads1115
1 #!/bin/sh
2
3 I2CBUS=0
4 I2CADDR=0x48
5
6 if [ "$1" == "" ]
7 then
8   pin=0
9 else
10   pin=$1
11 fi
12
13 case "$pin" in
14   "0") CFG="0xc583" ;;
15   "1") CFG="0xc593" ;;
16   "2") CFG="0xc5a3" ;;
17   "3") CFG="0xc5b3" ;;
18   *) echo "Bad pin number $pin, must be 0..3" ; exit 1 ;;
19 esac
20
21 i2cset -y 0 0x48 1 $CFG w
22 RES=`i2cget -y 0 0x48 1 w`
23 until [ "$RES" = "$CFG" ] ; do
24   RES=`i2cget -y 0 0x48 1 w`
25 done
26 X=`i2cget -y 0 0x48 0 w`
27
28 XX="0x0`echo $X | cut -c 5-6``echo $X | cut -c 3`"
29 VIND=$(( ( $XX + 32768 / 40960 ) * 20480 / 32768 ))
30 VIN=$(( $VIND / 10 ))
31 VINF=$(( $VIND - $VIN * 10 ))
32
33 printf "VIN$pin (mv) %d.%01d\n" $VIN $VINF