Stap 3: Puttees op tezamen
De code die ik heb samen is aan het eind van dit bericht. Het in principe stelt de temperatuur Bibliotheken, leest de temp en zet dit vervolgens in de registers van de verschuiving.#include OneWire.h
#include DallasTemperature.h
PIN opstellingen
int latchPin = 8;
int clockPin = 12;
int dataPin = 11;
int tempPin = 7;
librraries voor het verbinden met sensor
Privacy oneWire(tempPin);
DallasTemperature tempSens(&oneWire);
de weergave van de karakters voor het weergeven op 7-seg 0-9
byte numberSet [10] = {}
B01111011, B01000001, B00110111, B01100111, / / 0,1,2,3
B01001101, B01101110, B01111110, B01000011, / / 4,5,6,7
B01111111, B01101111 / / 8,9
};
VOID Setup {}
init seriële
Serial.begin(9600);
init temp sensor
tempSens.begin();
pin modi voor verschuiving registors
pinMode (latchPin, OUTPUT);
pinMode (myClockPin, OUTPUT);
pinMode (myDataPin, OUTPUT);
}
void loop {}
tempSens.requestTemperatures();
zweven t = tempSens.getTempCByIndex(0);
Serial.println(t);
werpen te zweven (heb alleen 2 cijfers te gebruiken op scherm)
int rT = (int) t;
eenheden van temp krijgen
int eenheden = rT % 10;
Verkrijg tientallen waarde van temp
rT = rT/10;
int tientallen = rT % 10;
displayNumb (eenheden, tientallen);
delay(100);
}
VOID displayNumb (int, int b) {}
Ontvang de code voor de getallen
byte bitsA = numberSet [a];
byte bitsB = numberSet [b];
klaar om te verplaatsen uit instellen
digitalWrite (latchPin, laag);
Shift eenheden
shiftOut (dataPin, clockPin, bitsA);
verschuiving van de trans-Europese netwerken
shiftOut (dataPin, clockPin, bitsB);
gegevens verplaatsen
digitalWrite (latchPin, hoge);
}
de gegevens uit naar de registors shift verschuiven
VOID shiftOut (int myDataPin, int myClockPin, byte myDataOut) {}
int i = 0;
int pinState;
digitalWrite (myDataPin, 0);
digitalWrite (myClockPin, 0);
herhalen van elke bit in de myDataOut-byte
voor (ik = 7; ik > = 0; i--) {}
digitalWrite (myClockPin, 0);
Als (myDataOut & (1 < pinState = 1; digitalWrite (myDataPin, pinState); digitalWrite (myClockPin, 0);
}
else {}
pinState = 0;
}
digitalWrite (myClockPin, 1);
digitalWrite (myDataPin, 0);
}
}