Comment puis-je connecter un convertisseur analogique-numérique (ADC)?

22

J'examine les options d'ADC sur le Rasbperry Pi. Je me demande ce qui est possible jusqu'à présent. Bien sûr, c'est facile et bon marché.

John La Rooy
la source
Pourquoi en avez-vous besoin?
Jivings
@Jivings, je pense à quelques projets qui peuvent se contenter de taux d'échantillonnage relativement faibles.
John La Rooy

Réponses:

15

Adafruit a un joli tutoriel sur l'utilisation du MCP3008 (3,75 $) - ADC 8 canaux 10 bits avec interface SPI pour contrôler le volume d'un fichier mp3, mais il devrait vous donner un bon point de départ pour tout projet analogique-numérique.

Steve Robillard
la source
1
Arduino et PICAXE ne sont pas les bonnes solutions ici.
Alex Chamberlain
Je ne suis pas d'accord que l'Arduino n'est pas la bonne solution ici. L'Arduino utilise USB tandis que le MCP3008 utilise SPI. L'Arduino est tout prêt à l'emploi et prêt à l'emploi, tandis que le MCP3008 aura besoin d'accessoires et de travail pour fonctionner. Le MCP3008 est moins cher, mais au moment où vous ajoutez tout ce dont vous avez besoin (éclatement du GPIO, montage de la planche à pain ..), l'écart de coût n'est pas aussi grand qu'il n'y paraît. Dans l'ensemble, si vous voulez expérimenter et faire un tour rapide autour de l'Arduino est l'option supérieure, mais si vous recherchez une installation permanente, je conviens que le MCP3008 fonctionne mieux.
Dan B
8

ADS1115

Les ADS1113, ADS1114 et ADS1115 sont des convertisseurs analogiques-numériques (ADC) de précision avec 16 bits de résolution proposés dans un boîtier QFN-10 ultra-petit et sans plomb ou MSOP-10. Les ADS1113 / 4/5 sont conçus avec précision, puissance et facilité de mise en œuvre. L'ADS1113 / 4/5 dispose d'une référence embarquée et d'un oscillateur. Les données sont transférées via une interface série compatible I²C; quatre adresses esclaves I²C peuvent être sélectionnées. L'ADS1113 / 4/5 fonctionne à partir d'une seule alimentation allant de 2,0 V à 5,5 V.

Vous devez d'abord vous assurer que les modules I²C sont chargés . Connectez ensuite l'ADS1115 comme indiqué ci-dessous. Il y a 4 adresses différentes possibles en fonction de la broche ADDR qui est connectée. Cela signifie que vous pouvez connecter un total de 16 canaux à un seul bus I²C.

GND = 0x48, VDD = 0x49, SDA = 0x4A, SCL = 0X4B

entrez la description de l'image ici

Vous pouvez voir le résultat de la dernière conversion comme ceci

# i2cget -y 0 0x49 0 w
0x0000

La valeur par défaut de 0x0000 est renvoyée ici car aucune conversion n'a encore été effectuée. Jetons maintenant un œil au registre de configuration

# i2cget -y 0 0x49 1 w
0x8385

Le LSB est le premier, donc cela équivaut à 0b1000010110000011

Je voudrais faire une conversion asymétrique sur AIN0, donc je dois écrire des bits [14:12] en tant que 0b100. c'est à dire0b1100010110000011

# i2cset -y 0 0x49 1 0xC385 w
# i2cget -y 0 0x49 0 w
0xa30b

Le LSB est le premier, il est donc égal à 2979 décimal

John La Rooy
la source
1
ces types d'emballages ne sont-ils pas un peu plus difficiles à utiliser en raison de la taille / de l'espacement des broches? Surtout pour ceux qui comme moi souffrent d'arthrite (ce qui limite ma dextérité manuelle.
Steve Robillard
@SteveRobillard, oui, ils sont plus difficiles à travailler, mais certainement plus faciles qu'ils ne le semblent. Pour MSOP, il est utile d'avoir un grossissement, un flux, une mèche de soudure et une bonne station de soudage. Vous pouvez avoir pas mal de temps pour clouer un coin du MSOP avec de la soudure jusqu'à ce que vous soyez satisfait du positionnement. La petite taille aide à réduire le bruit dans le circuit, donc ça vaut le coup d'essayer, vous pourriez être surpris.
John La Rooy
1

Eh bien, tant que votre utilisation souhaitée ne nécessite pas de débits ou de résolution très élevés, vous pouvez probablement simplement utiliser un Arduino. Les Arduinos sont sympas car ils ont une énorme communauté de support, ils existent depuis un certain temps, et la communication via USB pas de GPIO!

Voici un lien vers le blog de Simon Monk avec des instructions sur la façon dont il communique avec l'Arduino à partir d'un Raspberry Pi avec python.

Juste au cas où vous n'auriez jamais entendu parler d'un Arduino auparavant (peut-être que vous avez vécu sous un rocher), voici un lien vers leur page d'introduction et un exemple d'entrée analogique de niveau débutant .

Dan B
la source
0

Similaire à l'utilisation d'un Arduino mais qu'en est-il d'un appareil PICAXE, connecté au RPi UART? Ce serait plus petit et beaucoup moins cher. Pour moi, Arduino semble exagéré en fonction de vos besoins réels.

Gars
la source
0

Dans un mois ou deux, (en raison de l'expédition en Afrique), je recevrai une carte I2C PCF8591 qui prend en charge le site WiringPi et la carte utilise 3.3v (généralement) J'ai obtenu la version WaveShare sur Amazon Amazon Link De ce que je '' ve lu, le PCF8591 est assez sympa mais tant que je n'ai pas la carte devant moi, je ne peux pas dire si c'est bon ou pas

linuxgnuru
la source