Ampli DIY / Volt wattheuremètre - Arduino (6 / 9 étapes)

Étape 6: Source Code

Tous les code, schémas et photos ainsi que de la discussion est disponible à http://tech.groups.yahoo.com/group/arduinohome/files/volt%20amp%20watt%20hour%20meter/ et http://forum.pololu.com/viewtopic.php?f=3&t=5415

#include

/ * Cette esquisse explique comment connecter un porteur de sens actuel de ACS715
(http://www.pololu.com/catalog/product/1186) à l’Arduino,
et lire le courant qui circule dans le capteur.

*/

Innovente lcd (7, 8, 9, 10, 11, 12) ;

/*

Vcc sur carrier board pour Arduino + 5v
GND sur carrier board pour Arduino GND
Sur Conseil du transporteur pour Arduino A0

Monter dans le circuit de câble positif charges, alimentation
flèche sur points Conseil transporteur de charger, autre cosse se connecte à
alimentation d’énergie positive

Diviseur de tension

9 k ohms de + pour A4
3 k ohms de A4 à Gnd

*/

int NIV = 20 ;

int Vout = 5 ;

rapport / int = Vin / Vout ; Calculée à partir de Vin / Vout

int batMonPin = A4 ; broche d’entrée pour le diviseur de tension
int ADCVal = 0 ; variable de la valeur A/D
float pinVoltage = 0 ; variable destinée à contenir la tension calculée
float batteryVoltage = 0 ;

int analogInPin = A0 ; Broche d’entrée analogique connecté à la carte porteuse
int sensorValue = 0 ; valeur lue de la carrier board
int outputValue = 0 ; sortie en milliampères
unsigned long msec = 0 ;
flotteur de temps = 0.0 ;
échantillon d’int = 0 ;
float totalCharge = 0.0 ;
float averageAmps = 0.0 ;
float ampSeconds = 0.0 ;
flotteur Ah = 0.0 ;
flotteur wattheures = 0.0 ;
flotteur ampères = 0.0 ;

int R1 = 9000 ; Résistance de R1 en ohms
int R2 = 3000 ; Résistance de R2 en ohms

rapport / int = 0 ; Calculée à partir de Vin / Vout

void setup() {}
initialiser une communication série à 9600 bits/s :
Serial.Begin(9600) ;
LCD.Begin (20, 4) ;
}

void loop() {}

int sampleADCVal = 0 ;
int avgADCVal = 0 ;
int sampleAmpVal = 0 ;
int avgSAV = 0 ;

pour (int x = 0; x < 10; x ++) {/ / run dans la boucle x 10

lire l’analogue en valeur :
sensorValue = analogRead(analogInPin) ;
sampleAmpVal = sampleAmpVal + sensorValue ; additionner les échantillons

ADCVal = analogRead(batMonPin) ; Lisez la tension sur le diviseur
sampleADCVal = sampleADCVal + ADCVal ; additionner les échantillons

retard (10) ; Laissez les ADC à régler avant l’échantillon suivant

}

avgSAV = sampleAmpVal / 10 ;

convertir en milli ampères
outputValue = ((avgSAV (long) * 5000 / 1024) - 500) * 1000 / 133 ;

/ * capteur sorties environ 100 au repos.
Analog lire produit une valeur de 0-1023, équivalant à 0v à 5v.
« ((long) sensorValue * 5000 / 1024) "est sortie de la tension sur le capteur en millivolts.
Il y a un décalage de 500mv à soustraire.
L’unité produit 133mv par ampère de courant, ce
diviser par 0,133 convertir mv à ma

*/

avgADCVal = sampleADCVal / 10 ; diviser par 10 (nombre d’échantillons) pour obtenir une lecture stable

pinVoltage = avgBVal *. 00488 ; Calculer la tension sur la broche A/D
/ * Une lecture de 1 pour le A/D = 0.0048mV
Si nous multiplions la lecture A/D par 0.00488 puis
nous obtenons la tension sur la broche.

En outre, selon le câblage et
où tension est lu, moins
charges lourdes tension affichée peut être
Eh bien sous tension au tableau de distribution. moniteur
à charger ou à fournir et à décider.
*/

batteryVoltage = pinVoltage * ratio ; Utiliser le ratio calculé pour le diviseur de tension
pour calculer la tension de la batterie

ampères = (float) outputValue / 1000 ;
flotteur watts = ampères * batteryVoltage ;

Serial.Print (« Volts = ") ;
Serial.Print(batteryVoltage) ;
Serial.Print ("\t courant (ampères) =") ;
Serial.Print(AMPS) ;
Serial.Print ("\t puissance (Watts) =") ;
Serial.Print(watts) ;

échantillon = échantillon + 1 ;

MS = millis() ;

temps = (float) ms / 1000.0 ;

totalCharge = totalCharge + ampères ;

averageAmps = totalCharge / échantillon ;

ampSeconds = averageAmps * temps ;

Ah = ampSeconds/3600 ;

Wattheures = batteryVoltage * Ah ;

Serial.Print ("\t temps (heures) =") ;
Serial.Print(Time/3600) ;

Serial.Print ("\t ampères-heures (ah) =") ;
Serial.Print(ampHours) ;
Serial.Print ("\t wattheures (wh) =") ;
Serial.println(wattHours) ;

lcd.setCursor(0,0) ;
LCD.Print(batteryVoltage) ;
LCD.Print (« V ») ;
LCD.Print(AMPS) ;
LCD.Print ("A") ;

lcd.setCursor(0,1) ;
LCD.Print(watts) ;
LCD.Print ("W") ;
LCD.Print(Time/3600) ;
LCD.Print ("H") ;

lcd.setCursor(0,2) ;
LCD.Print(ampHours) ;
LCD.Print ("Ah") ;
LCD.Print(wattHours) ;
LCD.Print ("Wh") ;

lcd.setCursor(0,3) ;
LCD.Print (rapport, 5) ;
LCD.Print("") ;
LCD.Print(avgBVal) ;

attendre 10 millisecondes avant la prochaine boucle
pour le convertisseur analogique-numérique à régler
après la dernière lecture :
Delay(10) ;
}

