Étape 3: Construction du Circuit
Dès que nous aurons les entrées travaillant, nous installerons l’écran TFT LCD couleur 1,8" et écrire un sketch pour afficher la mesure d’entrée à ce sujet.
Nous étudierons ensuite plusieurs options logicielles et matérielles pour améliorer ou personnaliser le voltmètre numérique.
Permet donc commencer par construire le diviseur de tension sur la maquette et sa connexion à broches A0 de l’Arduino.
Regardez le schéma électrique et les autres photos pour vous guider dans les étapes.
Une fois que le circuit est mis en place, brancher l’Arduino au port USB sur votre PC et télécharger le croquis de test suivante qui affiche la tension connectée à la jambe de résistance 1 gratuitement via le moniteur de la série.
Il suffit de copier et coller le croquis suivant à l’IDE Arduino.
// -----------------Sketch Start-----------------------------
/* -----------------------------------------------------------
Programme : Série DVM
Description : Voltmètre CC avec la tension affichée sur le moniteur de la série
Aucune couleur TFT LCD encore !
Matériel : Arduino NANO ou Uno avec diviseur de tension sur A0.
Logiciel : Écrit et développé à l’aide du logiciel Arduino 1.0.3
Date de :
Auteur :
--------------------------------------------------------------*/
valeurs d’étalonnage de diviseur de tension
#define Dv1 11
Tension de référence ADC / valeur d’étalonnage
#define VREF 5
flotteur V1 = {0,00} ;
void setup()
{
Serial.Begin(9600) ;
}
void loop()
{
V1 = analogRead(0) ;
Serial.Print ("tension @ broches A0") ;
Serial.println(((v1*Vref) / 1023)) * Dv1, 2) ;
}
// -----------------Sketch End-----------------------------
Passons en revue ce qui se passe ;
Le contrôleur de Atmega utilisé pour l’Arduino contient un convertisseur d’analogique-numérique (A/D) intégrée 6 canaux. Le convertisseur a résolution de 10 bits, qui retourne un entier de 0 à 1023 (210= 1024, 0 points, n’est 1023 pas) pour la valeur de 0 à 5 volts.
Nous voulons transformer le A/D retourné la valeur de la tension réelle que nous mesurons.
Il faut multiplier le résultat par 5 et diviser par 1023 pour ajuster la valeur retournée par la 10 bit convertisseur a/n.
Nous divisent aussi la tension de 11 avec le diviseur de tension, donc la tension que nous mesurons (et nous voulons voir sur l’écran), doit être multipliée par 11 pour compenser la division.
Que faisons-nous avec la formule de followimg :
Vout=((vin*(5/1023))*11).
le code c’est :
Serial.println(((v1*Vref) / 1023)) * Dv1, 2) ;
Nous multiplier par 5 (VREF) et diviser par 1023 pour convertir la sortie d’A/D une échelle entre O et 5, puis on multiplie par 11(Dv1) pour compenser le diviseur de tension. La raison pour laquelle nous utilisons les variables pour les valeurs de la tension et le diviseur est que ces valeurs changeront lorsque nous calibrons le voltmètre numérique. Le « 2 » à la fin de la formule définit combien de chiffres à afficher après la virgule.
Si tu as le programme pour charger correctement, ouvrez le moniteur série en cliquant sur l’icône Loupe dans le coin supérieur droit de l’arduino IDE, vous devriez voir données coulant. À l’aide d’un fil de liaison, essayez de connecter la jambe libre de la résistance de 1 à la broche GND premier et puis pour le 5V broches. Vous devriez voir la lecture passer de 0 à 5v.
Maintenant nous devons juste répéter ce que nous avons fait pour la première chaîne de trois fois plus d’avoir un 4 canal DVM, mais avant que nous le faisons, nous allons connecter notre écran de LCD TFT couleur à l’Arduino. Vous aurez besoin de 7 fils de raccordement pour ce faire :
Connectez ce qui suit avec les cavaliers
TFT LCD. Arduino
VCC 5V
GND Gnd
SCL 13
SDA 11
CS 10
RS/DC 9
RES 8
Remarque :
Contrairement à mes autres instructables, nous allons utiliser le SPI Interface à grande vitesse pour conduire l’écran donc le cavalier de câblage est différent. Encore une fois, Découvrez les photos pour vous guider si vos ne savez pas comment au fil d’elle.
Vous aurez besoin d’installer les deux bibliothèques pour utiliser l’affichage :
Bibliothèque graphique de Adafruit_GFX.h The Core
Bibliothèque de Adafruit_ST7735.h le spécifiques au matériel
Télécharger les bibliothèques et les copier dans le dossier de bibliothèque Arduino.
Copiez et collez le croquis ci-dessous à l’IDE Arduino. L’esquisse code DVM est le même, mais avec l’ajout de code pour afficher la tension sur A0 sur l’écran LCD.
Compiler et télécharger le croquis à l’Arduino.
// -----------------Sketch Start-----------------------------
/*-----------------------------------------------------------
Programme : TFTLCDDVM
Description : Voltmètre CC avec la tension affichée
sur couleur TFT LCD à 2 décimales
Matériel : Arduino NANO avec diviseur de tension sur A0.
TFT LCD connecté
Logiciel : Développé à l’aide du logiciel Arduino 1.0.3
Date : 10 mars 2014
Auteur : johnag
--------------------------------------------------------------*/
#define sclk 13
#define mosi 11
#define cs 10
#define dc 9
#define rst 8 / / reset
#include < Adafruit_GFX.h > / / bibliothèque graphique de base
#include < Adafruit_ST7735.h > / / spécifiques au matériel bibliothèque
#include < SPI.h >
Tft Adafruit_ST7735 = Adafruit_ST7735 (cs, dc, rst) ;
valeur de calibrage de diviseur de tension
#define Dv1 11
Tension de référence ADC
#define VREF 5
flotteur V1 = {0,00} ;
void setup()
{
Serial.Begin(9600) ;
tft.initR(INITR_BLACKTAB) ; initialiser un onglet de puce, noire ST7735S
tft.fillScreen(ST7735_BLACK) ; effacer l’écran
tft.setTextColor(ST7735_WHITE) ;
tft.setTextSize(1) ;
tft.setCursor(10,0) ;
TFT.println ("voltmètre CC DVM") ;
tft.setTextColor(ST7735_RED) ;
tft.setCursor(0,140) ;
TFT.println ("attention tension max 55vdc") ;
}
void loop()
{
V1 = analogRead(0) ;
tft.drawLine (0, 20, tft.width ()-1, 20, ST7735_WHITE) ;
tft.drawLine (0, 130, tft.width ()-1, 130, ST7735_WHITE) ;
tft.setTextColor(ST7735_YELLOW,ST7735_BLACK) ;
tft.setTextSize(2) ;
tension 1 (axe A0)
tension est multipliée par le réseau de résistance
facteur de division pour calculer la tension réelle
tft.setCursor (45, 40) ;
TFT.println ("V1") ;
tft.setTextSize(1) ;
TFT.println ("tension @ broches A0") ;
tft.setCursor (20, 80) ;
tft.setTextSize(2) ;
Serial.Print ("tension @ broches A0") ;
Serial.println(((v1*Vref) / 1023)) * Dv1, 2) ;
TFT.Print(((v1*Vref) / 1023)) * Dv1, 2) ;
TFT.Print ("Vdc") ;
}
//---------------Sketch End----------------------------------------