Stap 9: Voorbeeld van de Code
Noteer
In mijn conversie van Celsius naar Fahrenheit ik heb toegevoegd en extra 4. Met andere woorden, om te converteren van C˚ naar F˚ u de C˚ vermenigvuldigen met 1.8, dan u toevoegen door 32.
/ * DIY Miniture Thermometer
Dit circuit is klein thermometer die op de achterkant van past een
9V batterij. Twee LED's van de flits uit de temperatuur. Bijvoorbeeld, als de
Temp is 75, de eerste led zal knipperen 7 keer, en de tweede LED zal
Flash 5 keer.
Het circuit:
* Vout van de sensor is aangesloten op de A3
-Ingang van de knop gaat op pin 4.
Noteer: dit is niet hetzelfde als fysieke pinnen.
Raadpleeg http://hlt.media.mit.edu/?p=1229 voor meer info.
gemaakt in 2013
door Daniel Nicholls
Bewerkt door te genieten van elektronica
Aanvullende opmerkingen:
De schaal van de conversie die u zien dat de Ctemp is ingesteld op is alleen voor de LM35 temperatuursensor.
Opzoeken van uw eigen temp sensor conversie schaal en mijn nummer veranderen aan wat uw nummer is.
Geniet van!
*/
int Ctemp; Temp in C˚
int digit10s; Temp 10s cijfer
int digit1s; Temp 1s cijfer
float temp; Temp in F˚
int tempPin = 3; Ruwe ingang de temp sensor
int LED10 = 1; LED knipperen de 10s cijfer
int LED1 = 0; LED knipperen de 1s cijfer
int knop = 4; Digitale ingang van de drukknop
int bDruk; Variabele die aanduidt de sate van de knop
int tijd = 250; Deze variabele "tijd" is de vertraging tussen de flitsen van de LED.
Dus als de LEDs flasing te traag of te snel zijn je kunt
hier passen en het zal veranderen de vertraging overal.
VOID Setup
{/ / U moet weten wat dit is: P
pinMode (LED10, uitvoer);
pinMode (LED1, uitvoer);
pinMode (button, INPUT);
pinMode (tempPin, INPUT);
}
void loop
{
Ctemp = analogRead(tempPin); Okaydokey we zijn "Ctemp" instelt op de waarneemt lezing tempPin. Vergeet niet wat tempPin is?
Ctemp = Ctemp * 0.48828125; Het omzetten van de analoge spanning van de temp sensor aan Celsius. Dit is alleen voor de LM35
Opmerking: Dit nummer kan worden een beetje voor de LM35. Het lijkt te werken OK wel.
Temp = (Ctemp * 9 / 5) + 36; Nu is dit voor het omzetten van de Celsius lezen (Ctemp) tot een temperatuur van Fahrenheit.
Wij zijn "temp" instelt op de nieuwe F˚ lezen.
bDruk = digitalRead(button); Het instellen van "bDruk" op een digitale lezing knop. Als u herinnert aan "button" is ingesteld op pin 4.
/ *** BEGIN VOOR PLAIN INGEWIKKELD! *** /
Als (bDruk == HIGH) / / de vuist als verklaring. Geen van de onderstaande code wordt uitgevoerd als niet aan deze voorwaarde is voldaan.
{
digit10s = int(temp / 10); zoeken de 10s cijfer van de temp. Als uw temp 26.89 was dan het 2.689 (delen door 10 wordt) en de toenmalige int() instructie cast deze naar een integer verwijderen alles na de decimaal dan waardoor je met digit10s = 2
digit1s = int (temp - (digit10s * 10)); zoeken de 1s cijfer. Wij gebruiken de 10sdigit van bovenaf en vermenigvuldig het met tien, geven 20 en dat aftrekken van onze temp (26.89) ons verlaten met 6,89, dan verdrijft dit naar een int te reduceren tot en met 6.
terwijl (digit10s! = 0) //do een while lus terwijl digit10s is niet gelijk aan 0
{
analogWrite (LED10, 75);
delay(time);
analogWrite (LED10, 0);
delay(time);
digit10s--; decrement digit10s door 1
} / / einde van de while verklaring
delay(1000);
terwijl (digit1s! = 0) //do een while lus terwijl digit1s is niet gelijk aan 0
{
analogWrite (LED1, 75);
delay(time);
analogWrite (LED1, 0);
delay(time);
digit1s--; decrement digit1s door 1
} / / einde van de while verklaring
} / / knop selectievakje
anders / / nu, herinnert u ons IF-statement? Het was het testen van de knop. Dus, als de insn't knop ingedrukt, uitschakelen alle de LEDs.
{
digitalWrite (LED10, laag);
digitalWrite (LED1, laag);
}
delay(10); het is om te stoppen met de code die al te vaak wordt uitgevoerd.
} / / void loop