אז כמו שהבטחתי חיישנים, החיישן הבא איתו נתעסק הוא ה Temperature Sensor , אני אשתמש בחיישן TMP36 שמבוסס על חיישני Voltage Output Temperature והגדרת היצרן היא 10 Milivolts עבור מעלה אחת, בעצם אנחנו דוגמים Milivolts וממירים אותם למעלות כמו שנראה בהמשך.
דרישות
- Arduino Uno
- Arduino Prototype Shield
- TMP36
- Wires
TMP36
אז כמו שאמרתי, הדגימות של החיישן מבוססות על Milivolts כאשר 500ms הם טמפרטורת 0 ו 750ms הם 25 מעלות , נשתמש ב 2 נוסחאות הראשונה היא המרת ה Milivolts ל Fahrenheint ואח"כ מ Fahrenheint ל Celsius.
המרת Milivolts ל Fahrenheint:
Fahrenheit = (((mili -.5)*100)*1.8)+32
המרת Fahrenheint ל Celsius:
Celsius = ((Fahrenheit - 32) * 5 ) /9
וסתם בשביל הקטע המרה בין Celsius ל Fahrenheint:
Fahrenheit = (Celsius *
9) /
5 + 32
מבנה סופי:
קוד:
//set the tempertaure analog pin
int tempin = 0;
void setup()
{
//set serial to output
Serial.begin(9600);
}
void loop()
{
//get the milivolts
float temp = getVoltage(tempin);
float Celsius = 0;
float Fahrenheit = 0;
//convert the milivolts to Fahrenheint
Fahrenheit = (((temp -.5)*100)*1.8)+32;
//convert Fahrenheint to Celsius;
Celsius = ((Fahrenheit - 32) * 5 ) /9;
//sending to print
printme(Fahrenheit,Celsius);
delay(5000);
}
//just printing to the serial
void printme(int Fahrenheit, int Celsius)
{
Serial.print("Fahrenheit:");
Serial.print(Fahrenheit);
Serial.print(" Celsius :");
Serial.print(Celsius);
Serial.print("\n");
}
//reading the analogpin and getting
//the milivoltages.
float getVoltage(int pin)
{
return (analogRead(pin) * .004882814);
}
int tempin = 0;
void setup()
{
//set serial to output
Serial.begin(9600);
}
void loop()
{
//get the milivolts
float temp = getVoltage(tempin);
float Celsius = 0;
float Fahrenheit = 0;
//convert the milivolts to Fahrenheint
Fahrenheit = (((temp -.5)*100)*1.8)+32;
//convert Fahrenheint to Celsius;
Celsius = ((Fahrenheit - 32) * 5 ) /9;
//sending to print
printme(Fahrenheit,Celsius);
delay(5000);
}
//just printing to the serial
void printme(int Fahrenheit, int Celsius)
{
Serial.print("Fahrenheit:");
Serial.print(Fahrenheit);
Serial.print(" Celsius :");
Serial.print(Celsius);
Serial.print("\n");
}
//reading the analogpin and getting
//the milivoltages.
float getVoltage(int pin)
{
return (analogRead(pin) * .004882814);
}
פלט:
סיכום:
בסדרת המאמרים האחרונה למדנו להכיר את Arduino ואת היכולות שלו, עבדנו עם 2 חיישנים , Leds וכפתורים, בשלב זה אני אקח פסק זמן בכל הקשור ל Arduino כי יש לי עוד הרבה מה לספר לכם בנושאים אחרים ,כמובן שנחזור אליו בהמשך.
איזה חום?
אין תגובות:
הוסף רשומת תגובה