Arduino Serial PORT

รูปภาพ
Arduino Serial PORT       ใน Arduino นั้นจะสามารถติดต่อสื่อสารกับ Computer ผ่าน Serial ที่หลายคนก็รู้เช่ยเดียวกัน ในครั้งนี้ห็จะมาดูกันว่าจะสามารถทำอะไรกลับ Serial ได้บ่าง   คำสั่งแรกที่ต้องใช้ในการเริ่มต้นสือสารคือ การกำหนดความเร็วในการสือสาร ด้วยคำสั่งด้านล่าง จะใส่ไว้ใน Founction setup()  Serial.begin(9600);         นอกจากนี้ถ้าเป็นบอร์ดที่มีหลาย Serial (Arduino Maga2560) ก็จะใช้ การตั้งค่าเป็นดังนี้ Serial1.begin(9600); Serial2.begin(9600);        ก่อนที่จะเริ่มไปส่งค่าหรือรับค่ามาใช้งาน มาดูรายละเอียดของ  Baud Rate กันก่อน  เพื่อดูระยะเวลาในการรับ/ส่งข้อมูลกันก่อนเพราะบางที่ก็จะมีผลต่อโปรแกรมที่เราเขียนขึ้นจาก สูตร         ถ้าใช้ Baud Rate เท่ากลับ 9600 bit/s จะได้ว่า t = 1/9600 t= 0.104 mS         สรุปได้ว่า 1 bit = 0.104 mS ถ้า 1 char จะได้ว่า 0.104 ms*11 bit = 1.144 ms นั้นหมายความว่า ถ้าเราส่งข้อมูลหลายตัวอักษรก็จะใช้เวลาที่นาน   ...

การวัดแรงดันไฟฟ้า AC220V ด้วยหม้อแปลง12VAC / 200 mA

การวัดแรงดันไฟฟ้า AC220V ด้วยหม้อแปลง12VAC / 200 mA

   บทความที่เก็บมานานก็ขอเอามาแชร์บ่างละกันนะครับ วันนี้เราจะมาทำการวัดแรงดันไฟฟ้า AC220V ด้วยหม้อแปลง12VAC / 200 mA และใช้ libraries EmonLib โดยสามารถไป download จาก
https://github.com/openenergymonitor/EmonLib เรามาเริ่มทำการทดลองกันดีกว่า

อุปกรณ์ที่ใช้ในการทดลอง

-          ตัวต้านทาน 470k  1/4W                                                                       2 ตัว
-          ตัวต้านทาน 100k  1/4W                                                                       1 ตัว
-          ตัวต้านทาน 10kΩ    1/4W                                                              2 ตัว
-          ตัวต้านทานปรับค่าได้ 10k                                                                    1 ตัว
-          ตัวเก็บประจุ กระป๋อง 10µF/16V                                                             1 ตัว
-          หม้อแปลง 220VAC / 12VAC 200mA  CT                                             1 ตัว

เครื่องมือที่ใช้ในการทดลอง

-          ดิจิตอลมัลติมิเตอร์ นำมาใช้เทียบค่าเพื่อให้การวัดค่าที่ออกมาตรงที่สุด
-          โปรแกรมวัดแรงดันไฟฟ้า

วงจรที่ใช้ในการทดลอง

          จากรูปวงจรด่านบนเราจะนำตัวหม้อแปลงแรงดันไฟฟ้า มาต่อกลับ Port AC IN1 และ AC IN2 ส้วนตัว R6 ที่เป็น resister ปับค่าได้ใช้เพื่อปรับค่าให้ไกลกลับมิเตอร์จริงมากที่สุด ส่วน R5, R4 จะใช้เป็นเป็นตัวด้าานทานตัวเดียวก็ได้คือ 110k 

         ** ตัวต้านทานที่ใช้ให้หาตัวต้านทานที่มีค่าความผิดพลาดที่ 1% จะทำให้ค่าที่อ่านออกมาได้จะได้ไกล้เคียงและมีค่าเพียนน้อยที่สุด
โคร๊ตโปรแกรมที่ใช้ในการทดลอง
#include "EmonLib.h"             // Include Emon Library
EnergyMonitor emon1;             // Create an instance

void setup()
  Serial.begin(9600);
 
  emon1.voltage(2, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
  emon1.current(1, 111.1);       // Current: input pin, calibration.
}

void loop()
{
  emon1.calcVI(20,2000);         // Calculate all. No.of half wavelengths (crossings), time-out
  float supplyVoltage   = emon1.Vrms;             //extract Vrms into Variable
  Serial.println(supplyVoltage,0.3);
}
ขั้นตอนการทดลอง
-          จ่ายไฟฟ้า +5V ให้กลับวงจร
-          นำหม้อแปลง12VAC/1A ต่อเข้าที่ PORT AC IN1 และ PORT AC IN2
-          นำดิจิตอลมัลติมิเตอร์วัดแรงดันที่ PORT ADC เทียบ PORT GND ดูค่าแรงดันว่ามีค่าเท่ากับ +2.5V หรือไม่
-          นำบอร์ดไมโครคอนโทรลเลอร์ที่โปรแกรมแล้วมาต่อเข้ากับ PORT ADC
-          ต่อ Serial PORT เพื่อทำการแสดงค่าแรงดันไฟฟ้าออกทางคอมพิวเตอร์ตามที่โปรแกรมเขียนไว้
-          ดูค่าที่อ่านออกมาจาก Serial PORT ว่าตรงกับ ดิจิตอลมัลติมิเตอร์หรือไม่
สรุปผล
                จากการทดลองที่ผมได้ทำการนำตัวปรับระดับแรงดันกระแสสลับ 0-260 VAC มาต่อกลับหม่อแปลงฝังที่จ่ายไฟฟ้า 220VAC โปรแกรมสามารอ่านค่าออกมาได้เพียนบ่างเล็กน้อง แต่ค่าที่ออกมาตรงสามารถนำไปใช้งานได้ตั้งแต่ 0 –  260VAC  และจากที่ทำงานผมได้ลองเอาอุปกรณ์ที่จำลองสถานะแรงดันไฟฟ้ากระแสสลับ จาก 0-300VAC มาลองจ่ายให้กลับหม้อแปลงแล้วปรับค่าจาก 0VAC-300VAC ให้ตัวบอร์ดอ่านออกมา ก็สามารอ่านค่าออกมาได้ตรงโดยประมาณ


      ถ้าใครมีปัญหาด้านงานออกแบบหรือน้องที่สนใจหาที่ปรึกษาฟรีๆ หรือต้องการเขียน  3D componentต่าง ๆ สามารถ สอบถามได้ทีี่
 Tal. 094-787-1126 
Line ID : saksakkiki
facebook : saksan Momo




ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การวัดแรงดันไฟฟ้าด้วย ADC ใน Arduino

การโปรแกรม Bootloader ATMEGA2560-16AU (เรื่องวุ้น)