ปัญหาเซนเซอร์ ACS712 กับบอร์ด ESP-32s


ปัญหาที่เกิดขึ้นคือ เมื่อไม่มีกระแสผ่าน ACS712 สัญญาณanlog outputควรจะจ่ายแรงดันครึ่งนึงของ VCC ซึ่งค่า analog ควรจะได้ค่าครึ่งนึงของ 12bit 4095/2 = 2047.5 แต่ค่าที่ผมได้อยู่ที่ช่วง 2800 - 3000 ครับ ขาอินพุตที่รับค่าใช้ขา GPIO ที่ 39 ครับ


พอผมลองเซนเซอร์ด้วย arduino UNOได้ค่าสัญญาณที่ครึ่งนึงปกติครับ(ดูค่าสัญญาณที่ตัวแปร a น้ะครับ)

ขอคำแนะนำพี่ๆหน่อยครับ

1 Likes

ไฟเลี้ยง sensor esp32 ต่อที่จุดไหนครับ

ต่อกับโน๊ตบุ๊คครับ

เหมือนว่าตระกูล acs ออกแบบมาให้ใช้งานกับ arduino ที่มีแรงดันไฟฟ้าคงที่ ของ ESP32 มันรองรับแรงดันไฟฟ้าภายน้อยกว่าทำให้มีปัญหานี้ครับ


อ้างอิง : ESP32 with ACS712 - ESP32 Forum

หรือไม่อาจปรับจูนที่โค้ตแบบนี้

const int analogInPin = 34; // ตั้งค่าขา Analog Input ที่ต่อกับ ACS712
float voltage = 0;
float current = 0;

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

void loop() {
  int sensorValue = analogRead(analogInPin); // อ่านค่าแรงดันที่ได้จากเซ็นเซอร์ ACS712
  voltage = sensorValue * (5.0 / 1023.0); // แปลงค่าแรงดันเป็นโวลต์
  
  // ทำการแปลงค่าแรงดันเป็นค่ากระแสไฟฟ้าโดยใช้สเกลที่เหมาะสม
  current = ((voltage - 2.5) / 0.185);

  Serial.print("Voltage: ");
  Serial.print(voltage);
  Serial.print("V, ");
  Serial.print("Current: ");
  Serial.print(current);
  Serial.println("A");
  
  delay(1000); // หน่วงเวลาเพื่ออ่านค่าทุกๆวินาที
}