ACS712-30A Current Sensor Module เป็น Module วัดกระแสไฟฟ้า
โดยจ่าย Output ออกมาเปนสัญญาณ Analog สามารถต่อได้ทั้งไฟ DC และ AC โดยสามารถทำงานได้ 3 Mode คือ 5A , 20A และ 30A
การต่อใช้งาน ACS712 จะต่อเข้ากับขา A0 ของ Arduino
ตัวอย่างโปรแกรม Source code ACS712-30A Current Sensor Module สำหรับไฟ DC
void setup() {
Serial.begin(9600);
}void loop() {
float average = 0;
for(int i = 0; i < 1000; i++) {
average = average + (.0264 * analogRead(A0) -13.51) / 1000;//5A mode, if 20A or 30A mode, need to modify this formula to
//(.19 * analogRead(A0) -25) for 20A mode and
//(.044 * analogRead(A0) -3.78) for 30A modedelay(1);
}
Serial.println(average);
}
ตัวอย่างโปรแกรม Source code ACS712-30A Current Sensor Module สำหรับไฟ AC
#define CURRENT_SENSOR A0 // Define Analog input pin that sensor is attached
float amplitude_current; // Float amplitude current
float effective_value; // Float effective currentvoid setup()
{
Serial.begin(9600);
pins_init();
}
void loop()
{
int sensor_max;
sensor_max = getMaxValue();
Serial.print(“sensor_max = “);
Serial.println(sensor_max);//the VCC on the Arduino interface of the sensor is 5v
amplitude_current=(float)(sensor_max-512)/1024*5/185*1000000; // for 5A mode,you need to modify this with 20 A and 30A mode;
effective_value=amplitude_current/1.414;//for minimum current=1/1024*5/185*1000000/1.414=18.7(mA)
//Only sinusoidal alternating currentSerial.println(“The amplitude of the current is(in mA)”);
Serial.println(amplitude_current,1);//Only one number after the decimal point
Serial.println(“The effective value of the current is(in mA)”);
Serial.println(effective_value,1);
}
void pins_init()
{
pinMode(CURRENT_SENSOR, INPUT);
}
/*Function: Sample for 1000ms and get the maximum value from the S pin*/int getMaxValue()
{
int sensorValue; //value read from the sensor
int sensorMax = 0;
uint32_t start_time = millis();
while((millis()-start_time) < 1000) //sample for 1000ms
{
sensorValue = analogRead(CURRENT_SENSOR);
if (sensorValue > sensorMax)
{
/*record the maximum sensor value*/sensorMax = sensorValue;
}
}
return sensorMax;
}