Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Voltmètre DIY avec Arduino et un écran Nokia 5110

Composants et fournitures

Arduino UNO
× 1
Capteur de tension (générique)
× 1
Écran LCD Nokia 5110
× 1
Planche à pain (générique)
× 1
Câbles de raccordement (générique)
× 1

Applications et services en ligne

Arduino IDE

À propos de ce projet

Dans ce tutoriel je vais vous montrer comment construire un Voltmètre avec un grand écran LCD Nokia 5110 utilisant Arduino.

Construire un voltmètre est une excellente expérience d'apprentissage. Lorsque vous aurez fini de construire ce projet, vous comprendrez mieux le fonctionnement des voltmètres, vous actualiserez vos connaissances sur la loi d'Ohm et vous verrez en action à quel point la plate-forme Arduino peut être puissante. Avec ce projet comme base et l'expérience acquise, vous pourrez facilement construire des projets plus complexes à l'avenir.

Vous pouvez utiliser ce projet pour mesurer la tension continue de divers circuits électroniques ou surveiller facilement l'état de la batterie de vos projets Arduino. De plus, avec les connaissances acquises, vous pouvez facilement créer votre propre capteur de tension pour créer un voltmètre personnalisé qui correspond à vos besoins.

Sans plus tarder, commençons !

Étape 1 :Obtenez toutes les pièces

Les pièces nécessaires pour construire ce projet sont les suivantes :

  • Un Arduino Uno
  • Un capteur de tension
  • Un écran LCD Nokia 5110
  • Une petite planche à pain
  • Quelques fils

Le coût du projet est très faible. C'est environ 10$.

Étape 2 : le module de capteur de tension

Voyons comment fonctionne ce module de capteur. Ce capteur de tension est très simple et il peut mesurer la tension continue de 0-25V. Il se compose de seulement deux résistances ! Vous pouvez construire le vôtre facilement si vous le souhaitez, ou vous pouvez acheter ce module de capteur avec moins d'un dollar si vous voulez quelque chose de déjà construit. Voilà comment cela fonctionne. Ce capteur est en fait un diviseur de tension. Un circuit diviseur de tension est un circuit très courant qui prend une tension plus élevée et la convertit en une tension plus basse en utilisant une paire de résistances. La formule de calcul de la tension de sortie est basée sur la loi d'Ohm. Veuillez vérifier l'image ci-jointe.

Dans ce module, le R1 est à 30.000 Ohms, le R2 est à 7500 Ohms. Si on met 25V en entrée et si on fait les calculs, on obtient 5V en sortie ! Et c'est la tension maximale qu'une broche analogique d'Arduino peut gérer. Donc, si nous dépassons 25V à l'entrée, nous brûlerons la broche Analogique d'Arduino. Si nous mettons 0 volt à l'entrée, nous obtenons 0 V à la sortie. Donc, si nous mettons une tension de 0-25V à l'entrée, nous obtiendrons une tension de 0-5V à la sortie.

L'Arduino Uno a un ADC 10 bits, donc la résolution que nous pouvons atteindre en utilisant ce capteur est de 25 mV. Si nous utilisons un Arduino Due, nous pouvons obtenir une résolution encore meilleure car il possède des CAN 12 bits. Mais, bien sûr, nous devons construire notre propre capteur de tension, car la carte Arduino Due utilise des niveaux logiques de 3,3 V, et toute tension au-delà détruira sa broche analogique.

Étape 3 :Nokia 5110 LCD

Le Nokia 5110 est mon écran préféré pour mes projets Arduino.

Le Nokia 5110 est un écran LCD graphique de base qui était à l'origine destiné à un écran de téléphone portable. Il utilise le contrôleur PCD8544 qui est un contrôleur/pilote LCD CMOS à faible consommation. Pour cette raison, cet écran a une consommation d'énergie impressionnante. Il n'utilise que 0,4 mA lorsqu'il est allumé mais le rétroéclairage est désactivé. Il utilise moins de 0,06 mA en mode veille ! C'est l'une des raisons pour lesquelles cet affichage est mon préféré.

Le PCD8544 s'interface aux microcontrôleurs via une interface de bus série. Cela rend l'écran très facile à utiliser avec Arduino. Il vous suffit de connecter 8 fils et d'utiliser la bibliothèque suivante :http://www.rinkydinkelectronics.com/library.php?id=47

