Módulo sensor de corriente para Arduino, marca Keyestudio
Introducción
El sensor de detección de corriente Keyestudio está compuesto principalmente por un sensor de corriente TA12-200, que puede convertir una corriente grande en una pequeña amplitud de salida de voltaje.
Este producto se puede aplicar para detectar corriente alterna, y su corriente máxima detectable es de hasta 5A.
El sensor de corriente se puede utilizar en una variedad de microcontroladores, especialmente en el controlador Arduino, que se puede conectar a la placa de expansión del sensor dedicado Arduino con el cable del sensor 3P.
Puede lograr fácilmente trabajos interactivos relacionados con la conciencia ambiental.
Utilizado para monitoreo remoto de carga eléctrica; como un sistema de control electrónico de señales de entrada; falta de indicación de fase, medición de potencia; monitoreo del estado de funcionamiento del motor.Especificación
Voltaje de trabajo: 5V
Detección de corriente: hasta 5A
Frecuencia de trabajo: 20Hz ~ 20KHz
Tipo de datos: entrada analógica
Retardante de llama conforme a UL94-VO
Rigidez dieléctrica 6000V AC / 1minDiagrama de conexión
Código de muestra
#define ELECTRICITY_SENSOR A0 // Analog input pin that sensor is attached to
float amplitude_current; //amplitude current
float effective_value; //effective current
void 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 RobotBase interface of the sensor is 5v
amplitude_current=(float)sensor_max/1024*5/800*2000000;
effective_value=amplitude_current/1.414;//minimum_current=1/1024*5/800*2000000/1.414=8.6(mA)
//Only for sinusoidal alternating current
Serial.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(ELECTRICITY_SENSOR, INPUT);
}
/*Function: Sample for 1000ms and get the maximum value from the SIG 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(ELECTRICITY_SENSOR);
if (sensorValue > sensorMax)
{
/*record the maximum sensor value*/
sensorMax = sensorValue;
}
}
return sensorMax;
}
Categoría
Categoría