บทความประกอบการเรียนรู้ => ไมโครคอนโทรลเลอร์ (Arduino) => ข้อความที่เริ่มโดย: admin ที่ เมษายน 22, 2014, 01:48:12 PM

หัวข้อ: งานครั้งที่ 12 เขียนโปรแกรมแสดงอุณภูมิจากอุปกรณ์เซนเซอร์อุณหภูมิแสดงผลผ่าน UART
เริ่มหัวข้อโดย: admin ที่ เมษายน 22, 2014, 01:48:12 PM
เขียนโปรแกรมแสดงอุณภูมิจากอุปกรณ์เซนเซอร์อุณหภูมิแสดงผลผ่าน UART
ฟังก์ชั่นอยู่ในกลุ่ม Serial http://arduino.cc/en/Reference/Serial (http://arduino.cc/en/Reference/Serial)
-Serial.begin() http://arduino.cc/en/Serial/Begin (http://arduino.cc/en/Serial/Begin)
-if (Serial) http://arduino.cc/en/Serial/IfSerial (http://arduino.cc/en/Serial/IfSerial)
-Serial.available() http://arduino.cc/en/Serial/Available (http://arduino.cc/en/Serial/Available)
-Serial.read() http://arduino.cc/en/Serial/Read (http://arduino.cc/en/Serial/Read)
-Serial.print() http://arduino.cc/en/Serial/Print (http://arduino.cc/en/Serial/Print)
-Serial.println() http://arduino.cc/en/Serial/Println (http://arduino.cc/en/Serial/Println)
-Serial.flush() http://arduino.cc/en/Serial/Flush (http://arduino.cc/en/Serial/Flush)

ฟังก์ชั่นทั่วไป
-analogRead() http://arduino.cc/en/Reference/AnalogRead (http://arduino.cc/en/Reference/AnalogRead)

โจทย์โปรแกรม
-แสดงค่าอุณหภูมิปัจจุบันจากเซนเซอร์แอนาลอกบนจอคอมพิวเตอร์ผ่านทาง UART
-โปรแกรมรายละเอียดพิเศษรายกลุ่ม (แจ้งให้ทราบเมื่อถึงชั่วโมงเรียน)

วงจรที่ใช้ในการทดลองสำหรับผู้ที่ใช้บอร์ด Arduino
(http://www.praphas.com/PhotoForum/arduino/Lab-12-01.png)

วงจรที่ใช้ในการทดลองสำหรับผู้ที่ใช้ไอซี ATmega328 (ที่มี Boot Loader Arduino)
(http://www.praphas.com/PhotoForum/arduino/Lab-12-02.png)

บริเวณใช้งานบอร์ดทดลอง
(http://www.praphas.com/PhotoForum/arduino/Lab-12-03.png)
หัวข้อ: Re: งานครั้งที่ 12 สร้างวงจรตรวจจับสัญญาณชนิดแอนาล็อก
เริ่มหัวข้อโดย: admin ที่ เมษายน 22, 2014, 04:51:56 PM
ตัวอย่างโปรแกรมแสดงอุณภูมิเบื้องต้น
โค๊ด: [Select]
double Thermistor(int RawADC) 
{
  double Cal;
  Cal = log(10000.0/((1024.0/RawADC-1)));
  Cal = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Cal * Cal ))* Cal );
  Cal = Cal - 273.15;            /* Convert Kelvin to Celcius */
  return Cal;
}

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  float Temp=Thermistor(analogRead(0));
  Serial.println(Temp);
  delay(1000);
}
หัวข้อ: Re: งานครั้งที่ 12 สร้างวงจรตรวจจับสัญญาณชนิดแอนาล็อก
เริ่มหัวข้อโดย: admin ที่ เมษายน 22, 2014, 04:53:53 PM
....