Cette bibliothèque impressionnante est développée par Henning Karlsen, qui a déployé d'énormes efforts pour aider la communauté Arduino à aller de l'avant avec ses bibliothèques.

J'ai préparé un didacticiel détaillé sur l'utilisation de l'écran LCD Nokia 5110 avec Arduino. J'ai joint cette vidéo dans ce didacticiel, elle fournira des informations utiles sur l'affichage, je vous encourage donc à la regarder attentivement.

Maintenant, passons à autre chose !

Étape 4 : Construire le voltmètre

Connectons maintenant toutes les pièces ensemble.

Dans un premier temps, nous connectons le capteur de tension. Il n'a que 3 broches. Parmi ceux-ci, nous n'avons qu'à en connecter 2.

Connexion du capteur de tension

  • - L'épingle va au GND d'Arduino
  • + L'épingle reste déconnectée
  • La broche S va à la broche analogique 0

L'étape suivante consiste à connecter l'écran LCD Nokia 5110.

Connexion de l'écran LCD Nokia 5110

  • RST va à la broche numérique 12 de l'Arduino
  • CE va à la broche numérique 11 de l'Arduino
  • DC va à la broche numérique 10 de l'Arduino
  • DIN va à la broche numérique 9 de l'Arduino
  • CLK va à la broche numérique 8 de l'Arduino
  • VCC passe à Arduino 3.3V
  • LIGHT va à Arduino GND (rétroéclairage activé)
  • GND passe à Arduino GND

Maintenant que nous avons connecté toutes les pièces entre elles, il ne nous reste plus qu'à charger le code. Un écran de démarrage s'affiche pendant quelques secondes, puis nous pouvons commencer à mesurer la tension.

Étape 5 :Le code du projet

Le code du projet se compose de 2 fichiers.

  • ui.c
  • VoltMeter.ino

Code ui.c - Graphichs pour notre projet

Dans le premier fichier ui.c, il y a les valeurs binaires de 2 icônes qui s'affichent sur l'écran LCD du Nokia 5110. Il y a l'icône de démarrage et l'interface utilisateur pour le voltmètre qui apparaît ensuite. Veuillez regarder la vidéo ci-jointe que j'ai préparée afin de voir comment charger vos graphiques personnalisés dans votre projet Arduino.

Code VoltMeter.ino - Programme principal

Le code principal du projet est très simple. Nous devons inclure la bibliothèque Nokia 5110. Ensuite, nous déclarons quelques variables. On initialise l'affichage et on affiche l'écran de démarrage pendant 3 secondes. Après cela, nous imprimons une fois l'icône de l'interface utilisateur et nous lisons la valeur analogique du capteur toutes les secondes.

Toute la magie se produit dans la fonction suivante :

float readVoltage(){ sensorValue =analogRead(sensorPin); vout =(sensorValue * 5,0) / 1024,0 ; vin =vout / (R2/(R1+R2)); retour vin;} 

Cette méthode ci-dessus lit la valeur du capteur et la convertit en une tension de 0 à 25V. Si vous utilisez votre capteur de tension sur mesure, vous devez modifier les variables R1 et R2 afin de refléter les valeurs de résistance de votre capteur.

Après avoir lu la valeur du capteur, le code convertit la valeur en chaîne et l'affiche à l'écran.

J'ai joint le code à ce tutoriel. Afin de télécharger la dernière version du code, vous pouvez visiter la page Web du projet :educ8s.tv/arduino-voltmeter-project/

F4FWJORIRXTXQG8.c FY005LHIRXTXQG9.ino

Étape 6 :Tester le projet

Maintenant que le code est chargé, nous pouvons tester le voltmètre avec quelques batteries. Je le teste avec une pile AA rechargeable, un accu 18650 et une grosse pile d'alarme 12V.

Comme vous pouvez le voir sur les photos ci-jointes, le voltmètre fonctionne très bien. A titre de comparaison, j'ai également utilisé mon multimètre. La lecture de notre voltmètre "fait main" est très proche de celle du multimètre professionnel. Super n'est-ce pas ?

Comme vous pouvez le voir, ce projet est une excellente démonstration de ce dont le matériel et les logiciels open source sont capables. En quelques minutes, on peut construire un projet aussi impressionnant ! Ce projet est idéal pour les débutants et comme je l'ai dit au début, ce projet est une excellente expérience d'apprentissage.

