יום שישי, 27 באפריל 2012

Arduino Temperature Sensor


אז כמו שהבטחתי חיישנים, החיישן הבא איתו נתעסק הוא ה 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);
}



פלט:

סיכום:
בסדרת המאמרים האחרונה למדנו להכיר את Arduino ואת היכולות שלו, עבדנו עם 2 חיישנים , Leds וכפתורים, בשלב זה  אני אקח פסק זמן בכל הקשור ל Arduino כי יש לי עוד הרבה מה לספר לכם בנושאים אחרים ,כמובן שנחזור אליו בהמשך.

איזה חום?

אין תגובות:

הוסף רשומת תגובה