10 Channel Analog to Digital Converter (ADC) I2C

HobbyTronics 10 Channel Analog to Digital Converter (ADC) I2C
Cliquer pour agrandir
Prix : 3,96€
(3,30€ + VAT)
Disponibilité : 14
Modèle : HTADCI2C
Fabricant : HobbyTronics
Évaluation : 5 sur 5 Étoiles !

Quantité : + Panier Comparer
HobbyTronics

10 Channel Analog to Digital Converter (ADC) I2C

Many microcontroller projects involve the use of sensors like Accelerometers, Gyroscopes, Temperature, Compass, Barometric, Current, Proximity and others. Some sensors have I2C or SPI interfaces but there are still a great many which produce an analogue output voltage. These are measured with the use of the built-in Analogue to Digital Converters (ADC) included in microcontrollers. However, if you are using many sensors and don’t have enough ADC inputs, or have used those pins for other functions, you either have to upgrade to a larger microcontroller with more inputs or resort to using an external (and expensive) ADC chip.

With this in mind we have programmed our own microcontroller to provide you with 10 additional ADC inputs available via I2C as a slave device.

No additional components are required as it has its own built in oscillator clock circuit.

  • 10 ADC input channels, each with 10 bit resolution (AN0 through AN9)
  • I2C interface
  • Configurable Slave Address between 40 and 47 allows up to 8 units to be added to your project
  • 64MHz Clock Speed
  • ADC values are measured 1000 times per second (1 kHz)
  • Selectable Complementary Filter function
  • Selectable 10-bit (2 bytes per ADC) or 8-bit (1 byte per ADC) output
  • Heartbeat output to show unit is functioning
  • 5V or 3.3V operation
  • Each ADC input is read 3 times and the average value taken to reduce spurious values

ADC to I2C Chip Pinout

Documents

ADC to I2C Datasheet

Example Programs

For Arduino example code, check out the datasheet linked to above.

Here is an example reading the ADC chip using Python on a Raspberry Pi. It reads the 10 ADC channels at 8-bit (10 bytes returned), then at 10-bit (20 bytes returned), and prints the results.

Note: Currently the I2C drivers on the Raspberry Pi lack some features. See this tutorial on clock stretching first

	import smbus
	import time

	bus = smbus.SMBus(0)

	results8 = []
	results10 = []

	bus.write_byte(0x28, 0x01)
	time.sleep(0.1)
	results8 = bus.read_i2c_block_data(0x28, 0x01, 0x0A)
	print results8

	bus.write_byte(0x28, 0x00)
	time.sleep(0.1)
	results10 = bus.read_i2c_block_data(0x28, 0x00, 0x14)
	print results10
	 

 

Écrire un avis
Votre nom :


Votre avis : N.B. : Le HTML n'est pas pris en charge !

Évaluation : Mauvais            Bon

Saisir le code ci-dessous :

Il n'y a aucune image supplémentaire pour ce produit.
Panier
Aucun article
 
Frais de Livraison

France & EU - poste aerienne de 5.24€
Chenilles Livraison Express de 26.47€
Plus d'informations...

 
Promotions
 
Marques
 
 Check out our videos