J'aimerais avoir votre avis sur ce projet. Le trouvez-vous utile ? Y a-t-il des améliorations à apporter à ce projet ? Veuillez publier vos commentaires ou idées dans la section commentaires ci-dessous !

Code

  • Voltmeter.ino
  • ui.c
Voltmeter.inoC/C++
/////////////////////////////////////////////////////////// / Projet de voltmètre Arduino // // avec NOKIA 5110 LCD //// http://www.educ8s.tv //////////////////////// /////////////////////#include // LA BIBLIOTHÈQUE QUE J'UTILISE EST LA suivante :http://www.rinkydinkelectronics.com/library .php?id=47LCD5110 lcd(8,9,10,12,11);extern unsigned char BigNumbers[];extern uint8_t ui[];extern uint8_t startScreen[];float voltage =0.0;int sensorPin =A0; float sensorValue =0.0f; String voltageString ="0.0";int stringLength =0;float vout =0.0;float vin =0.0;float R1 =30000.0; flottant R2 =7500,0 ; void setup() { Serial.begin(9600); lcd.InitLCD(); lcd.drawBitmap (0, 0, startScreen, 84, 48); lcd.update(); retard (3000); lcd.setFont(BigNumbers); delay(1000);}boucle vide() { lcd.clrScr(); lcd.drawBitmap (0, 0, ui, 84, 48); tension =readVoltage(); Serial.println(tension); voltageString =String(tension,1) ; stringLength =voltageString.length(); displayVoltage(stringLength); lcd.update(); delay(1000);}float readVoltage(){ sensorValue =analogRead(sensorPin); vout =(sensorValue * 5,0) / 1024,0 ; vin =vout / (R2/(R1+R2)); return vin;}void displayVoltage(int length){ switch(length) { case 3:lcd.print(voltageString,14,19); Pause; cas 4:lcd.print(voltageString,2,19); Pause; par défaut :lcd.print(voltageString,2,19); Pause; }}
ui.cC/C++
Données de l'interface utilisateur
#include const unsigned char ui []PROGMEM ={0xFF, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x11, 0x31, 0xF1, 0xD1, 0x01, 0x01,0x81, 0xF1, 0x11, 0x11, 0xC1, 0xE1, 0x11, 0x11, 0x11, 0x31, 0xE1, 0xC1, 0x01, 0x01, 0x11, 0xF1,0xF1, 0x11, 0x01, 0x011, 0x01, 0x11, 0x11, 0xF1, 0xF1, 0x11, 0x11, 0x31, 0x01, 0x01, 0x01,0x01, 0x81, 0x61, 0x31, 0xF1, 0xC1, 0x01, 0x01, 0x01, 0xC1, 0xE1, 0x21, 0x11, 0x11, 0x31,0x31, 0x01, 0x11, 0xF1, 0xF1, 0x91, 0x91, 0x91, 0x31, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,0x01, 0x01, 0x01, 0xFF, 0xFF, 0xC0, 0xC0, 0xC0, 0xC 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0,0xC0, 0xC3, 0xCF, 0xCC, 0xC3, 0xC0, 0xC0, 0xC0, 0xC3, 0xC7, 0xCC, 0xC8, 0x7,C0, 0xC8, 0xC0, 0xC0, 0xC0, 0xC0, 0xC8, 0xCF, 0xCF, 0xC8, 0xC8, 0xC8, 0xCC, 0xC0, 0xC0, 0xC8, 0xCF, 0xCF, 0xC8, 0xC0,0xC0, 0xC0, 0xC0, 0xC8, 0xCC, 0xCF, C1, 0xCC, 0xCB, C0 0xCE, 0xC8, 0xC0, 0xC3, 0xC7, 0xCC,0xC8, 0xC8, 0xC9, 0xCF, 0xC7, 0xC1, 0xC8, 0xCF, 0xCF, 0xC8, 0xC8, 0xC8, 0xCC, 0xC0, 0xC0, 0xC0,0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 00,0x00, 0x0x 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x20, 0x00, 0xE 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x20, 0x60, 0xE0, 0xE0, 0xE0, 0x60, 0x20, 0x00, 0x00, 0x00, 0x, 0xFF 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1F, 0x7F, 0xFF, 0xFF, 0xF8, 0xE0,0x00, 0x00, 0x0 0, 0x00, 0xC0, 0xF0, 0xFE, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0,x00, 0x00 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0 0x00, 0x00, 0x00,0x01, 0x0F, 0x3F, 0xFF, 0xFF, 0xFC, 0xF0, 0xFE, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0xFF, 0x, 0x 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0 0x80,0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x83, 0x83, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80,0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xFF, };const unsigned char startScreen []PROGMEM ={0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0 , 0x00, 0x00, 0x00, 0x80, 0xF0, 0xFC, 0xFC, 0xFC, 0xFC,0xFC, 0x7C, 0x1C, 0x04, 0x00, 0x20, 0xE0, 0xE0, 0x20, 0x00, 0x00, 0x20, 0xE0,80 ,0x60, 0x20, 0x20, 0x20, 0x60, 0xC0, 0x80, 0x20, 0xE0, 0xE0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,0xE0, 0x60, 0x20, 0xE0, 0xE0, 0x20, 0x , 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0x00, 0x00,0x00, 0x80, 0xC0, 0x60, 0x20, 0x20, 0x20, 0x60, 0xE0, 0x00, 0x20, 0xE0, 0xE0, 0x20, 00,0x20, , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xFE, 0xFF, 0xFF,0xFF, 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, , 0x07, 0x3F, 0x38, 0x38, 0x07,0x00, 0x00, 0x0F, 0x1F, 0x30, 0x20, 0x20, 0x20, 0x30, 0x1F, 0x0F, 0x20, 0x3F, 0x3F, 0x20, 0x20,0x30,00, , 0x00, 0x00, 0x20, 0x3F, 0x3F, 0x20, 0x00, 0x00, 0x20, 0x38, 0x27, 0x04,0x04, 0x27, 0x3F, 0x 3C, 0x20, 0x0F, 0x1F, 0x30, 0x20, 0x20, 0x24, 0x3C, 0x3C, 0x04, 0x20, 0x3F,0x3F, 0x22, 0x22, 0x22, 0x20, 0x38, 0x00, 0x00, 0x00, 0x00 0xE0, 0xF8, 0xFE, 0xFF,0xFF, 0x3F, 0x0F, 0x83, 0x80, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0x30,00,0x00,x 0x08, 0xF8, 0x18, 0xF8, 0xE0, 0x00, 0xE0, 0x18, 0xF8, 0xF8, 0x08,0x08, 0xF8, 0xF8, 0x88, 0x88, 0x88, 0x18, 0x00, 0x00, 0x38, 0x18, F8 0x08, 0x18,0x38, 0x08, 0xF8, 0xF8, 0x88, 0x88, 0x88, 0x18, 0x00, 0x00, 0x08, 0xF8, 0xF8, 0x88, 0x88, 0x88,0xF8, 0x70, 0x00, 0x00,00, 0x00x 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7C, 0x3F,0x3F, 0x3F, 0x1F, 0x1F, 0x1E, 0x0F, 0x0F, 0x0F, 0x07, 0x07, 0x07, 0FF, 0xC3, 0x 0x1F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x08, 0x00, 0x07, 0x07, 0x00,0x08, 0x0F, 0x0F, 0x08, 0x08, 0x0F, 008, 0x0F 0x08, 0x08, 0x0E, 0x00, 0x00, 0x00, 0x08,0x0F, 0x0F, 0x08, 0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x08, 0x08, 0x08 , 0x0E, 0x00, 0x08, 0x0F,0x0F, 0x08, 0x01, 0x03, 0x06, 0x0C, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, , 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x80, 0xE0, 0xFE, 0x7F,0x9F, 0x87, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 00, 0 , 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7F,0x7F, 0x3F, 0x1F, 0x0F, 0x03, 0x01, 0 , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x000,0x00, , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0 x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, } ;

Processus de fabrication

  1. Moniteur DIY Environnement et Qualité de l'Air
  2. Jeu Arduino Pong - Écran OLED
  3. Oscilloscope Arduino 20 kHz simple bricolage sur écran LCD Nokia 5110
  4. Voltmètre DIY utilisant Arduino et Smartphone
  5. Arduino Temp. Moniteur et horloge en temps réel avec affichage 3.2
  6. Jouer avec Nextion Display
  7. Voltmètre DIY avec Arduino et un écran Nokia 5110
  8. Créer l'application Fridgeye avec un écran Nextion
  9. Comment faire de la musique avec un Arduino