Analog to digital converter arduino

Analog to digital converter arduino

Arduino pwm vers analogique

Cependant, nous devons garder à l’esprit que, bien que nous utilisions plusieurs valeurs décimales dans ces exemples, en réalité, la précision du système logiciel Arduino ne permet pas actuellement d’en utiliser plus de deux, donc à partir de ce point, nous arrondirons toujours les résultats à la deuxième décimale ; ainsi, par exemple, la valeur 0,004883 V deviendrait 4,88 mV, ou le calcul serait difficile à gérer.

De nombreux utilisateurs d’Arduino, lorsqu’ils doivent utiliser des signaux analogiques, surtout lorsque les amplitudes sont plus grandes ou de toute façon différentes de la tension standard de 5 V, sont confrontés à de sérieux problèmes d’interface. Plus d’un, inévitablement, endommagera le microcontrôleur ATmega328P car ils appliqueront aux broches des signaux de plus grande amplitude par rapport à la tension d’alimentation, qui est de 5 V.

Pour ces raisons, nous avons décidé d’approfondir le sujet, en améliorant l’explication opérationnelle de l’ADC et de l’ARef de l’Arduino en créant pratiquement un diviseur de tension résistif, fixe ou variable, en utilisant des formules simples mais précises ; nous mentionnerons également quelques capteurs analogiques, en illustrant une application typique.

Adc code arduino

Dans ce tutoriel, nous introduisons le concept d’ADC (Analog to Digital Conversion) dans ARDUINO UNO.  La carte Arduino possède six canaux ADC, comme le montre la figure ci-dessous. Parmi ceux-ci, un ou tous peuvent être utilisés comme entrées pour une tension analogique. L’ADC de l’Arduino Uno a une résolution de 10 bits (donc les valeurs entières de (0-(2^10) 1023)). Cela signifie qu’il va convertir les tensions d’entrée entre 0 et 5 volts en valeurs entières entre 0 et 1023. Donc pour chaque (5/1024= 4.9mV) par unité.

  Montage avec arduino nano

Dans tout cela, nous allons connecter un potentiomètre ou un pot au canal ‘A0’, et nous allons montrer le résultat de l’ADC sur un affichage simple. Les affichages simples sont les unités d’affichage 16×1 et 16×2. L’afficheur 16×1 comporte 16 caractères sur une ligne. Le 16×2 aura 32 caractères au total, 16 sur la première ligne et 16 autres sur la deuxième ligne. Il faut comprendre que dans chaque caractère, il y a 5×10=50 pixels, donc pour afficher un caractère, les 50 pixels doivent travailler ensemble, mais nous ne devons pas nous inquiéter de cela car il y a un autre contrôleur (HD44780) dans l’unité d’affichage qui fait le travail de contrôle des pixels (vous pouvez le voir dans l’unité LCD, c’est l’œil noir à l’arrière).

Arduino digital pin analog read

Toutes les données présentées dans le monde réel sont classées comme analogiques. Les données analogiques telles que la parole humaine, la température, l’humidité et la lumière varient de temps en temps. Afin d’obtenir les données analogiques qui nous entourent, vous avez besoin d’un appareil de mesure. Cependant, la plupart de ces appareils fonctionnent en numérique et ne comprennent que la logique numérique (0 et 1). Par conséquent, la technique ADC est utilisée pour convertir la valeur analogique environnante en une forme numérique qui peut être comprise par les dispositifs numériques. La base de l’ADC commence avec le théorème d’échantillonnage de Nyquist. Si vous voulez en savoir plus sur les CAN, vous pouvez visiter le wiki.

Le schéma ci-dessus montre le processus de base de la conversion de données analogiques du monde réel en données numériques à l’aide de l’ADC. L’Arduino UNO (Atmega328) est intégré avec un ADC 10-bits. Qu’est-ce qu’un ADC 10-bits ? Pour votre information, 10-bits équivalent à 2^10 ou 1024. Ce nombre ‘1024’ représente la taille du pas de l’ADC. D’autre part, l’Arduino UNO peut mesurer jusqu’à 5 VDC sur sa broche d’entrée analogique (A0 à A5). La tension par pas de l’Arduino UNO peut être calculée comme suit : 5/1024 = 0,0048828 V/pas. Par exemple, si l’Arduino mesure une taille de pas de 465, cela signifie que la tension d’entrée est d’environ 465*0,0048828 = 2,271 VDC. Cependant, fournir une tension de plus de 5 VDC à l’Arduino UNO pourrait endommager la carte. Veuillez prendre cette précaution.

  Arduino rf 433 sniffer

Broche analogique et numérique de l’Arduino

Ce convertisseur analogique-numérique (ou en abrégé ADC) n’a pas qu’une seule adresse I2C. C’est un ADC qui peut avoir 4 adresses I2C différentes. Celles-ci peuvent être choisies librement mais dans la suite du cours, l’adresse standard 0x48 est utilisée.

Les cartes Arduino ont déjà un ADC 10 bits intégré avec 6 canaux. Si plus de canaux, ou une plus grande précision, sont nécessaires, l’Arduino peut être étendu par 4 canaux ADC avec une précision de 12 bits en utilisant le module KY-053 Analog Digital Converter.

L’exemple ci-dessous utilise cette bibliothèque – nous vous recommandons de la télécharger sur Github, de la décompresser et de la placer dans le dossier de la bibliothèque Arduino, qui se trouve par défaut sous (C : \ Users \ [nom d’utilisateur] \ Documents \ Arduino \ libraries), afin qu’elle soit disponible pour cet exemple de code et les projets suivants. Alternativement, il est également inclus dans le paquet de téléchargement ci-dessous.

Contrairement à l’Arduino, le Raspberry Pi ne possède ni entrées analogiques ni convertisseur analogique-numérique intégré. Cela limite l’utilisation de capteurs analogiques par le Raspberry Pi. Pour continuer à utiliser des capteurs analogiques sur le Raspberry Pi, le Raspberry Pi peut être étendu de 4 canaux ADC avec une précision de 12 bits avec notre module convertisseur analogique numérique KY-053.