Komma igång med en temperaturgivare (6 / 7 steg)
Steg 6: Programkod & förklaring
Att förklara global variabel < br > int R_LED = 8; tilldela den röda LED av RGB vara ansluten på pin 8
int B_LED = 7; / / tilldela
int Buz = 5;
CONST int temp = 0; tilldela den temperatur sensor pin anslutningen
void setup()
{
Serial.BEGIN (9600); / / öppna följetong comminication mellan dator- och Arduino
pinMode (R_LED, OUTPUT); att förklara LED som en utgång
pinMode (B_LED, OUTPUT);
pinMode (Buz, OUTPUT);
pinMode (temp, mata); } void loop()
{
flyta Real_Voltage = analogRead(temp) * 0.004882814; läsning av värdet för sensor och konvertera det till spänning
flyta Temp_C = Real_Voltage * 100,0; / / ändra spänningen i Celsius
flyta Temp_F = Temp_C * (9,0/5.0) + 32,0;
skriva ut värdet av seriell övervaka
Serial.println(analogRead(temp));
Serial.Print ("spänning:");
Serial.println(Real_Voltage);
Serial.Print ("Deg C:");
Serial.println(Temp_C);
Serial.Print ("Deg F:");
Serial.println(Temp_F);
Kontrollera om sensorn är den maximala gränsen
om (Temp_C > = 26,0)
{
Serial.println ("Varning: systemet är varmt");
digitalWrite (R_LED, hög); Röda lysdioden på
analogWrite(Buz,20);
Delay(2000); / / vänta en SEK
digitalWrite (R_LED, låg); / / röd LED
analogWrite(Buz,0);
Delay(2000); vänta en sekund
}
Kontrollera om sensorn är den mimimum gränsen
annars om (Temp_C < = 25,0)
{
Serial.println ("Varning: systemet är kallt");
digitalWrite (B_LED, hög); / / blå LED
analogWrite(Buz,80);
Delay(2000);
digitalWrite (B_LED, låg);
analogWrite(Buz,0);
Delay(2000); vänta en sekund
}
annat
{
Serial.println ("systemet fungerar väl");
digitalWrite (R_LED, låg);
digitalWrite (B_LED, låg);
Delay(2000);
}
}
Den första delen av koden definierar den globala variabelpin som används av RGB LED, temperaturgivareoch Summer. Detta stift kan användas av någon funktion som deklarerats i detta program. RGB är ansluten till en digital pin medan den andra till en analog stift på Arduino.
Vi har öppnat en seriell kommunikation mellan datorn och Arduino använder särskilda frekvensband, som i detta fall är 9600inuti setup-funktionen . Sedan definierat vi vilken pin används som en utdata eller indata. Fråga till er: Vad händer om du inte deklarerar temperatur sensor stift och RGB pin som indata och utdata stift respektive? Varför tror du det är?
När vi tittar på loop funktion, de flesta av huvudkoden bosatt här. Det första vi gjorde läses värdet från temperaturgivare och omvandlar det till spänning. Funktion analogRead() avkastning är ett heltalsvärde mellan 0 till 1023 eftersom Arduino ombord innehåller 10 bitars analog till digital omvandlare (2 ^ 10 = 1024). För att kartlägga detta 10 bitars karaktär läsa av temperaturgivaren till analoga värde, måste vi multiplicera värdet som sensor med upplösning på Arduino styrelsen, vilket är ungefär 0.0049 (5V/1024 enheter). Efter att få spänning värdet, det måste omvandlas till grader Celsius med skalfaktorn v 0,01 v / 0 C LM35DZ temperatur sensor.