Articles Liés

Le mexicain... Watt?? Calculer les Watts sur les moteurs avec ampli et Volt lectures.

Le mexicain... Watt?? Calculer les Watts sur les moteurs avec ampli et Volt lectures.

Aujourd'hui, il est facile de mesurer les watts pour appareils ménagers avec les compteurs Kill-A-Watt. Cependant, vivant au Mexique, ordonnant un au-delà de la frontière serait inabordable, comme les frais de transport serait plus élevé que le coût
Faire un voltmètre Arduino

Faire un voltmètre Arduino

Il s'agit d'un projet très simple pour les débutants de microcontrôleur.J'utilise dans ce tutoriel est Arduino Uno (R3), mais vous pouvez utiliser n'importe quelle plaque avec de légères modifications dans le code (ou aucun changement du tout!).Bonne
Podomètre Arduino

Podomètre Arduino

problème : donc mon nutritionniste (tout le monde n'est un nutritionniste) suggéré je dois augmenter mon exercice qui est principalement constitué de promener mon chien. Elle m'a même donné un tableau des activités et des calories brûlées. Voici un e
Digispark DIY : Le plus petit Arduino USB

Digispark DIY : Le plus petit Arduino USB

Digispark est un microcontrôleur ATtiny85 basé Conseil développement viennent avec interface USB. Codage est similaire à l'Arduino, et utiliser l'IDE Arduino familier pour le développement.Digispark est protégé par Copyright par Digistump LLC (digist
Un altimètre Arduino compact, pour les avions RC

Un altimètre Arduino compact, pour les avions RC

Merci de voter pour ce Instructable si vous pensez qu'il le mérite ! Merci !L' Altimètre ultime est un altimètre Arduino contrôlée super compact, capable de mesurer l'altitude avec une précision de 0,3 mètres et enregistrer les valeurs maximale et mi
DIY : Un 5 Minutes voltmètre Arduino avec un écran OLED

DIY : Un 5 Minutes voltmètre Arduino avec un écran OLED

Bonjour !Je vais vous montrer comment faire un voltmètre * avec Arduino UNO, un écran OLED, 2 résistances et 9 cavaliers pour moins de 5 minutes. Avec elle, vous serez capable de mesurer la tension de 0 à 30V (si vous la dépassez vous risquez d'endom
Ohmmètre Arduino avec écran LCD

Ohmmètre Arduino avec écran LCD

Cette Instructable va vous montrer comment faire un ohmmètre numérique à l'aide de Arduino.This ohmmètre est très précis... et totalement DIY.Étape 1: Rassembler tout le matériel.1) Arduino UNO (ou n'importe quel autre Arduino)2) maquette3) 16 x 2 éc
Un thermomètre Arduino avec affichage numérique

Un thermomètre Arduino avec affichage numérique

il s'agit d'un projet pour Arduino faire un thermomètre à affichage Digital, destiné aux débutants.Arduino mesure la tension sur un capteur de température TMP36, convertit la tension en degrés Celcius et affiche la valeur sur un écran de blindage LOL
Comment utiliser le potentiomètre - Arduino Tutorial

Comment utiliser le potentiomètre - Arduino Tutorial

Pour ceux qui commencent à apprendre sur la robotique, notamment dans le domaine de la construction de circuits, vous pouvez avoir rencontré la question de savoir comment modifier la luminosité d'une LED, sans avoir à garder de commutation pièces. To
Comment changer le taux de clignotement de LED avec potentiomètre à arduino uno.

Comment changer le taux de clignotement de LED avec potentiomètre à arduino uno.

Cette vidéo contient des ensembles de commandes et codes d'écriture qui permettent un potentiomètre modifier la vitesse de clignotement des LED arduino uno Board à l'aide de « circuits 123d » en ligne plate-forme pour la fabrication du circuit ouvert
DIY aveugles Smart collent Arduino à l’aide de

DIY aveugles Smart collent Arduino à l’aide de

Salut, amis.Comment vas-tu?J'espère que vous êtes bien !Aujourd'hui dans ce instructable nous allons faire un bâton d'aveugle intelligent pour les personnes ayant une déficience visuelle.Avez-vous remarqué les personnes aveugles ?Leur vie est pleine
Luxmètre Arduino mini

Luxmètre Arduino mini

J'avais besoin d'un luxmètre pour tester les lampes de poche. Il y a quelques bonne lux mètres disponibles dans la gamme de $15-25, mais toujours d'expédition prend beaucoup de temps et j'en avais besoin maintenant. C'est quand j'ai réalisé que j'ava
VUMÈTRE ARDUINO

VUMÈTRE ARDUINO

Hé personne lisant ceci.la semaine dernière un de mes amis qui n'est pas si familier avec arduino et l'électronique nécessaire un vu-mètre pour son projet d'école. Il m'a fourni avec un arduino et un écran lcd. le reste était à moi. J'ai cherché auto
Simple chronomètre Arduino

Simple chronomètre Arduino

Salut. Je vais vous expliquer comment j'ai fait ce chronomètre simple.Étape 1: connexionsSeule la connexion est entre arduino et écran LCD 16 x 2.Même que Arduino.cc tutoriels« LCD RS broche à broche numérique 12Enable LCD broche à broche numérique 1