A quick little post for my future reference really. Wanted to get an i2C Analogue to Digital Converter (ADC) working on a Raspberry Pi. No real application as yet, but sure to be one in the future.
Most of the information to make this work was taken from posts by Grumpy Mike on the Raspberry Pi forums. Got a couple of PCF8591s nice & cheep from
Below is the very basic and non-defensive Python code to simply read the voltage provided by the pot to ADC channel 0 and print a proportional value between 0 & 255:
#Read a value from analogue input 0
#in A/D in the PCF8591P @ address 0x48 from smbus import SMBus bus = SMBus( 0 ) print ( "Read the A/D" ) print ( "Ctrl C to stop" ) bus.write_byte( 0x48 , 0 ) # set control register to read channel 0 last_reading = - 1 while ( 0 = = 0 ): # do forever reading = bus.read_byte( 0x48 ) # read A/D if ( abs (last_reading - reading) > 2 ): print (reading) last_reading = reading |