ELFORUM - Forumul electronistilor

# Afisare W\h

## Recommended Posts

Am o problema cu afisarea totala a puterii la un incarcator solar, si anume, totul merge ok pana cand variabilele se schimba, daca V si A sunt constanti tot timpul nu e nici o problema, deci as avea nevoie ca arduino sa adauge puterea curenta cu puterea de acum 10ms sa zicem. In codul actual, daca sa zicem A = 0, toata ecuatia e 0. atasez codul.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
float V1 = 0.0;
float V2 = 0.0;
float V3 = 0.0;
float V4 = 0.0;
float V5 = 0.0;
float V6 = 0.0;

void setup(void)
{
lcd.init();
lcd.backlight();
Serial.begin(9600);
}
unsigned long startMillis;
unsigned long currentMillis;
unsigned long elapsedMillis;

void loop(void)
{
V1 = (adc1 * 0.0001875) * 6;
V2 = (adc2 * 0.0001875) * 6;
V3 = (adc3 * 0.0001875) * 6;
V4 = (adc4 * 0.0001875) * 10;
V5 = (adc5 * 0.0001875) * 10;
V6 = (adc6 * 0.0001875) * 10;

currentMillis = millis();
elapsedMillis = (currentMillis - startMillis);
unsigned long SS = (elapsedMillis / 1000) % 60;
unsigned long MM = (elapsedMillis / (60000)) % 60;
unsigned long HH = (elapsedMillis / (3600000));

lcd.setCursor(0, 0);
lcd.print(V1, 2);
lcd.setCursor(5, 0);
lcd.print("V");
lcd.setCursor(7, 0);
lcd.print(V2, 2);
lcd.setCursor(12, 0);
lcd.print("V");
lcd.setCursor(14, 0);
lcd.print(V3, 2);
lcd.setCursor(19, 0);
lcd.print("V");

lcd.setCursor(0, 1);
lcd.print(V4, 2);
lcd.setCursor(5, 1);
lcd.print("A");
lcd.setCursor(7, 1);
lcd.print(V5, 2);
lcd.setCursor(12, 1);
lcd.print("A");
lcd.setCursor(14, 1);
lcd.print(V6, 2);
lcd.setCursor(19, 1);
lcd.print("A");

lcd.setCursor(0, 2);
lcd.print(V1 * V4, 1);
lcd.setCursor(5, 2);
lcd.print("W");
lcd.setCursor(7, 2);
lcd.print(V2 * V5, 1);
lcd.setCursor(12, 2);
lcd.print("W");
lcd.setCursor(14, 2);
lcd.print(V3 * V6, 1);
lcd.setCursor(19, 2);
lcd.print("W");

lcd.setCursor(0, 3);
lcd.print((((V1 * V4) + (V2 * V5)) * elapsedMillis) / 3600000, 0);
lcd.setCursor(7, 3);
lcd.print(((V3 * V6) * elapsedMillis) / 3600000, 0);
lcd.setCursor(14, 3);
lcd.print(MM);
lcd.setCursor(17, 3);
lcd.print(":");
lcd.setCursor(19, 3);
lcd.print(" ");
lcd.setCursor(18, 3);
lcd.print(SS);
}

• Replies 6
• Created

#### Popular Days

Foloseşti o variabilă float "energy" care pleacă de la zero şi la fiecare ciclu de 10ms se incrementează cu V x A x 1 / 360000.

energy = energy += V * A * 1/360000;

Dacă schimbi viteza buclei trebuie modificat şi raportul de înmulţire.

Edited by mihaicozac

da, functioneaza perfect, multumesc mult. Acum ca monitorizarea voltajelor si a curentilor e ok, o sa trec la cealalta parte, si anume la incarcarea propriu zisa a bateriilor. Daca avetio vreo idee, oricat de mica e binevenita.

Asta nu e mare scofală, stabileşti 2 praguri V_Max şi V_Min funcţie de chimia bateriilor, şi faci condiţiile:

charge = V < V_Max ? TRUE : FALSE;
digitalWrite(un_pin_liber, charge);

Variabila booleană "charge" comandă printr-o ieşire releul sau tranzistorul sau ce ai pe acolo între panoul solar şi baterie.

Asta e o funcţie de bază, în practică ar mai trebui introdus şi un histerezis ca să nu tot comute aiurea când ajunge în jurul pragului V_Max.

V_Min se poate folosi ca să decuplezi ieşirea când bateria e descărcată:

output = V > V_Min ? TRUE : FALSE;
digitalWrite(alt_pin_liber, output);

am testat asta

if (V3 < 28 )
{
if (pulseWidth != 255) pulseWidth++;
}
if (V3 > 28 )
{
if (pulseWidth = 0);
}
analogWrite(9, pulseWidth);

pare sa fie in regula pe breadboard si sa mentina voltajul la cel setat, oare ar fi ok si in realitate ?

Cum arată etajul de ieşire? de fapt cum conanzi hardware încărcarea?

O sa fie 4 N MOSFET comandati de un tc4426

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.

×   Pasted as rich text.   Restore formatting

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×

×