- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte
Ergebnis 41 bis 50 von 66

Thema: projekt: asuro sucht selbständig seine ladestation

  1. #41
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    Anzeige

    Powerstation Test
    die asuro Bücher nutzen die lib von der cd. tie timebase ist da nicht 36khz, sondern 72 khz was alles zeitkritischen dinge versuat
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  2. #42
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    hi damaltor,
    ich habe jetzt die ausgabe in der funktion geändert, schlau werde ich daraus nicht...
    Code:
    void batt_abfrage(void)
    {
    int batt_1,batt_2, batt_3, spannung;
    float spannung_1;
    
    
    	batt_1=Batterie();
    	batt_2=Batterie();
    	batt_3=Batterie();
    	if (batt_1<(batt_2-batt_2/100)) batt_1=Batterie();
    
    	if (batt_2<(batt_3-batt_3/100)) batt_2=Batterie();
    
    	if (batt_3<(batt_1-batt_1/100)) batt_3=Batterie();
    
    	spannung_1=(batt_3 + batt_2 + batt_1)/535.1;
    	spannung=(batt_3 + batt_2 + batt_1)*100/535;
    
    	SerWrite("\r\n batt_1: ",11);
    	PrintInt(batt_1);
    	SerWrite(" batt_2: ",9);
        PrintInt(batt_2);
    	SerWrite(" batt_3: ",9);
        PrintInt(batt_3);
    	SerWrite(" spannung: ",11);
    	PrintInt(spannung);
    	SerWrite(" spannung_1: ",13);
    	PrintFloat(spannung_1, 1, 5);
    
    }
    die ausgabe:
    Code:
     batt_1: 941 batt_2: 940 batt_3: 940 spannung: 37 spannung_1: 5.27191
     batt_1: 941 batt_2: 941 batt_3: 941 spannung: 37 spannung_1: 5.27564
     batt_1: 940 batt_2: 940 batt_3: 941 spannung: 37 spannung_1: 5.27191
     batt_1: 941 batt_2: 941 batt_3: 941 spannung: 37 spannung_1: 5.27564
     batt_1: 941 batt_2: 941 batt_3: 941 spannung: 37 spannung_1: 5.27564
     batt_1: 941 batt_2: 940 batt_3: 941 spannung: 37 spannung_1: 5.27378
     batt_1: 940 batt_2: 941 batt_3: 940 spannung: 37 spannung_1: 5.27191
     batt_1: 941 batt_2: 941 batt_3: 940 spannung: 37 spannung_1: 5.27378
     batt_1: 940 batt_2: 939 batt_3: 940 spannung: 36 spannung_1: 5.26817
     batt_1: 940 batt_2: 940 batt_3: 940 spannung: 37 spannung_1: 5.27004
     batt_1: 939 batt_2: 940 batt_3: 940 spannung: 36 spannung_1: 5.26817
    wie erkenne ich woher bei der spannung die 37, bzw. 36 kommen? ich dachte es werden dann (auch wenn evtl. di falschen) aber immerhin ein paar stellen von dem float spannung_1 ausgegeben?
    gruß inka

  3. #43
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    int batt_1,batt_2, batt_3, spannung;
    ...
    spannung=(batt_3 + batt_2 + batt_1)*100/535;
    3*941*100=282300!

    (282300-4*65536)/535=(282300-242144)/535=37,67476635514018691588785046729

    spannung muss float sein

    [Edit]

    ach Quatsch, die Formel ist falsch:

    spannung=(batt_3 + batt_2 + batt_1)*10/535;

    3*941*10/535=28230/535=52(,76635514018691588785046728972)

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #44
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    hmm da stimmt irgendwas nich so ganz... so hab ich das nicht gemeint =)

    versuch mal: spannung=(batt_3 + batt_2 + batt_1)*1000/5351;
    das sollte 2 kommastellen ergeben. das ziel war, von der 535.1 das komma zu entfernen, da wir jetzt durch 5351 teilen würde das ergebnis nur 1/10 der wirklcihen spannung darstellen. also nur zahlen hinter dem komma, das wäre nicht das ziel gewesen da die komma stellen ja abgeschnitten werden.

    wenn wir die zahl jedoch vorher mit 1000 multiplizieren, bekommen wir anstatt 0.527 jetzt 527, also 5,27 volt.

    batt_1 = 941
    batt_2 = 941
    batt_3 = 940
    batt_1+2+3 = 2822
    2822*1000 = 2822000 (...hier könnte ganz evtl ein problem mit dem int überlauf entstehen... probiers trotzdem mal)
    2822000 / 5351 = 527.37806
    dabvei wird 527 gespeichert, also 5.27 volt. das kannst du dann entweder bei der ausgabe beachten dass an passender stelle ien punkt eingefügt wird, oder du arbeitest einfach mit diesem wert und sparst dir den umstand.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  5. #45
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Natürlich gibt die erste Version mit Faktor 100 einen Int-Überlauf, habe ich doch oben vorgerechnet. Die Formel für spannung sieht so aus:
    Code:
       spannung_1=(batt_3 + batt_2 + batt_1)/535.1; 
       spannung=(batt_3 + batt_2 + batt_1)*100/535;
    Es sollte aber so aussehen:
    Code:
       spannung_1=(batt_3 + batt_2 + batt_1)/535.1; 
       spannung=(batt_3 + batt_2 + batt_1)*10/5351;
    Zähler und Nenner mal 10, dann stimmts auch mit dem Komma im Ergebniss...

    Ach, ich Depp, ihr wollt doch gar keine Kommas haben, blöd wenn man nicht alles liest. Sorry. Wäre vielleicht das die richtige Lösung:

    Code:
    spannung_1=(batt_3 + batt_2 + batt_1)/535.1;
    spannung=(int) spannung_1*100;
    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #46
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    die erst elösung hilft nicht, weil keine kommastellen gewollt sind, ist wahr. und die zweite lösung hilft auch nicht, wel in der zwischenvariable spannung_1 trotzdem wieder kommas sind =) es geht darum die floats völlig zu vermeiden. mehr ideen? das problem ist wenn man erst teilt und dann mit 100 multipliziert ohne floats zu nutzen, bekommt man nur ne null...
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  7. #47
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo inka,

    was habe ich bei der initialisierung des lcd vergessen? Zumindest in der lcd.c habe ich weiter nichts gefunden?
    das LCD aus dem Asuro Buch II funktioniert erst, wenn man im Header File
    i2c.h die beiden Defines für den I2C Bus folgendermaßen ändert.

    Code:
    #define SDA     PC2
    #define SCL     PC3
    De AsuroLib und die Programme müssen dann natürlich anschließend neu übersetzt werden.

  8. #48
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    hi m.a.r.v.i.n.
    Zitat Zitat von m.a.r.v.i.n
    Code:
    #define SDA     PC2
    #define SCL     PC3
    De AsuroLib und die Programme müssen dann natürlich anschließend neu übersetzt werden.
    damit habe ich wohl immer noch probleme: mit AVR studio heisst "neu übersetzen":
    - ändern
    - rebuilt all
    - flash...???

    ausser dass die status-led beim starten von asuro von gelb in grün wechselt passiert aber leider nix
    gruß inka

  9. #49
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    rebuild all =) alle neu aufbauen
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  10. #50
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    ok,
    hatte noch einen fehler drinn, immerhin kann ich jetzt die hintergrundbeleuchtung des diaplays einschalten, ausschalten geht komischerweise mit "BacklightLCD(OFF);" nicht
    gruß inka

Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress