Estive a fazer a medição e estão 2Volts antes de entrar no arduino
Estava a pôr só um gnd enquanto que tinha de interligar os 2, Como mudo o valor 2=0 para 1.96=0??
Estou farto de tentar e dar voltas e não consigo perceber como mudar esse valor
E mais outra questão bubulindo é que não consegui perceber se foi engano seu ou não quando fez esta conta //5V = 1024 1V = (1*1024)/5 = 204.8 ~ 209 >Arredondou para 209 porquê para 209 e não 205???
Cumprimentos e desculpe estar a ser chato
Foi engano. São 205.
Como disse, tens de verificar as leituras e ajustar os parâmetros do map() para dar a leitura correcta. O 1,96V será do facto de não teres um divisor de corrente perfeito. As contas que fiz em cima servem para fazer este ajuste. Em vez de usares 1 e 3, usas valores mais precisos. Ou seja, 1,96 + (1009,4mV) e 1,96 - (1009,4mV) e aplicas as mesmas fórmulas que usei antes.
E mais outra questão bubulindo é que não consegui perceber se foi engano seu ou não quando fez esta conta //5V = 1024 1V = (1*1024)/5 = 204.8 ~ 209 >Arredondou para 209 porquê para 209 e não 205???
Não li o tópico inteiro, mas acredito que ele simplesmente se enganou amigo, põe 205 lá e vê se é isso mesmo, a capacidade de fazer upload via usb é boa justamente para estes casos,
não está dando certo? Altera o que você acha que possa interferir e vê o resultado instantaneamente. Piorou? Desfaz a alteração e vai para a próxima linha
Como mudo o valor 2=0 para 1.96=0??
Não entendi direito sua dúvida, mas talvez só arrumando o trecho:
corrente = map(valor, 209, 614, -100, 100);
para:
corrente = map(valor, 205, 614, -100, 100);
pode ser que resolva o problema. Se não, o caminho é por aí, percebe que seu problema maior é matemática, não programação/eletrônica?
Já consegui pôr o sensor a dar certinho está optimo agora estou a implementar o de 45A-Safety and Productivity Solutions | Honeywell
A questão é o output do sensor em ves de ser tensão é Sink/Source existe algum problema na medição o código é basicamente como o Anterior mas com valores alterados???
Quem souber que me dê uma ajuda na implementação deste sensor sff
Cumprimentos
Uma resistência?? Corrente a passar numa resistência causa uma diferença de potencial. Ligas lá o teu AD e pronto. Já está.
No código tens apenas de refazer a matemática que expliquei anteriormente para chegares aos novos parâmetros.
Qual a idêia de pôr uma resistência ?
Não bastam as resistências do divisor de tensão??
Voltei a não conseguir que os sensores não dessem valores certos no caso do de (AC)45 A está a 0 tudo bem mas eu ponho 5 Amperes a passar e ele só mede 3.
O de 235(Bat)está a -3 quando não passa nada e quando lhe ponho 5 Amper fica a -8.
E o de 100A(RC) ontem antes de desligar tudo verifiquei estava tudo bem a medir corretamente fiz save hoje quando voltei estava a -2 e quando lhe ponho 5 amper fica 3.
Não consigo perceber o que estou a fazer mal na formula
Cumpts
Temperatura?
Qual é a estabilidade do sensor e resistências?
Bom dia sem ter corrente a passar nos sensores eles estão sempre a dar medições na ordem dos 0,1,2 e assim sucessivamente poderá ser ruído ou algo do género então pensei em fazer a média de vários valores e julgo ter o problema resolvido o que acham??
Agora como faço eu a média neste bocado de código:
valor235 = analogRead(A5); //Valor do pino Analógico 5
//Sinal entre 1V e 3V
//5V=1024 1.47mV = (0.80851024)/5 = 165.5808 //1.96-(0.2354.9)=0.8085
//5V=1024 2.45mV = (3.1151024)/5 = 638,952 ~639 //1.96+(0.2354.9)=3.115
minimo235=((2.02-(0.235*4.9))1024/5); //Calculo do valor minimo
maximo235=((2.02+(0.2354.9))*1024/5); //Calculo do valor máximo
corrente235 = map(valor235, minimo235, maximo235, -235, 235); //Calculo da corrente
Serial.print("BAT:");
Serial.print(corrente235); //Apresentação dos resultados da corrente no serial monitor
Serial.println("A");
lcd.setCursor(3, 2);
lcd.print(corrente235); //Apresentação do resultado/temperatura no LCD
delay(1000); //Actualização dos dados a cada 2 segundo
Cumprimentos
unsigned int leituras[10];
unsigned int media = 0;
for(unsigned char i = 0; i <10; i++) {
leituras[i] = analogRead(pino);
media += leituras[i];
}//leituras terminadas...
media/=10;
Assim...
Acabei de por cabos blindados do sensor até ao arduino para ver se conseguia com que os valores estabelizassem e se ficavam certos nenhuma das duas se verificou já não sei mais o que fazer para conseguir com que o arduino dê os valores certinhos!!
Alguem tém alguma sugestão.
Cumprimentos
Condensador na entrada do AD?
Já meteste um osciloscópio?
Sim pus um condensador na entrada do AD não tenho é nenhum osciloscópio.
E agora existe outra situação o meu sensor de 100 A está a enviar qualquer coisa como 3.50 V enquanto que deveria enviar tipo 1.95 V +/-.
Como tens o circuito ligado?
As tensões antes desses 3,5 estão todas correctas?
No caso da média como faço para mostrar no lcd a média dacorrente é que me estão a aparecer os valores que está ler todos seguidos eu fiz assim
unsigned long antes100 = 0;
int valor100 = 0;
float corrente100 = 0;
float minimo100 =0; //Valor minimo do map()
float maximo100 =0; //Valor máximo do map()
unsigned int leituras[10];
unsigned int media100 = 0;
//--------------------------------------------------------Sensor de 100A----------------------------------------------------------------
lcd.setCursor(14,1); // Local no Lcd onde vai der apresentada a tensão do regulador
lcd.print(12); // Valor da Tensão no regulador de carga
valor100 = analogRead(A4); // Valor do pino Analógico 4
//Sinal entre 1V e 3V
//5V=1024 1V = (0.97*1023)/5 = 198.656 ~ 199 // 1.95-(0.1*9.4)=0.97
//5V=1024 3V = (2.85*1023)/5 = 583.68 ~ 584 // 1.95+(0.1*9.4)=2.85
minimo100=((1.922-(0.1*9.7515))*1024/5); // Calculo do valor minimo
maximo100=((1.922+(0.1*9.7515))*1024/5); // Calculo do valor máximo
corrente100 = map(valor100, minimo100, maximo100, -10000, 10000); // Calculo da corrente
corrente100 = corrente100/100;
for(unsigned char i = 0; i <10; i++) {
leituras[i] = analogRead(corrente100);
media100 += leituras[i]; //leituras terminadas...
media100/=10; //média um conjunto de 10 amostras
Serial.print("RC:"); // Apresentação da sigla do regulador de carga no Serial Monitor
Serial.print(media100); // Apresentação dos resultados da corrente no serial monitor
Serial.println("A"); // Grandeza fisica(A) declarada no serial monitor
lcd.setCursor(14,2); // Local no LCD onde se vi iniciar o resultado da corrente do regulador de carga
lcd.print(" "); // Limpeza do LCD dos resultados anteriores
lcd.setCursor(14, 2); // Local onde se vi iniciar no LCD o resultado da corrente no regulador de carga
lcd.print(media100); // Apresentação da corrente do regulador de carga no LCD
PRC=TRC*media100; // Calculo da potência de RC
lcd.setCursor(14,3); // Local no LCD onde se vai iniciar a (limpeza) da Potência do regulador de carga
lcd.print(" "); // Limpeza do resultado anterior da potência do regulador de carga
lcd.setCursor(14,3); // Local no LCD onde se vi iniciar o resultado da Potência do regulador de carga
lcd.print(PRC); // Aprsentação do resultado da potência do regulador de carga no LCD
delay(500);
}
E no caso do sensor a dar 3.5 já está resolvido
Cumprimentos
Eu não consigo perceber porque é que não consigo estabilizar o 0 dos sensores e já se me acabaram as ideias todas tenho o regulador de carga onde entram 12Volts e saem 7.87volts no regulador tenho dois condensadores daqueles pequeninos (grd/out e grd/in) ainda tenho um condensador electrolitico entre o grd/positivo. para os sensores tenho os divisores de tensão e no divisor de tensão tenho ainda tenho mais um condnsador entre o grd e out. Agora digam-me porque é que esta porcaria não tem os valores estáveis. =(
Às vezes está no depois passa para 2 A depois passa logo para -2A não consigo mesmo perceber porque é que isto acontece já revi tudo. Não sei realmente o que fazer.
obrigado
Algures atrás eu referi que a maneira de fazer isto seria com um amplificador operacional para poderes usar a gama toda ajustando os ganhos.
Um dos motivos que listei foi precisamente o facto que um bit de ruído teria um impacto grande na tua leitura...
Tu e o teu superior sabem mais que eu e decidiram que um divisor resistivo é suficiente, agora estão a ter problemas.
Já experimentaste ver qual a influência que um bit faz nas tuas leituras?
As médias não funcionam? Como arredondas o valor?
Pessoal alguém sabe como se faz um totalizador de corrente do tipo hoje consumi um numero de corrente e de potência, é necessário criar uma rotina ou algo do género não é??
Não faço a mais pequena ideia de como resolver esta situação!!!