Post Go back to editing

EVAL-ADAF1080-6EBZ

Category: Hardware
Product Number: EVAL-ADAF1080-6EBZ, ADAF1080
I'm EVAL-ADAF1080-6EBZ connect UNO R3 but It read current.
By me, continue
pin supply with 5V UNO
pin GND with GND UNO
pin OUT with A0 UNO
pin FLIP_DRV with D7 UNO
 
code:
const int sensorPin = A0; // พินที่เชื่อมต่อกับ OUT ของ EVAL-ADAF1080-6EBZ
const int flipDrvPin = 7; // พินที่เชื่อมต่อกับ FLIP_DRV ของ EVAL-ADAF1080-6EBZ
const float K = 1.0; // ค่าคงที่การแปลงแรงดันเป็นกระแส (ปรับตามข้อมูลจาก Datasheet)
const int numSamples = 1000; // จำนวนครั้งที่อ่านค่าเพื่อหาค่า RMS
void setup() {
  pinMode(flipDrvPin, OUTPUT); // กำหนดพิน flipDrvPin เป็น OUTPUT
  digitalWrite(flipDrvPin, LOW); // เริ่มต้นด้วยการปิดวงจรขับขดลวด
  Serial.begin(9600); // เริ่มต้นการเชื่อมต่อ Serial สำหรับการแสดงผล
}
void loop() {
  // เปิดวงจรขับขดลวด
  digitalWrite(flipDrvPin, HIGH);
  delay(100); // หน่วงเวลาเล็กน้อยเพื่อให้สัญญาณเสถียร
  float sumOfSquares = 0.0; // ตัวแปรสำหรับสะสมค่ากำลังสองของแรงดัน
  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); // หน่วงเวลาเล็กน้อยเพื่อให้การอ่านค่ามีความเสถียร
  }
  // หาค่า RMS ของแรงดันไฟฟ้า
  float voltageRMS = sqrt(sumOfSquares / numSamples);
  // แปลงค่า RMS ของแรงดันไฟฟ้าเป็นกระแสไฟฟ้า
  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 วินาที
}