Table des matières:
- Fournitures
- Étape 1: Étape 1: les schémas
- Étape 2: Étape 2: les calculs de code et de résistance
- Étape 3: Étape 3: Testons-le
Vidéo: Voltmètre Arduino (0-100V DC) - Version 2 (meilleur): 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Dans ce instructable, j'ai construit un voltmètre pour mesurer les hautes tensions DC (0-100v) avec une précision et une exactitude relatives à l'aide d'un Arduino Nano et d'un ADS 1115 ADC.
Il s'agit d'une deuxième version du voltmètre utilisé mon précédent instructable ici:
Les mesures de test que j'ai prises étaient précises, principalement à moins de 0,1 V de la tension réelle mesurée avec un voltmètre standard (j'ai utilisé un Astro AI DM6000AR).
C'est bien mieux et plus facile à mon avis que d'utiliser une référence de tension externe sur l'Arduino.
Fournitures
1 x Arduino Nano - Lien
1 x écran Oled (SSD 1306) - Lien
1 x ADS 1115 - ADC 16 bits - Lien
1 x 1/4W (je suggère cependant d'utiliser des résistances de 1W) Résistances 1% - 220k ohm - Lien
1 x 1/4W (je suggère cependant d'utiliser des résistances de 1W) Résistances 1% - 10k ohm - Lien
Planche à pain et fils - Lien
Astro AI DM6000AR - Lien
Banque d'alimentation USB - Lien
Piles 9V - Lien
CanadianWinters participe au programme d'associés d'Amazon Services LLC, un programme de publicité d'affiliation conçu pour permettre aux sites de gagner des frais en se connectant à Amazon.com et aux sites affiliés. En utilisant ces liens, en tant qu'associé Amazon, je gagne des achats éligibles, même si vous achetez autre chose, et cela ne vous coûtera rien.
Étape 1: Étape 1: les schémas
J'ai connecté toutes les pièces selon les schémas ci-dessus.
J'ai attaché la broche ADDR de l'ADC1115 à la terre. Cela définit l'adresse de l'ADC sur 0x48.
Étape 2: Étape 2: les calculs de code et de résistance
Comme dans l'instructable précédent, l'idée du circuit est que la tension continue à mesurer passe par une résistance de tension. La tension mise à l'échelle pénètre ensuite dans la broche analogique du convertisseur ADC pour être lue, puis transmise à l'Arduino via I2C, puis redimensionnée et affichée sur l'écran OLed.
Je n'ai pas utilisé de moyenne ni de lissage dans le code dans ce cas, car les lectures semblent assez exactes et précises. Pour réduire le bruit, vous voudrez peut-être ajouter un petit condensateur entre A0 (sur l'ADC) et la masse. Ce n'était pas nécessaire pour mon test cependant.
Une chose que j'ai remarquée, c'était un peu de bruit lorsqu'il n'y avait pas de batterie connectée (0 volt). J'ai utilisé le moniteur série de l'Arduino pour afficher la valeur ADC et la corriger/ajuster via le code.
Comme dans l'instructable précédent, j'ai fait une feuille de calcul qui automatise les calculs au cas où vous voudriez utiliser différentes valeurs de résistance dans le diviseur de tension: Lien vers Google Sheet
Voici le code que j'ai utilisé pour ce projet:
#comprendre
#include #include #include Adafruit_ADS1115 annonces (0x48); //Adresse du CAN U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0);// (rotation, [reset]) int calib = 7; // Valeur d'étalonnage de l'ADS1115 pour réduire l'erreur float voltage = 0; // utilisé pour stocker la valeur de tension float Radjust = 0.043421905; // Facteur diviseur de tension (R2 / R1+R2) float vbat = 0; //tension finale après calculs- tension de la batterie //variables pour rafraîchir l'écran sans utiliser de délai long non signé précédentMillis = 0; // stockera la dernière fois que l'écran a été rafraîchi // les constantes ne changeront pas: const long interval = 250; // intervalle d'actualisation de l'écran (millisecondes) void setup(void) { Serial.begin(9600); u8g2.begin(); ads.begin(); } boucle vide (void) { int16_t adc0; // 16 bits ADC lecture de l'entrée A0 adc0 = ads.readADC_SingleEnded(0); tension = ((adc0 + calib) * 0,1875)/1000; non signé long currentMillis = millis(); vbat = tension/Réglage; //Empêcher l'affichage d'une tension négative lorsque la batterie est déconnectée if (vbat = intervalle) { previousMillis = currentMillis; u8g2.clearBuffer(); // efface la mémoire interne // Affichage de la tension du pack - Polices sur cette page: https://github.com/olikraus/u8g2/wiki/fntlistall // u8g2.setFont(u8g2_font_fub20_tr); // Police 20px u8g2.setFont(u8g2_font_fub35_tr); // police 35px u8g2.setCursor (1, 42); u8g2.print(vbat, 2); u8g2.setFont(u8g2_font_8x13B_mr); // police 10 px u8g2.setCursor (1, 60); u8g2.print("Volts"); } u8g2.sendBuffer(); // transfert de la mémoire interne vers l'affichage delay(1); }
Étape 3: Étape 3: Testons-le
Pour tester ce voltmètre, j'ai utilisé des piles 10x 9v que j'ai achetées dans un magasin local. Cette fois, j'ai pu mesurer jusqu'à 97 volts ! Je prévois d'utiliser ce voltmètre pour mesurer la tension sur les batteries de mes vélos électriques (ils ont des tensions allant de 24-60v avec des 72v occasionnelles).
Une fois que l'électronique est emballée dans un circuit imprimé et une petite boîte, cela fera un compteur de batterie agréable et portable. Les graphiques et les polices de l'OLED peuvent être personnalisés pour répondre à vos besoins (par exemple, une police plus grande pour une lecture facile). Mon objectif était d'avoir une lecture de tension sur le compteur Oled/Arduino pas trop loin de mon multimètre numérique. Je visais +/-0, 3v max delta.
Comme vous pouvez le voir sur la vidéo au début de l'Instructable, j'ai pu archiver cela ! La plupart des lectures étaient parfaites!
J'espère que vous avez apprécié ce Instructable et laissez-moi savoir vos pensées !
Conseillé:
Voltmètre de précision d'affichage Waveshare E-ink (0-90v DC) avec Arduino Nano: 3 étapes
Voltmètre précis d'affichage Waveshare E-ink (0-90v DC) avec Arduino Nano: dans ce Instructable, j'utilise un écran Waveshare E-Paper de 2,9 '' avec un Arduino Nano, un diviseur de tension et un ADS1115 pour afficher des tensions précises jusqu'à 90 volts DC sur l'écran E-Paper. Cette instructable combine ces deux projets précédents : - Ardui
Voltmètre Arduino précis et précis (0-90V DC): 3 étapes
Voltmètre Arduino précis et précis (0-90V DC) : Dans cette instructable, j'ai construit un voltmètre pour mesurer les hautes tensions DC (0-90v) avec une précision et une précision relatives à l'aide d'un Arduino Nano. Les mesures de test que j'ai prises étaient suffisamment précises, principalement à moins de 0,3 V de la tension réelle mesurée avec un
Voltmètre CA utilisant Arduino : 3 étapes (avec photos)
Voltmètre CA utilisant Arduino : il s'agit d'un circuit simple pour déterminer la tension CA à l'aide de l'Arduino UNO sans aucun voltmètre CA !! PRENDRE PLAISIR
Bouclier pour Arduino à partir d'anciens tubes VFD russes : horloge, thermomètre, voltmètre : 21 étapes (avec photos)
Bouclier pour Arduino à partir d'anciens tubes VFD russes : horloge, thermomètre, voltmètre… : ce projet a duré près de six mois. Je ne peux pas décrire combien de travail a été consacré à ce projet. Faire ce projet seul me prendrait une éternité alors j'ai eu de l'aide de mes amis. Ici vous pouvez voir notre travail compilé dans une très longue instruction
Voltmètre numérique Arduino : 3 étapes
Voltmètre Arduino numérique : un voltmètre ou un voltmètre est un instrument de mesure utilisé pour mesurer la tension