Bosszi

รับออกแบบวงจร รับทำวงจรสำหรับ ARDUINO ตามความต้องการ

การส่งผ่านสัญญาณ analog ด้วย PC817 0 – 10 V to 0 – 5V Isolated ground

การส่งผ่านสัญญาณ analog ด้วย PC817 0 – 10 V to 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;
}

 

การต่อวงจรทดลอง

ค่าที่อ่านได้จาก Code

Vin 6.2 V

 

Vin 9.4V

Vin 4.8V

 

https://www.star-circuit.com