Dans ce tutoriel, nous présentons le concept de l'ADC (conversion analogique-numérique) dans ARDUINO UNO. La carte Arduino dispose de six canaux ADC, comme le montre la figure ci-dessous. Parmi ceux-ci, l'un quelconque ou tous peuvent être utilisés comme entrées pour la tension analogique. L' ADC Arduino Uno a une résolution de 10 bits (donc les valeurs entières de (0- (2 ^ 10) 1023)). Cela signifie qu'il mappera les tensions d'entrée entre 0 et 5 volts en valeurs entières entre 0 et 1023. Donc, pour chaque (5/1024 = 4,9 mV) par unité.
Dans tout cela, nous allons connecter un potentiomètre ou un potentiomètre au canal 'A0', et nous allons afficher le résultat de l'ADC sur un simple écran. Les affichages simples sont des unités d'affichage 16x1 et 16x2. L'unité d'affichage 16x1 aura 16 caractères et sont sur une seule ligne. Le 16x2 aura 32 caractères au total 16 en 1 ère ligne et 16 autres en 2 ème ligne. Ici, il faut comprendre que dans chaque caractère, il y a 5x10 = 50 pixels, donc pour afficher un caractère, tous les 50 pixels doivent fonctionner ensemble, mais nous n'avons pas à nous en soucier car il y a un autre contrôleur (HD44780) dans l'unité d'affichage qui fait le travail de contrôler les pixels (vous pouvez le voir dans l'unité LCD, c'est l'oeil noir à l'arrière).
Composants requis
Matériel: ARDUINO UNO, alimentation (5v), JHD_162ALCD (16x2LCD), condensateur 100uF, pot ou potentiomètre 100KΩ, condensateur 100nF.
Logiciel: arduino IDE (Arduino nightly)
Schéma de circuit et explication
Dans l'écran LCD 16x2, il y a 16 broches sur tout s'il y a un rétro-éclairage, s'il n'y a pas de rétro-éclairage, il y aura 14 broches. On peut alimenter ou laisser les broches du rétroéclairage. Or, dans les 14 broches, il y a 8 broches de données (7-14 ou D0-D7), 2 broches d'alimentation en énergie (1 et 2 ou VSS et VDD ou GND et + 5v), 3 ème broches de la commande de contraste (VEE-contrôle l'épaisseur des caractères doivent être illustré) et 3 broches de commande (RS & RW & E).
Dans le circuit, vous pouvez observer que je n'ai pris que deux broches de contrôle, le bit de contraste et READ / WRITE ne sont pas souvent utilisés afin qu'ils puissent être court-circuités à la masse. Cela met l'écran LCD en mode de contraste et de lecture le plus élevé. Nous avons juste besoin de contrôler les broches ENABLE et RS pour envoyer des caractères et des données en conséquence.
Les connexions effectuées pour l'écran LCD sont indiquées ci-dessous:
PIN1 ou VSS à la terre
Alimentation PIN2 ou VDD ou VCC à + 5v
PIN3 ou VEE à la masse (donne le meilleur contraste pour un débutant)
PIN4 ou RS (sélection de registre) à PIN8 d'ARDUINO UNO
PIN5 ou RW (lecture / écriture) à la terre (met l'écran LCD en mode lecture facilite la communication pour l'utilisateur)
PIN6 ou E (Activer) à PIN9 d'ARDUINO UNO
PIN11 ou D4 à PIN10 d'ARDUINO UNO
PIN12 ou D5 à PIN11 d'ARDUINO UNO
PIN13 ou D6 à PIN12 d'ARDUINO UNO
PIN14 ou D7 à PIN13 d'ARDUINO UNO
L'IDE ARDUINO permet à l'utilisateur d'utiliser l' écran LCD en mode 4 bits. Ce type de communication permet à l'utilisateur de réduire l'utilisation des broches sur ARDUINO, contrairement aux autres, l'ARDUINO n'a pas besoin d'être programmé séparément pour l'utiliser en mode 4 it car par défaut l'ARDUINO est configuré pour communiquer en mode 4 bits. Dans le circuit, vous pouvez voir que nous avons utilisé une communication 4 bits (D4-D7).
Donc, à partir de la simple observation du tableau ci-dessus, nous connectons 6 broches de l'écran LCD au contrôleur dans lequel 4 broches sont des broches de données et 2 broches pour le contrôle.
La figure ci-dessus montre le schéma de circuit de l'ADC de l'ARDUINO UNO.
Travail
Pour interfacer un écran LCD avec l'ARDUINO UNO, nous avons besoin de quelques informations.
|
Tout d'abord, les canaux UNO ADC ont une valeur de référence par défaut de 5V. Cela signifie que nous pouvons donner une tension d'entrée maximale de 5 V pour la conversion ADC sur n'importe quel canal d'entrée. Étant donné que certains capteurs fournissent des tensions de 0 à 2,5 V, avec une référence de 5 V, nous obtenons une précision moindre, nous avons donc une instruction qui nous permet de modifier cette valeur de référence. Donc, pour changer la valeur de référence, nous avons ("analogReference ();")
Par défaut, nous obtenons la résolution ADC maximale de la carte qui est de 10 bits, cette résolution peut être modifiée en utilisant l'instruction («analogReadResolution (bits);»). Ce changement de résolution peut être utile dans certains cas.
Maintenant, si les conditions ci-dessus sont définies par défaut, nous pouvons lire la valeur du CAN du canal '0' en appelant directement la fonction "analogRead (pin);", ici "pin" représente la broche où nous avons connecté le signal analogique, dans ce cas, il serait être «A0». La valeur de ADC peut être prise dans un entier comme «int ADCVALUE = analogRead (A0); ”, Par cette instruction, la valeur après ADC est stockée dans l'entier“ ADCVALUE ”.
MAINTENANT parlons un peu de l'écran LCD 16x2. Nous devons d'abord activer le fichier d'en-tête ('#include
Deuxièmement, nous devons indiquer à la carte le type d'écran LCD que nous utilisons ici. Depuis que nous avons tellement de types différents de LCD (comme 20x4, 16x2, 16x1 etc.). Ici, nous allons interfacer un écran LCD 16x2 avec l'UNO afin d'obtenir 'lcd.begin (16, 2);'. Pour 16x1, nous obtenons 'lcd.begin (16, 1);'.
Dans cette instruction, nous allons indiquer à la carte où nous avons connecté les broches. Les broches connectées doivent être représentées dans l'ordre «RS, En, D4, D5, D6, D7». Ces broches doivent être correctement représentées. Puisque nous avons connecté RS à PIN0 et ainsi de suite comme indiqué dans le schéma de circuit, nous représentons le numéro de broche à embarquer comme «LiquidCrystal lcd (0, 1, 8, 9, 10, 11);».
Après, il ne reste plus qu'à envoyer des données, les données qui doivent être affichées sur l'écran LCD doivent être écrites sous la forme «cd.print (" hello, world! ");». Avec cette commande, l'écran LCD affiche «bonjour, monde!».
Comme vous pouvez le voir, nous n'avons pas à nous soucier de tout cela, nous devons simplement initialiser et l'UNO sera prêt à afficher les données. Nous n'avons pas besoin d'écrire une boucle de programme pour envoyer ici les données BYTE par BYTE.
L'utilisation de l'ADC d'Arduino Uno est expliquée étape par étape dans le programme C ci-dessous.