vorrei misurare una corrente continua variabile tra i 30 e gli 0 A con una tensione inferiore ai 30V. ho valutato di utilizzare un ACS712 30A ad effetto hall, ma la piccola morsettiera non mi ispira molta fiducia nel supportare tale corrente.
la mia possibile scelta sarebbe quindi un ACS758 da 50 ampere vi allego il link amazon:
qui il datasheet per risparmiare tempo:
vorrei utilizzarlo con un Arduino Uno, forse più avanti con Mega ma non fa molta differenza.
vorrei chiedervi:
la connessione con Arduino deve essere fatto con 5V, GND ed OUT sulla porta analogica giusto?
ho individuato uno sketch su internet ma viene utilizzato un altro arduino..
/*
const int analogIn = A0;
// Set your scale factor
int mVperAmp = 40; // See Scale Factors Below
/* Scale Factors
50A bi-directional = 40
50A uni-directional = 60
100A bi-directional = 20
100A uni-directional = 40
150A bi-directional = 13.3
150A uni-directioal = 26.7
200A bi-directional = 10
200A uni-directional = 20
*/
// Set you Offset
int ACSoffset = 2500; // See offsets below
/* Offsets
If bi-directional = 2500
If uni- directional = 600
*/
int RawValue= 0;
double Voltage = 0;
double Amps = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
RawValue = analogRead(analogIn);
Voltage = (RawValue / 1023.0) * 5000; // Gets you mV
Amps = ((Voltage - ACSoffset) / mVperAmp);
Serial.print("Raw Value = " ); // shows pre-scaled value
Serial.print(RawValue);
Serial.print("\t mV = "); // shows the voltage measured
Serial.print(Voltage,3); // the '3' after voltage allows you to display 3 digits after decimal point
Serial.print("\t Amps = "); // shows the voltage measured
Serial.println(Amps,3); // the '3' after voltage allows you to display 3 digits after decimal point
delay(2500);
}
posso utilizzare comunque questo sketch?
non mi interessa una misura precisissima, mi accontenterei che misuri la corrente con una discreta precisione...
mi farebbe molto piacere un vostro parere e possibilmente un parere sul possibile funzionamento!
Forse dovresti imparare un po come funiona Arduino.
Il sensore di corrente produce una tensione proporzionale alla corrente.
Se hai la versione che misura solo correnti positive senza corrente hai 0,6V. La versione bidirezionale ha come 0A metá della tensione di alimentazione.
Devi solo misurare una tensione e calcolare la corrente risultante.
Certamente non conosco a sufficienza Arduino, su questo sono d'accordo
effettivamente forse ho fatto confusione nel mettere il link ed indicare il misuratore.
link misuratore 50A:
mi interessa corrente DC 50A monodirezionale perciò modifico lo sketch:
const int analogIn = A0;
// Set your scale factor
int mVperAmp = 60; // See Scale Factors Below
/* Scale Factors
50A bi-directional = 40
50A uni-directional = 60
100A bi-directional = 20
100A uni-directional = 40
150A bi-directional = 13.3
150A uni-directioal = 26.7
200A bi-directional = 10
200A uni-directional = 20
*/
// Set you Offset
int ACSoffset = 600; // See offsets below
/* Offsets
If bi-directional = 2500
If uni- directional = 600
*/
int RawValue= 0;
double Voltage = 0;
double Amps = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
RawValue = analogRead(analogIn);
Voltage = (RawValue / 1023.0) * 5000; // Gets you mV
Amps = ((Voltage - ACSoffset) / mVperAmp);
Serial.print("Raw Value = " ); // shows pre-scaled value
Serial.print(RawValue);
Serial.print("\t mV = "); // shows the voltage measured
Serial.print(Voltage,3); // the '3' after voltage allows you to display 3 digits after decimal point
Serial.print("\t Amps = "); // shows the voltage measured
Serial.println(Amps,3); // the '3' after voltage allows you to display 3 digits after decimal point
delay(2500);
}
potrebbe andare bene?
So che il misuratore produce un valore in tensione proporzionale alla corrente che passa attraverso il misuratore, mi interesserebbe avere conferma da persone più esperte e qualificate di me:
che è una tensione in uscita che arduino uno è in grado di leggere.
posso alimentarlo direttamente da arduino o con un alimentatore esterno da 5v con cui metto in comune il rif GND.