Go Down

Topic: Cálculo da corrente/hora e potência/hora (Read 2189 times) previous topic - next topic

wilsonalves

Pessoal precisava que me dissessem como se programa o arduino para me dar corrente/hora e tensão/hora, sendo que dois dos meus sensores tem uma tensão  12Volts e o outro uma tensão de 230V.

Cumprimentos

wilsonalves

Pessoal precisava que me dissessem como se programa o arduino para me dar corrente/hora e tensão/hora, sendo que dois dos meus sensores tem uma tensão  12Volts e o outro uma tensão de 230V.
E tenho os três sensores a medir corrente e tensão  positiva e negativa mas quero por dois deles a que por exemplo quando a corrente/potência chegasse a -1 escrevesse erro porque nestes dois não quero medir corrente negativa.
Vou pôr o código de um dos sensores para que me possam ajudar.
Code: [Select]
//-----------------------Sensor de corrente 100A(RC)----------------------------------------------------------------
  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.9765-(0.1*9.7515))*1024/5);                       // Calculo do valor minimo
  maximo100=((1.9765+(0.1*9.7515))*1024/5);                       // Calculo do valor máximo
  corrente100 = map(valor100, minimo100, maximo100, -1, 10000);// Calculo da corrente
  corrente100 = corrente100/1000;
/*  if 1.9765 <= 0*/   
  Serial.print("RC:");                                            // Apresentação da sigla do regulador de carga no Serial Monitor
  Serial.print(corrente100);                                      // 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(corrente100);                                         // Apresentação da corrente do regulador de carga no LCD

  PRC=TRC*corrente100;                                            // 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);                                                   



Cumprimentos

bubulindo

Dá uma vista aqui.

http://openenergymonitor.org/emon/buildingblocks/ac-power-arduino-maths
This... is a hobby.

wilsonalves

Mas como é que aplico a formula dada no site para o meu projeto de forma a conseguir calcular a potencia/hora e a corrente/hora??
Não estou a conseguir aplicá-la de forma nenhuma e não sei o que posso estar a fazer mal.
Vou retirar valores instantâneos todos os segundos e depois fazer a média desses valores por hora certo não estou a conseguir fazer o código.
Cumprimentos e peço desculpa se ás vezes faço perguntas que às quais as respostas parecem óbvias.



bubulindo

O que tu queres saber é o numero de W e A que usaste por hora.

Se fizeres um gráfico que tem a potência (W) no eixo do Y e o tempo no eixo do X, se calculares a área que esse gráfico te dá, ficas com o valor da energia.
Mas o Arduino não está aqui para fazer gráficos e calcular áreas graficamente, então a aproximação (nota que é sempre uma aproximação) que podes fazer é calcular uma área entre medições de potência.

Imagina que tiras uma medição da potência de segundo a segundo (apenas um exemplo) conforme esta tabela:

P[0] = 10 kW
P[1] = 10 kW
P[2] = 15 kW
P[3] = 15 kW
P[4] = 10 kW

A energia (ou seja, kWh) seria algo como:

kWh = 10 * (1/3600) + 10 * (1/3600) + 15 * (1/3600) + 15 * (1/3600) + 10 * (1/3600)

Ou seja, estavas a calcular a área do "gráfico" de segundo a segundo.

Estás a entender agora o conceito?
This... is a hobby.

wilsonalves

Sim eu já entendi a lógica o meu problema é como passo isso para o arduino eu tenho os sensores a debitarem-me corrente instantanea segundo a segundo como é que faço a programação para me fazer o calculo por hora esse é o meu problema.

bubulindo

Qual é a parte do que eu coloquei no post anterior que não entendes?

This... is a hobby.

wilsonalves

O que eu não entendo é como é que passo o que foi escrito em cima para programação ou seja como se põe no arduino!!!!

bubulindo

Ou seja, queres que alguém faça o programa por ti.

Não tem muito que saber, tens um ciclo e vais adicionando a potência a dividir por 3600 a uma variável. Ou... somas a potência de segundo a segundo e no final duma hora tens o teu valor de kWh.

This... is a hobby.

wilsonalves

Não é querer que alguém faça o código por mim sendo novo nisto existe muita coisa mesmo que não sei e quero aprender tenho noção que o projeto que me deram para fazer é super ambicioso para as minhas capacidades neste momento mas não vou desistir tenho de o conseguir acabar minimamente daí estar a chatea-lo muita vez
E a minha principal dificuldade é mesmo a programação e a forma de converter aquilo que tenho no papel para a programação.

Cumpts

Go Up