Étape 8: Programme Arduino
Connectez votre ordinateur à l’Arduino avec votre connexion FTDI et télécharger le programme de la thermistance (programme source inclus ici composée de pièces tirées des échantillons en ligne)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
int Ai5 = A5 ;
int valeur5 ;
booléenne hb = élevé ;
int hbCNT = 0 ;
digit1 int = 10 ; 11 ; Goupille PWM affichage 1
int digit2 = 11 ; 10 ; Goupille PWM affichage 2
segD int = 12 ; A1 ; // 5; Broche 3 d’affichage
pas utilisé 13 ; broche 4
segE int = A0 ; A0 ; Broche d’affichage 5
int digit3 = A1 ; 12 ; // 9; Goupille PWM affichage 6
dp3 int = A2 ; // 9; 12 ;
Étape 11-7 segment bas
Confirmer que les broches sur l’afficheur 7 segments rentrent dans les trous sur le fond avant de l’Arduino.
int digit4 = A3 ; 13 ; // 6; Goupille PWM affichage 8
segB int = 9 ; // 3; Pivot d’affichage 16
segG int = 8 ; Axe de l’écran 15
segA int = 7 ; 5 ; A1 ; Broche d’affichage 14
segC int = 6 ; // 4; Goupille de l’affichage 13
pas utilisé 5 ; axe de 12
segF int = 4 ; // 7; // 7; Broche d’affichage 11
int dphb = 3 ; A3 ; broche 10
GND / / pin 9
void setup() {}
pinMode (segA, sortie) ;
pinMode (segB, sortie) ;
pinMode (segC, sortie) ;
pinMode (segD, sortie) ;
pinMode (segE, sortie) ;
pinMode (segF, sortie) ;
pinMode (segG, sortie) ;
pinMode (digit1, sortie) ;
pinMode (digit2, sortie) ;
pinMode (digit3, sortie) ;
pinMode (digit4, sortie) ;
pinMode (dp3, sortie) ;
pinMode(Ai5,INPUT) ;
Serial.Begin(9600) ;
Serial.println() ;
}
void loop()
{
Voir l’établissement temp
displayNumber(Value5) ;
Voir la pulsation
Si (! () hb hbCNT % 100)) =! hb ;
temp de requête
Si (hbCNT ++ > 300)
{
hbCNT = 1 ;
stocker la valeur de résistance de thermistance
Valeur5 = analogRead(Ai5) ; Lire la valeur de AI1 (pin2) et l’écrire dans valeur1
Serial.Print(Value5) ;
Serial.Print ("[]") ;
Serial.Print (1000 / (float (1023/float(Value5)) -1)) ;
flotteur steinhart, moyen ;
moyenne = 1023 / float(Value5) - 1 ;
moyenne = 10000 / moyenne ;
Steinhart = moyenne / 1000 ; (R/Ro)
Steinhart = log(steinhart) ; ln(R/RO)
Steinhart / = 3636 ; 1/B * ln(R/Ro)
Steinhart += 1.0 / (25 + 273,15) ; + (1/to)
Steinhart = 1,0 / steinhart ; Inverti
Serial.Print ("[]") ;
Serial.Print(Average) ;
Serial.Print ("[k]") ;
Serial.Print (steinhart); //kelvin
Serial.Print ("[c]"); //celcius
Steinhart-= 273.15 ;
Serial.Print(Steinhart) ;
Serial.Print (« [f]"); //fahrn
Steinhart = steinhart * 9 / 5 + 32 ;
Serial.Print(Steinhart) ;
Serial.Print("|||") ;
Valeur5 = steinhart * 10 ;
Serial.println(Value5) ;
}
}
void displayNumber (int afficher) {}
#define DISPLAY_BRIGHTNESS 500
#define DIGIT_ON haute
#define DIGIT_OFF faible
beginTime long = millis() ;
pour (int digit = 4; chiffres > 0; chiffres--) {}
digitalWrite (dp3, HIGH) ;
Tourner sur un chiffre pour un court laps de temps
{Switch(digit)}
cas 1 :
digitalWrite (digit1, DIGIT_ON) ;
rupture ;
cas 2 :
digitalWrite (digit2, DIGIT_ON) ;
rupture ;
cas 3 :
digitalWrite (digit3, DIGIT_ON) ;
digitalWrite (dp3,! hb) ;
rupture ;
cas 4 :
digitalWrite (digit4, DIGIT_ON) ;
rupture ;
}
digitalWrite (dphb,! hb) ;
Allumez les segments de droite pour obtenir ce chiffre
lightNumber (afficher %10) ;
Afficher / = 10 ;
delayMicroseconds(DISPLAY_BRIGHTNESS) ; Afficher ce chiffre pour une fraction de seconde (entre 1 et 5000us, 500 est jolie
bon)
Désactiver tous les segments
lightNumber(10) ;
Désactiver tous les chiffres
digitalWrite (digit1, DIGIT_OFF) ;
digitalWrite (digit2, DIGIT_OFF) ;
digitalWrite (digit3, DIGIT_OFF) ;
digitalWrite (digit4, DIGIT_OFF) ;
}
tandis que ((millis() - beginTime) < 10) ; Attendez de 20ms à s’écouler avant que nous peignons l’affichage à nouveau
}
Compte tenu d’un certain nombre, se met en marche ces segments
Si le nombre == 10, puis éteignez le nombre
void lightNumber (int numberToDisplay) {}
#define SEGMENT_ON faible
#define SEGMENT_OFF haute
Switch (numberToDisplay) {}
case 0 :
digitalWrite (segA, SEGMENT_ON) ;
digitalWrite (segB, SEGMENT_ON) ;
digitalWrite (segC, SEGMENT_ON) ;
digitalWrite (segD, SEGMENT_ON) ;
digitalWrite (segE, SEGMENT_ON) ;
digitalWrite (segF, SEGMENT_ON) ;
digitalWrite (segG, SEGMENT_OFF) ;
rupture ;
cas 1 :
digitalWrite (segA, SEGMENT_OFF) ;
digitalWrite (segB, SEGMENT_ON) ;
digitalWrite (segC, SEGMENT_ON) ;
digitalWrite (segD, SEGMENT_OFF) ;
digitalWrite (segE, SEGMENT_OFF) ;
digitalWrite (segF, SEGMENT_OFF) ;
digitalWrite (segG, SEGMENT_OFF) ;
rupture ;
cas 2 :
digitalWrite (segA, SEGMENT_ON) ;
digitalWrite (segB, SEGMENT_ON) ;
digitalWrite (segC, SEGMENT_OFF) ;
digitalWrite (segD, SEGMENT_ON) ;
digitalWrite (segE, SEGMENT_ON) ;
digitalWrite (segF, SEGMENT_OFF) ;
digitalWrite (segG, SEGMENT_ON) ;
rupture ;
cas 3 :
digitalWrite (segA, SEGMENT_ON) ;
digitalWrite (segB, SEGMENT_ON) ;
digitalWrite (segC, SEGMENT_ON) ;
digitalWrite (segD, SEGMENT_ON) ;
digitalWrite (segE, SEGMENT_OFF) ;
digitalWrite (segF, SEGMENT_OFF) ;
digitalWrite (segG, SEGMENT_ON) ;
rupture ;
cas 4 :
digitalWrite (segA, SEGMENT_OFF) ;
digitalWrite (segB, SEGMENT_ON) ;
digitalWrite (segC, SEGMENT_ON) ;
digitalWrite (segD, SEGMENT_OFF) ;
digitalWrite (segE, SEGMENT_OFF) ;
digitalWrite (segF, SEGMENT_ON) ;
digitalWrite (segG, SEGMENT_ON) ;
rupture ;
cas no 5 :
digitalWrite (segA, SEGMENT_ON) ;
digitalWrite (segB, SEGMENT_OFF) ;
digitalWrite (segC, SEGMENT_ON) ;
digitalWrite (segD, SEGMENT_ON) ;
digitalWrite (segE, SEGMENT_OFF) ;
digitalWrite (segF, SEGMENT_ON) ;
digitalWrite (segG, SEGMENT_ON) ;
rupture ;
cas 6 :
digitalWrite (segA, SEGMENT_ON) ;
digitalWrite (segB, SEGMENT_OFF) ;
digitalWrite (segC, SEGMENT_ON) ;
digitalWrite (segD, SEGMENT_ON) ;
digitalWrite (segE, SEGMENT_ON) ;
digitalWrite (segF, SEGMENT_ON) ;
digitalWrite (segG, SEGMENT_ON) ;
rupture ;
cas 7 :
digitalWrite (segA, SEGMENT_ON) ;
digitalWrite (segB, SEGMENT_ON) ;
digitalWrite (segC, SEGMENT_ON) ;
digitalWrite (segD, SEGMENT_OFF) ;
digitalWrite (segE, SEGMENT_OFF) ;
digitalWrite (segF, SEGMENT_OFF) ;
digitalWrite (segG, SEGMENT_OFF) ;
rupture ;
cas 8 :
digitalWrite (segA, SEGMENT_ON) ;
digitalWrite (segB, SEGMENT_ON) ;
digitalWrite (segC, SEGMENT_ON) ;
digitalWrite (segD, SEGMENT_ON) ;
digitalWrite (segE, SEGMENT_ON) ;
digitalWrite (segF, SEGMENT_ON) ;
digitalWrite (segG, SEGMENT_ON) ;
rupture ;
cas 9 :
digitalWrite (segA, SEGMENT_ON) ;
digitalWrite (segB, SEGMENT_ON) ;
digitalWrite (segC, SEGMENT_ON) ;
digitalWrite (segD, SEGMENT_ON) ;
digitalWrite (segE, SEGMENT_OFF) ;
digitalWrite (segF, SEGMENT_ON) ;
digitalWrite (segG, SEGMENT_ON) ;
rupture ;
cas no 10 :
digitalWrite (segA, SEGMENT_OFF) ;
digitalWrite (segB, SEGMENT_OFF) ;
digitalWrite (segC, SEGMENT_OFF) ;
digitalWrite (segD, SEGMENT_OFF) ;
digitalWrite (segE, SEGMENT_OFF) ;
digitalWrite (segF, SEGMENT_OFF) ;
digitalWrite (segG, SEGMENT_OFF) ;
rupture ;
}
}