วงจรส่งผ่านสัญญาณ Analog ด้วย PC817 สัญญาณ INPUT 0 – 10 V สัญญาณ OUTPUT 0 – 5V Isolated ground
0 – 10V to 0 – 5V Isolated ground
แผงวงจรสำหรับรับสัญญาณไฟ 0 – 10V และแปลงเป็นไฟ 0 – 5V แบบแยกกราวด์
สัญญาณเข้า สัญญาณออก
1V 0.002V
2V 0.196V
3V 0.537V
4V 1.013V
5V 1.561V
6V 2.149V
7V 2.742V
8V 3.349V
9V 3.819V
10V 3.976V
กราฟแสดงสัญญาณเข้า 0 – 10V และสัญญาณออก 0 – 5V
Code สำหรับอ่านค่าแรงดัน
void setup() { Serial.begin(9600); } void loop() { Serial.print("Voltage : "); Serial.println(Read_Voltage()); delay(1000); } float Read_Voltage() { int Ana_Volt = analogRead(A0); float Volt = 0; if (Ana_Volt < 5) { Volt = 0; } else if (Ana_Volt < 35 && Ana_Volt > 5) { Volt = Ana_To_Vo(35, 1, Ana_Volt, 0); } else if (Ana_Volt < 113 && Ana_Volt > 35) { Volt = Ana_To_Vo(80, 2, Ana_Volt, 35); } else if (Ana_Volt < 214 && Ana_Volt > 113) { Volt = Ana_To_Vo(101, 3, Ana_Volt, 113); } else if (Ana_Volt < 329 && Ana_Volt > 214) { Volt = Ana_To_Vo(115, 4, Ana_Volt, 214); } else if (Ana_Volt < 451 && Ana_Volt > 329) { Volt = Ana_To_Vo(122, 5, Ana_Volt, 329); } else if (Ana_Volt < 578 && Ana_Volt > 451) { Volt = Ana_To_Vo(127, 6, Ana_Volt, 451); } else if (Ana_Volt < 704 && Ana_Volt > 578) { Volt = Ana_To_Vo(126, 7, Ana_Volt, 578); } else if (Ana_Volt < 805 && Ana_Volt > 704) { Volt = Ana_To_Vo(85, 8, Ana_Volt, 704); } else if (Ana_Volt < 845 && Ana_Volt > 805) { Volt = Ana_To_Vo(31, 9, Ana_Volt, 805); } else if (Ana_Volt > 820 ) { Volt = 10; } return Volt; } float Ana_To_Vo(int Max_Va, float Max_Vo, float Ana, int Min_Va) { Ana = Ana - Min_Va; float V = Ana / Max_Va; V = V + Max_Vo; return V; }
การต่อวงจรทดลอง
0-10V เป็นสัญญาณ 0-10V
GND 10/24V เป็น GND ของสัญญาณ 0-10V และใช้ร่วมกับไฟ +24V
+24V เป็นไฟ +24V เชื่อมต่อสำหรับเซ็นเซอร์ที่ใช้ไฟเลี้ยง +24V ไม่เชื่อมต่อก็สามารถใช้งานได้
+5V เป็นไฟแหล่งจ่าย +5V
OUT เป็นสัญญาณ Analog Output
GND 5V เป็น GND ด้าน 5V
ขนาด 44×29.6x11mm
น้ำหนัก 12 g
ค่าที่อ่านได้จาก Code
Vin 6.2 V
Vin 9.4V
Vin 4.8V