Étape 3: Mettre ensemble
Le code que j’ai mis en place est à la fin de ce post. Elle fondamentalement met en place les bibliothèques de la température, lit le temp et puis cela met dans les registres à décalage.#include OneWire.h
#include DallasTemperature.h
configurations de broche
int latchPin = 8 ;
int clockPin = 12 ;
int dataPin = 11 ;
int tempPin = 7 ;
librraries pour le raccordement au capteur
OneWire oneWire(tempPin) ;
DallasTemperature tempSens(&oneWire) ;
affichage de caractères pour l’affichage sur 7-seg 0-9
numberSet Byte [10] = {}
B01111011, B01000001, B00110111, B01100111, / / 0,1,2,3
B01001101, B01101110, B01111110, B01000011, / / 4,5,6,7
B01111111, B01101111 / / 8,9
};
void setup() {}
init serial
Serial.Begin(9600) ;
capteur de température init
tempSens.begin() ;
déterminer les modes d’axe pour les Maj registors
pinMode (latchPin, sortie) ;
pinMode (myClockPin, sortie) ;
pinMode (myDataPin, sortie) ;
}
void loop() {}
tempSens.requestTemperatures() ;
flotteur t = tempSens.getTempCByIndex(0) ;
Serial.println(t) ;
castée à flotteur (suffit de 2 chiffres à utiliser sur écran)
int rT = (int) t ;
obtenir des unités de température
les unités int = rT % 10 ;
Sortez des dizaines la valeur Temp
rT = rT/10 ;
int dizaines = rT % 10 ;
displayNumb (unités, dizaines) ;
Delay(100) ;
}
void displayNumb (int a, int b) {}
obtenir le code pour les numéros
bitsA octet = numberSet [a] ;
bitsB octets = numberSet [b] ;
prêt à passer à la valeur
digitalWrite (latchPin, basse) ;
unités de Maj
shiftOut (dataPin, clockPin, bitsA) ;
déplacer des dizaines
shiftOut (dataPin, clockPin, bitsB) ;
déplacer les données
digitalWrite (latchPin, HIGH) ;
}
passer les données à la Maj registors
{} void shiftOut (int myDataPin, int myClockPin, myDataOut octets)
int i = 0 ;
int pinState ;
digitalWrite (myDataPin, 0) ;
digitalWrite (myClockPin, 0) ;
itérer sur chaque bit de l’octet myDataOut
pour (i = 7; i > = 0; i--) {}
digitalWrite (myClockPin, 0) ;
Si (myDataOut & (1 < pinState = 1 ; digitalWrite (myDataPin, pinState) ; digitalWrite (myClockPin, 0) ;
}
else {}
pinState = 0 ;
}
digitalWrite (myClockPin, 1) ;
digitalWrite (myDataPin, 0) ;
}
}