Guest User

Untitled

a guest
Mar 21st, 2014
566
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.37 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. import time
  4. import smbus
  5.  
  6.  
  7. class ADS7828:
  8.     i2c = None
  9.  
  10.     # Config Register
  11.     __ADS7828_CONFIG_SD_DIFFERENTIAL      = 0b00000000
  12.     __ADS7828_CONFIG_SD_SINGLE            = 0b10000000
  13.     __ADS7828_CONFIG_CS_CH0               = 0b00000000
  14.     __ADS7828_CONFIG_CS_CH1               = 0b00010000
  15.     __ADS7828_CONFIG_CS_CH2               = 0b00100000
  16.     __ADS7828_CONFIG_CS_CH3               = 0b00110000
  17.     __ADS7828_CONFIG_CS_CH4               = 0b01000000
  18.     __ADS7828_CONFIG_CS_CH5               = 0b01010000
  19.     __ADS7828_CONFIG_CS_CH6               = 0b01100000
  20.     __ADS7828_CONFIG_CS_CH7               = 0b01110000
  21.     __ADS7828_CONFIG_PD_OFF               = 0b00000000
  22.     __ADS7828_CONFIG_PD_REFOFF_ADON       = 0b00000100
  23.     __ADS7828_CONFIG_PD_REFON_ADOFF       = 0b00001000
  24.     __ADS7828_CONFIG_PD_REFON_ADON        = 0b00001100
  25.  
  26.     def __init__(self, address=0x48, busId=2, debug=False):
  27.         self.i2c = smbus.SMBus(busId)
  28.         self.address = address
  29.         self.debug = debug
  30.  
  31.     def readChannel(self, ch):
  32.         config = 0
  33.         config |= self.__ADS7828_CONFIG_SD_SINGLE
  34.         config |= self.__ADS7828_CONFIG_PD_REFOFF_ADON
  35.  
  36.         if ch == 0:
  37.             config |= self.__ADS7828_CONFIG_CS_CH0
  38.         elif ch == 1:
  39.             config |= self.__ADS7828_CONFIG_CS_CH1
  40.         elif ch == 2:
  41.             config |= self.__ADS7828_CONFIG_CS_CH2
  42.         elif ch == 3:
  43.             config |= self.__ADS7828_CONFIG_CS_CH3
  44.         elif ch == 4:
  45.             config |= self.__ADS7828_CONFIG_CS_CH4
  46.         elif ch == 5:
  47.             config |= self.__ADS7828_CONFIG_CS_CH5
  48.         elif ch == 6:
  49.             config |= self.__ADS7828_CONFIG_CS_CH6
  50.         elif ch == 7:
  51.             config |= self.__ADS7828_CONFIG_CS_CH7
  52.  
  53.         self.i2c.write_byte(self.address, config)
  54.         time.sleep(0.05)
  55.         data = self.i2c.read_i2c_block_data(self. address, 0, 2)
  56.         print config
  57.         print data
  58.         return ((data[0] << 8) + data[1])
  59.  
  60. adc = ADS7828(0x48, 2, True)
  61. print(("ch0: " + str(adc.readChannel(0))))
  62. print(("ch1: " + str(adc.readChannel(1))))
  63. print(("ch2: " + str(adc.readChannel(2))))
  64. print(("ch3: " + str(adc.readChannel(3))))
  65. print(("ch4: " + str(adc.readChannel(4))))
  66. print(("ch5: " + str(adc.readChannel(5))))
  67. print(("ch6: " + str(adc.readChannel(6))))
  68. print(("ch7: " + str(adc.readChannel(7))))
Advertisement
Add Comment
Please, Sign In to add comment