Pages: 1 2 3 [4] 5   Go Down
Author Topic: Sensor de corrente(programação)  (Read 5862 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

 
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3108
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 + (100*9,4mV) e 1,96 - (100*9,4mV) e aplicas as mesmas fórmulas que usei antes.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Curitiba PR, Brazil
Offline Offline
Full Member
***
Karma: 0
Posts: 234
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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 smiley-wink

Quote
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?
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Já consegui pôr o sensor a dar certinho está optimo agora estou a implementar o de 45A-http://sensing.honeywell.com/index.php?ci_id=3108&la_id=1&pr_id=54672
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
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3108
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


* C360_2013-07-18-12-14-39-275.jpg (410.26 KB, 2048x1536 - viewed 19 times.)
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3108
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Temperatura?

Qual é a estabilidade do sensor e resistências?
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.8085*1024)/5 = 165.5808                    //1.96-(0.235*4.9)=0.8085   
  //5V=1024 2.45mV = (3.115*1024)/5 = 638,952 ~639                 //1.96+(0.235*4.9)=3.115
 minimo235=((2.02-(0.235*4.9))*1024/5);                             //Calculo do valor minimo
 maximo235=((2.02+(0.235*4.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
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3108
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
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...
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3108
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Condensador na entrada do AD?

Já meteste um osciloscópio?
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 +/-.
 
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3108
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Como tens o circuito ligado?

As tensões antes desses 3,5 estão todas correctas?
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Jr. Member
**
Karma: 0
Posts: 97
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code:

 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
Logged

Pages: 1 2 3 [4] 5   Go Up
Jump to: