DIY miniatyr termometer (9 / 11 steg)
Steg 9: Förhandsgranska kod
Anteckna
I min konvertering från Celsius till Fahrenheit jag lagt och extra 4. Med andra ord, för att konvertera från C˚ till F˚ du multiplicera C˚ med 1,8, då du lägger av 32.
/ * DIY Miniture termometer
Denna krets är liten termometer som passar på baksidan av en
9V batteri. Två lysdioder blinkar ut temperaturen. Till exempel, om den
temp är 75, som första led ska flash 7 gånger, och den andra LED kommer att
Flash 5 gånger.
Krets:
* Vout från sensorn är ansluten till A3
-Ingång från knappen går på pinne 4.
Notera: detta är inte detsamma som fysisk stift.
Se http://hlt.media.mit.edu/?p=1229 för mer info.
skapats i 2013
av Daniel Nicholls
Redigerad av njuter av elektronik
Tilläggsupplysningar noter:
Den omräkningstabell som du ser att Ctemp är inställd är bara för LM35 temperaturgivare.
Leta upp din egen tempsensor omräkningstabell och ändra mitt nummer till vad ditt nummer är.
Njut!
*/
int Ctemp; Temp i C˚
int digit10s; Temp 10s siffra
int digit1s; Temp 1s siffra
float härda; Temp i F˚
int tempPin = 3; RAW input från temp-sensor
int LED10 = 1; LED blixt 10s siffra
int LED1 = 0; LED blixt 1s siffra
int knappen = 4; Digital ingång från tryckknappen
int bPress; Variabel vars namn satt knappen
int tid = 250; Denna variabel "tid" är fördröjningen mellan blinkar LED.
så om lysdioderna är flasing för långsamt eller för fort kan du
justera det här och det kommer att ändra fördröjningen överallt.
void setup()
{/ / Du bör veta vad allt detta är: P
pinMode (LED10, OUTPUT);
pinMode (LED1, OUTPUT);
pinMode (knapp, indata);
pinMode (tempPin, ingång);
}
void loop()
{
CTemp = analogRead(tempPin); Okaydokey vi ställer "Ctemp" till anlog behandlingen vid tempPin. Kom ihåg vad tempPin är?
CTemp = Ctemp * 0.48828125; Konvertera analog spänning från temp sensorn till celcius. Detta är endast för den LM35
Obs: Detta nummer kan vara lite för LM35. Det verkar fungera OK ändå.
Temp = (Ctemp * 9 / 5) + 36; Nu är det här för konvertering Celsius läsning (Ctemp) till farenheit temperatur.
Vi ställer "temp" till den nya F˚ läsning.
bPress = digitalRead(button); Inställning "bPress" till en digital läsning på knappen. Om ni minns "knappen" är inställd på pinne 4.
/ *** BÖRJAN AV SLÄTTEN KOMPLICERAT! *** /
om (bPress == hög) / / näven om uttalande. Ingen av koden nedan kommer att köras om inte detta villkor uppfylls.
{
digit10s = int(temp / 10); hitta 10s siffran i temp. Om din temp var 26.89 så kommer det att bli 2.689 (division med 10) och sedan int() anvisningen kastar det till ett heltal att ta bort allt efter decimalen sedan lämnar du med digit10s = 2
digit1s = int (temp - (digit10s * 10)); hitta 1s siffra. Vi använder 10sdigit från ovan och multiplicera det med tio, vilket ger 20 och subtrahera det från våra temp (26.89) lämnar oss med 6,89, sedan kastade detta till en int att reducera den till 6.
medan (digit10s! = 0) //do ett tag loop medan digit10s inte är lika med 0
{
analogWrite (LED10, 75);
Delay(Time);
analogWrite (LED10, 0);
Delay(Time);
digit10s--; minska digit10s med 1
} / / end av while uttalande
Delay(1000);
medan (digit1s! = 0) //do ett tag loop medan digit1s inte är lika med 0
{
analogWrite (LED1, 75);
Delay(Time);
analogWrite (LED1, 0);
Delay(Time);
digit1s--; minska digit1s med 1
} / / end av while uttalande
} / / knappen check
annat / / nu, minns du vår om-uttryck? Det var testa knappen. Så, om du trycker på knappen insn't, inaktivera alla lampor.
{
digitalWrite (LED10, låg);
digitalWrite (LED1, låg);
}
Delay(10); Det är för att stoppa den kod som körs för ofta.
} / / Annullera loop