pin supply with 5V UNO
pin GND with GND UNO
pin OUT with A0 UNO
pin FLIP_DRV with D7 UNO
const int flipDrvPin = 7; // พินที่เชื่อมต่อกับ FLIP_DRV ของ EVAL-ADAF1080-6EBZ
const float K = 1.0; // ค่าคงที่การแปลงแรงดันเป็นกระแส (ปรับตามข้อมูลจาก Datasheet)
const int numSamples = 1000; // จำนวนครั้งที่อ่านค่าเพื่อหาค่า RMS
pinMode(flipDrvPin, OUTPUT); // กำหนดพิน flipDrvPin เป็น OUTPUT
digitalWrite(flipDrvPin, LOW); // เริ่มต้นด้วยการปิดวงจรขับขดลวด
}
// เปิดวงจรขับขดลวด
digitalWrite(flipDrvPin, HIGH);
delay(100); // หน่วงเวลาเล็กน้อยเพื่อให้สัญญาณเสถียร
for (int i = 0; i < numSamples; i++) {
int sensorValue = analogRead(sensorPin); // อ่านค่าจากพิน A0
float voltage = sensorValue * (5.0 / 1023.0); // แปลงค่า ADC เป็นแรงดันไฟฟ้า
sumOfSquares += voltage * voltage; // บวกค่ากำลังสองของแรงดันไฟฟ้า
delay(1); // หน่วงเวลาเล็กน้อยเพื่อให้การอ่านค่ามีความเสถียร
}
float voltageRMS = sqrt(sumOfSquares / numSamples);
float currentRMS = voltageRMS * K;
Serial.print("Voltage RMS: ");
Serial.print(voltageRMS);
Serial.print(" V");
Serial.print(" Current RMS: ");
Serial.print(currentRMS);
Serial.println(" mA");
digitalWrite(flipDrvPin, LOW);
delay(1000); // หน่วงเวลา 1 วินาที
}