Étape 8: Le Code de l’Arduino
/ * Capteur avec Mini Pro à la sortie du réservoir du carburant filtré analogique à 2 h
D3-sortie à filtre passe-bas
D5-1Mohm res à D6
D6 - Centre de PAC capteur
D7-1Mohm res à D8
D8-à positif de condensateur de référence
GND
Potentiomètres de réglage vers le centre
Commencez par vider le réservoir
Il y a un certain nombre d’étapes dans la mise en place
1. lecture de la valeur brute du « carburant » pour vérifier le condensateur de référence à l’étape 1
2. définition de « carburant » pour un réservoir vide
3. définition de « carburant » pour un réservoir plein
Écrit les valeurs pour Analogwrite vont de 0 = ensemble de 0 Volt à 255 = 5volts,
alors que nous visons une valeur de vider le réservoir de « carburant » de zéro avec aucune LED allumée et
une valeur de réservoir plein de « carburant » de 255, ainsi nous obtenons 5 volts et tous les 10 LED allumés
Comme je l’ai dit dans la section de la sonde, la sonde est bien atténuée contre ballottement, mais vous pouvez toujours ajouter un peu de scode relipidant
Une autre chose, que vous pourriez essayer est d’avoir une certaine attention saisissant effet quand le carburant est très faible, vous pouvez utiliser votre imagination mais un simple clignotement toutes les sous et hors tension pourrait être inclus, ainsi
Si carburant > 27
{analogWrite(3,fuel)
}
d’autre
{analogWrite (3 255) ;
retard de 250 ;
analogWrite (3,0)
retard de 250 ;
}
*/
#include < CapacitiveSensor.h >
CapacitiveSensor cs_5_6 = CapacitiveSensor(5,6); / / condensateur variable composé de deux tubes concentriques en aluminium. Centre relié à D6 avec 1Mohm connecté entre 5 et 6, extérieure à la terre.
CapacitiveSensor cs_7_8 = CapacitiveSensor(7,8); / / condensateur égale à cap variable à vide de référence. Connecté à D8 avec 1Mohm connecté entre 5 et 6, l’autre au sol.
int val = 0 ;
var int = 0 ;
trim1 int = 0; //trim valeurs vont de 0-1023 du full off (0v) à complètement illuminé (5v), garniture de valeur sera 512 pour la position médiane (2, 5V)
trim2 int = 0; //trim valeurs vont de 0-1023 du full off (0v) à complètement illuminé (5v), garniture de valeur sera 512 pour la position médiane (2, 5V)
int analogPin = 3 ; la broche de sortie de tension à l’affichage par l’intermédiaire de filtre passe-bas
Cette disposition du code n’a pas été testée
La section suivante en commentaire jusqu'à ce que la normale mis en place le congé est complet
Si vous avez un réservoir non symétrique, où la profondeur n’est pas proportionnelle au volume, réglé en ce qui concerne le réservoir symétrique,
se connecter à Serial monitor et carburant record pour chaque 1/10 de remplissage de la citerne
Insérer ceux comme valeurs pour Q1-9 et décommentez la section suivante
/*
int Q1 =?? ; valeur de carburant pour 1/10 capacité, remplir le réservoir avec du carburant de 1/10 de carburant et lire val sur serial monitor
int Q2 =?? ; valeur de carburant pour 2/10 capacité, remplir le réservoir avec du carburant de 2/10 de carburant et lire val sur serial monitor
int Q3 =?? ; valeur de carburant pour 3/10 capacité, remplir le réservoir de carburant de 3/10 de carburant et lire val sur serial monitor
int Q4 =?? ; valeur du carburant pour les 4/10 capacité, remplir le réservoir de carburant de 4/10 de carburant et lire val sur serial monitor
int Q5 =?? ; valeur du carburant pendant 5/10 capacité, remplir le réservoir de carburant de 5/10 de carburant et lire val sur serial monitor
int Q6 =?? ; valeur de carburant pour 6/10 capacité, remplir le réservoir avec du carburant de 6/10 de carburant et lire val sur serial monitor
int Q7 =?? ; valeur du carburant pour les 7/10 capacité, remplir le réservoir carburant 7/10 de carburant et lire val sur serial monitor
int Q8 =?? ; valeur de carburant pour 8/10 capacité, remplir le réservoir avec du carburant de 8/10 de carburant et lire val sur serial monitor
int Q9 =?? ; valeur du carburant pour les 9/10 capacité, remplir le réservoir de carburant de 9/10 de carburant et lire val sur serial monitor
*/
void setup()
{
pinMode (analogPin, entrée) ;
Serial.Begin(9600) ;
}
void loop()
{trim1 = analogRead (0); / / lit la tension hors le potentiomètre 1 comme une valeur 0-1023, 0v à 5 v
Trim2 = analogRead (3) ;
carburant longue ;
long Ref ;
carburant = cs_5_6. capacitiveSensorRaw (200); valeur de //Raw de carburant
Ref = cs_7_8. capacitiveSensorRaw (200) ;
Pour l’étape 1 déterminer la taille du condensateur référence.
Commencez par lire le carburant sur le serial monitor pour aucun liquide sur la sonde et d’expérimenter avec différents condensateurs Ref à l’avenant, plus tard quand les //you sont tous assemblés et vous atteignez étape 6, décommentez la ligne suivante
carburant = fuel-Ref+920-(512+trim1) ;
Ajuster les 920 en ligne ci-dessus jusqu'à ce que carburant indique zéro dans la série monitor pour cuve à vide,
puis remplissez le réservoir et décommenter la ligne ci-dessous
carburant = fuel/(10+(trim2/30)); //start avec cette ligne en commentaire, jusqu'à ce que vous avez réglé la zéro lecture de remplissage
Régler 10 en ligne ci-dessus pour donner de carburant = 255 (ou autre ajusté la valeur, voir ci-dessous) avec réservoir plein
en raison de la tolérance des résistances, qu'il est possible que le LM3914 ne peut pas être allant exactement à 5volts, alors vous pourriez expérimenter
et déterminer quelle valeur environ 255 donne juste tous les 10 LED allumés
Il peut être plus facile d’abord de vous dispenser de (10+(trim2/30) et expérience juste pour obtenir le chiffre qui vous donne le carburant = 255 (5v)
Puis ajuster l’équation de diviseur entier (10+(trim2/30) pour vous donner ce chiffre
se souvenant que trim2 variera en valeur comprise entre 0-1023, mais sera 512 si vous avez défini le pot vers le centre.
CODE ADDITIONNEL DE RÉSERVOIR IRRÉGULIÈRE
Si vous utilisez le code-citerne irrégulière décommenter cette prochaine section, mais vous aurez besoin commenter les suivant ligne analogWrite(3,fuel) ;
/*
{
Val = carburant ;
si val < Q1
var = 0 ;
sinon si val var = 27 ;
sinon si val var = 60 ;
sinon si val var = 80 ;
sinon si val var = 105 ;
sinon si val var = 130 ;
sinon si val var = 160 ;
sinon si val var = 185 ;
sinon si val var = 210 ;
d’autre
var = 255 ;
}
analogWrite (3, var);// si vous êtes utilisant l’esquisse de réservoir irrégulière puis commentez la ligne suivante
*/
analogWrite(3,fuel) ; écrire la valeur résultante de carburant à la broche numérique 3.
Cette sortie réalisés au travers d’un faible passage filtre RC, à l’aide de 5 et 10uF.
{
Serial.Print(Fuel) ;
Serial.println ("carburant"); //debug carburant
Serial.Print(Ref) ;
Serial.println ("Ref"); //debug Ref
Serial.Print(var) ;
Serial.println ("Var"); Var //debug
Serial.Print(Trim1) ;
Serial.println("T1") ;
Serial.Print(Trim2) ;
Serial.println("T2") ;
}
retard (100) ;
}