Boas pessoal estou a desenvolver um projeto onde vou utilizar estes 3 sensores (Links em baixo) de medição de corrente gostaria de saber se eventualmente já alguem trabalhou com eles ou parecidos e se sabem como se programam no nosso amigo arduino.
vendo o datasheet, vi que a saida é voltagem..
então, tenta usar umas 3 correntes conhecidas para fazer uma tabelinha de conversão..
ai depois é só mapear no arduino..
mas deve ter formas mais faceis..
Sim realmente tens razão vou aumentando a corrente na fonte de tensão gradualmente e logo chegarei a uma conclusão o meu problema é como vou fazer isso em relação à programação
int S100A = A0;
float val = analogRead(S100A);
void setup(){
pinMode (S100A,INPUT);
}
void loop()
{
val = analogRead(S100A);
Serial.println(val);
delay(1000);
float(val);
}
Fiz o código assim e compilou
O sensor lê até 100A e eu coloquei-o no fio positivo com uma lampada ligada será que a corrente consumida pela lampada e muito pequena e o sensor não lê ou continua a ser um erro no código??
Wilson, é preferível colocar os códigos dentro das tags Code (botão #), para que ele apareça como abaixo
Comentei o código para identificarmos o que se passa
int S100A = A0; //declara a variável S100A como zero (que identificará a porta analógica zero) OK
//float val = analogRead(S100A); não tem sentido usar analogRead neste momento
//e analogRead(pino) retorna um valor entre 0 e 1023, veja em http://arduino.cc/en/Reference/analogRead
//então é melhor usar integer
int val = 0;
void setup(){
//perdoe-me, faltou iniciar a serial com o abaixo
Serial.begin(9600); //deverá ser definido no serial monitor a mesma velocidade
pinMode (S100A,INPUT); //Defione o pino S100A como imput OK
}
void loop()
{
val = analogRead(S100A); //lê o conteúdo da porta e guarda em val OK
Serial.println(val); //imprime o valor val na porta serial OK
delay(1000); //pausa o loop para não choverem dados na porta serial OK
float(val); //não vejo sentido aqui ;)
}
Testa o código com essas alterações, e me desculpe por esquecer de colocar o "Serial.begin(9600);"
wilsonalves:
int S100A = A0;
float val = analogRead(S100A);
void setup(){
pinMode (S100A,INPUT);
}
void loop()
{
val = analogRead(S100A);
Serial.println(val);
delay(1000);
float(val);
}
Fiz o código assim e compilou
O sensor lê até 100A e eu coloquei-o no fio positivo com uma lampada ligada será que a corrente consumida pela lampada e muito pequena e o sensor não lê ou continua a ser um erro no código??
Já está a bombar pessoal, está a dar valores tipo 519 segundo a segundo, agora vou po-lo na fonte de tensão e vou aumentando a corrente gradualmente para tentar perceber a que valores correspondem e construir uma tabela só assim consigo penso eu.
wilsonalves:
Com os 5 do arduino
Não está correto??
no site ele diz que tensão de operação é de 8 a 12 v
cuidado pra não exeder a corrente de entrada na porta do arduino..
se vc tiver um amperimetro pra medir essa corrente antes de acoplar no arduino, seria muito bom..
nao tou conseguindo ver o datasheet.
wilsonalves:
Alimentei o sensor a 3.3 volts e realmente os valores reduziram para 485,486,487.
Mantenho a 5 Volts ou passo para 3.3Volts?
O que acham?
Product Specifications
Product Type Inductive Analog Current Sensor
Sensed Current Type ac or dc
Sensed Current Range ±100 A
Package Type PCB Bottom Mount
Output Type Voltage
Sensitivity 29.7 mV N* ±2.7 mV N* @ 12 Vdc
Supply Current 19 mA max.
Offset Voltage Vcc/2 ±10 %
Supply Voltage 8.0 Vdc to 16.0 Vdc
Offset Shift ±0.05
Response Time 3 µs
Operating Temperature -25 °C to 85 °C [-13 °F to 185 °F]
Storage Temperature -40 °C to 100°C [-40 °F to 212 °F]
Housing Material PBT Polyester
Mounting PCB on 3 Pins
Pinout Style 3 Pin
Availability Global
Comment * N = Number of Turns
UNSPSC Code 411121
UNSPSC Commodity 411121 Transducers
Series Name CSLA