- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 21

Thema: AtMega8 Analogen Eingang auslesen

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    19.04.2005
    Ort
    Blender
    Beiträge
    36
    Anzeige

    Praxistest und DIY Projekte
    cool danke
    das war es natürlich, kann jetzt beide kanäle lesen!

    das einzige was jetzt noch fehlt ist:

    habe es bisher so gemacht

    Do

    ch0 lesen
    sec = wert ch0 mal formel
    motor mach nen step
    waitms sec

    loop

    das geht so natürlich nicht wenn man 2 motoren ansteuern will

    weil die sich ja in unterschiedlichen geschwindigkeiten drehen sollen
    und daher die vorgänge nebeineinander ablaufen sollten

    ^^ ich werd mal gucken ob Bascom timer hat, und probieren dann 2 timer (jeder für einen motor) und dann in der loop nur den intervall beider timer ändern ... mal sehen ob das geht...

    wenn wer ne bessere / andere idee hat wäre ich auch hier dankbar

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    19.04.2005
    Ort
    Blender
    Beiträge
    36
    Ich verdeutliche das ganze nochmal mit meinem code:

    Code:
    $crystal = 6000000
    Config Portb = Output
    Config Portc = Input
    Config Portd = Output
    Config Portd.6 = Input
    Config Portd.7 = Input
    
    Config Adc = Single , Prescaler = Auto
    
    Dim Xstandart As Integer
    Dim Ystandart As Integer
    Dim Xwert As Integer
    Dim Ywert As Integer
    Dim A As Integer
    Dim B As Integer
    Dim Minmove As Integer
    Dim Xdirectionf As Integer
    Dim Ydirectionf As Integer
    Dim Xtime As Integer
    Dim Ytime As Integer
    
    
    Start Adc
    Xstandart = Getadc(1)
    Start Adc
    Ystandart = Getadc(0)
    
    
    Xtime = 0
    Ytime = 0
    Minmove = 21
    A = 1
    B = 1
    Do
    'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Start Adc
    Xwert = Getadc(1)
    
    If Xwert < Xstandart Then
       A = Xstandart - Xwert
       A = 160 - A
       A = A / 10
       Xdirectionf = 1
       If A < 1 Then
          A = 1
       End If
    Elseif Xwert > Xstandart Then
       A = Xwert - Xstandart
       A = 250 - A
       A = A / 10
       Xdirectionf = 0
       If A < 1 Then
             A = 1
       End If
    End If
    'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
    Start Adc
    Ywert = Getadc(0)
    
    If Ywert < Ystandart Then
       B = Ystandart - Ywert
       B = 140 - B
       B = B / 10
       Ydirectionf = 1
       If B < 1 Then
          B = 1
       End If
    Elseif Ywert > Ystandart Then
       B = Ywert - Ystandart
       B = 300 - B
       B = B / 10
       Ydirectionf = 0
       If B < 1 Then
             B = 1
       End If
    End If
    'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
    'XXXXX --- MOVE --- XXXXXXXXXXXXXX
    If A < Minmove Then
    
       If Xdirectionf = 1 Then
    
          Xtime = Xtime + 1
    
          If Xtime = 5 Then
             Xtime = 1
          End If
    
          If Xtime = 1 Then
          Portb.0 = 1
          Portb.1 = 0
          Portb.2 = 1
          Portb.3 = 0
          Elseif Xtime = 2 Then
          Portb.0 = 1
          Portb.1 = 0
          Portb.2 = 0
          Portb.3 = 1
          Elseif Xtime = 3 Then
          Portb.0 = 0
          Portb.1 = 1
          Portb.2 = 0
          Portb.3 = 1
          Elseif Xtime = 4 Then
          Portb.0 = 0
          Portb.1 = 1
          Portb.2 = 1
          Portb.3 = 0
          End If
    
       Else
    
          Xtime = Xtime + 1
    
          If Xtime = 5 Then
             Xtime = 1
          End If
    
          If Xtime = 1 Then
          Portb.0 = 1
          Portb.1 = 0
          Portb.2 = 1
          Portb.3 = 0
          Elseif Xtime = 2 Then
          Portb.0 = 0
          Portb.1 = 1
          Portb.2 = 1
          Portb.3 = 0
          Elseif Xtime = 3 Then
          Portb.0 = 0
          Portb.1 = 1
          Portb.2 = 0
          Portb.3 = 1
          Elseif Xtime = 4 Then
          Portb.0 = 1
          Portb.1 = 0
          Portb.2 = 0
          Portb.3 = 1
          End If
    
       End If
    
       Waitms A                                                 '<<<< PROBLEM! B + A vvv = Für beide Motoren die gleiche, zu lange wartezeit
    
    End If
    'XXXXX --- MOVE --- XXXXXXXXXXXXXX
    'YYYYY --- MOVE --- YYYYYYYYYYYYYY
    If B < Minmove Then
    
       If Ydirectionf = 1 Then
    
          Ytime = Ytime + 1
    
          If Ytime = 5 Then
             Ytime = 1
          End If
    
          If Ytime = 1 Then
          Portd.0 = 1
          Portd.1 = 0
          Portd.2 = 1
          Portd.3 = 0
          Elseif Ytime = 2 Then
          Portd.0 = 1
          Portd.1 = 0
          Portd.2 = 0
          Portd.3 = 1
          Elseif Ytime = 3 Then
          Portd.0 = 0
          Portd.1 = 1
          Portd.2 = 0
          Portd.3 = 1
          Elseif Ytime = 4 Then
          Portd.0 = 0
          Portd.1 = 1
          Portd.2 = 1
          Portd.3 = 0
          End If
    
       Else
    
          Ytime = Ytime + 1
    
          If Ytime = 5 Then
             Ytime = 1
          End If
    
          If Ytime = 1 Then
          Portd.0 = 1
          Portd.1 = 0
          Portd.2 = 1
          Portd.3 = 0
          Elseif Ytime = 2 Then
          Portd.0 = 0
          Portd.1 = 1
          Portd.2 = 1
          Portd.3 = 0
          Elseif Ytime = 3 Then
          Portd.0 = 0
          Portd.1 = 1
          Portd.2 = 0
          Portd.3 = 1
          Elseif Ytime = 4 Then
          Portd.0 = 1
          Portd.1 = 0
          Portd.2 = 0
          Portd.3 = 1
          End If
    
       End If
    
       Waitms B                                                 '<<<< PROBLEM! B + A^^^= Für beide Motoren die gleiche, zu lange wartezeit
    
    End If
    'YYYYY --- MOVE --- YYYYYYYYYYYYYY
    
    Loop

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    35
    Beiträge
    470
    kann das sein, das a = 4.3 ist und du die dan als variable im Waitms nimmst, das macht der Compiler nicht mit, man kann nur ganzzahlen warten, wenn du unbedingt 4.3 ms warte willst dan rechne se in µSek.
    4.3 ms = 4300µSek.
    Waitu 4300

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    19.04.2005
    Ort
    Blender
    Beiträge
    36
    hehe, ne das warten funktionier schon

    Weiß nich genau wie das Problem beschreiben soll

    Es gibt nen X motor und nen Y motor
    nen X potie und nen Y potie

    momentan funktinieren beide motoren wenn man nur EINEN potie zur zeit aus der Nullstellung bringt

    wenn man beide poties bewegt drehen sich die motoren gleich schnell und extrem langsam - weil beide warte zeiten hintereinander geschaltet werden

    Also vielleicht versteht ihr es so ^^ oder wenn ihr den code da oben (den letzten) durchgeht

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    19.04.2005
    Ort
    Blender
    Beiträge
    36
    versteht ihr wenigstens mein problem ?

  6. #16
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.02.2005
    Ort
    Wels
    Alter
    62
    Beiträge
    512
    Zitat Zitat von gRaf-eny
    versteht ihr wenigstens mein problem ?
    bringt dir zwar nix, aber ich verfolge das ganze natürlich - bin bloss hardwaremässig noch nicht soweit, um da mitmachen zu können.
    mfg knacki

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Ich glaube, ich verstehe dein Problem, aber nicht wie die Lösung aussehen soll.

    Du hast 2 Motoren und ein Joystick? Der Joystick soll die beiden Motoren so drehen wie du den Joystick bewegst?

    Dein Code hat leider etwa wenig Kommentare und bedarf etwas mehr Nachdenken um ihn zu verstehen Wie werden denn die Motoren angetrieben? Das ganze sieht auf dem ersten Blick etwas binär aus

    Wofür sind die waitms? Und wie soll sich A und B errechnen?

    Das sind erstmal meine Fragen die mir zum Verständnis fehlen.
    Wenn ich nach den Antworten alles nachvollziehen kann, werd ich morgen Abend mal versuchen was zu schreiben. Sofern das Problem bis dahin noch nicht gelöst ist.

  8. #18
    Benutzer Stammmitglied
    Registriert seit
    19.04.2005
    Ort
    Blender
    Beiträge
    36
    Ja richtig, wenn ich den Joystick nach links drücke soll sich motor 1 nach links drehen - wenn ich den Js weit nach links drücke soll sich motor 1 schneller nach links drehen (das gleiche rechts)

    wenn den joystick nach oben drücke soll sich motor 2 nach links drehen,
    entsprechend weitwer nach oben drücken - schneller

    einzelnt ( also nur eine achse vom joystick benutzen) funktioniert es mit dem code ^^^ schon

    ----

    die wait ms benutze ich momentan folgend:

    eine motor umdrehung besteht aus 4 schritten
    zwischen jedem schritt wartet der motor kurz (A für Motor 1 B für Motor 2)

    umsoweiter ich den joystick in eine richtung bewege -> umsokleiner wird die anzahl der sekunden der wartephase -> umsoschneller dreht der motor

    Jeder motor ( x achse / y achse ) müsste in einem selbständigen loop, parallel zum anderen, laufen, damit nicht die wartezeit von motor 1 die wartezeit von motor 2 beinflusst


    Momentan sieht es so aus:

    Do

    Motor x dreht sich
    Wartet A sekunden (durch den potie der x achse vom joystick errechnet)

    Motor y dreht sich
    Wartet B sekunden ( durch den potie der y achse vom joystick errechnet)

    Loop

    das heißt, dass nach dem warten von motor x sich erst motor y dreht, dann die wartezeit von motor y kommt und sich erst dann wieder motor x dreht -> warte zeit x -> motory -> wartezeit y -> ....

    Es muss aber so aussehen:

    motor x dreht
    wartet A
    motor x dreht
    wartet A
    motor x dreht
    wartet A
    motor x dreht
    wartet A


    und NEBENHER

    motor y dreht
    wartet B
    motor y dreht
    wartet B
    motor y dreht
    wartet B
    motor y dreht
    wartet B
    motor y dreht
    wartet B
    motor y dreht
    wartet B

    und während das passiert muss auch noch ständig die potiestellung des joysticks ausgelesen werden und dann aus den gewonnen werten die neu wartezeit A, B errechnet werden

    ^----------
    hehe, also ich hoffe es ist jetzt klarer > besser kann ich es nicht erklären...

    vielleicht ist mein ansatz auch schon total falsch!?

    2 Schrittmotoren müssen sich in stufenlosen geschwindigkeiten in beide richtungen drehen lassen:

    Der Joystick liefert in nullstellung folgende werte:
    X-Achse: 560
    Y-Achse: 560

    Der erste Vollauschlag der Achse
    X-Achse: 330
    Y-Achse: 330

    Der andere Vollausschlag der Achse
    X-Achse: 1023
    Y-Achse: 1023

    Code:
    $crystal = 6000000
    Config Portb = Output
    Config Portc = Input
    Config Portd = Output
    Config Portd.6 = Input
    Config Portd.7 = Input
    
    Config Adc = Single , Prescaler = Auto
    
    Dim Xstandart As Integer
    Dim Ystandart As Integer
    Dim Xwert As Integer
    Dim Ywert As Integer
    Dim A As Integer
    Dim B As Integer
    Dim Minmove As Integer
    Dim Xdirectionf As Integer
    Dim Ydirectionf As Integer
    Dim Xtime As Integer
    Dim Ytime As Integer
    
    
    Start Adc
    Xstandart = Getadc(1)                                       ' Der X-Achsen Wert des Joysticks wird ausgelesen (Die Nullstellungs Wert [sollte zwischen 500 und 600 liegen])
    Start Adc
    Ystandart = Getadc(0)                                       ' Der Y-Achsen ...^^
    
    
    Xtime = 0                                                   ' (eine Umdrehung Des Motors Besteht Aus Vier Schritten - Variable Dient Dazu , Zu Wissen Welcher Schritt Gerade Dran Ist)
    Ytime = 0                                                   ' ^^
    Minmove =                                                   '21 Die Minimal Wert , Bei Dem Sich Der Motor Anfängt Zu Drehen(um Die Nullstellung Des Joysticks Zu Vergrössern)
    A = 1
    B = 1
    Do
    'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Start Adc
    Xwert = Getadc(1)                                           ' X Potie wird gelesen (je nach stellung 330 -> 1023)
    
    If Xwert < Xstandart Then                                   'wenn der gelesene wert kleiner als die nullstellung ist (also der joystick nach links gedrückt wurde)
       A = Xstandart - Xwert
       A = 160 - A
       A = A / 10
       Xdirectionf = 1                                          'hier wird die drehrichtung festgelegt (da in A nur die wartezeit (nicht die richtung) geschrieben wird)
       If A < 1 Then                                            'damit die anzahl die milisekunden nicht unter 1 geht (der motor kann nicht schneller drehen als einen schritt pro ms)
          A = 1
       End If
    Elseif Xwert > Xstandart Then                               'wenn der gelesene wert größer als die nullstellung ist (also nach rechts)
       A = Xwert - Xstandart
       A = 250 - A
       A = A / 10
       Xdirectionf = 0                                          ' ^^
       If A < 1 Then                                            'damit die anzahl die milisekunden nicht unter 1 geht (der motor kann nicht schneller drehen als einen schritt pro ms)
             A = 1
       End If
    End If
    'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
    Start Adc
    Ywert = Getadc(0)
    
    If Ywert < Ystandart Then                                   'wenn der gelesene wert kleiner als ns -> joystick nach oben
       B = Ystandart - Ywert
       B = 140 - B
       B = B / 10
       Ydirectionf = 1                                          '^^
       If B < 1 Then                                            'damit die anzahl die milisekunden nicht unter 1 geht (der motor kann nicht schneller drehen als einen schritt pro ms)
          B = 1
       End If
    '#############################
    'Durch Diese Rechnung ^ ^ ^ Wird Bei Allen Joystick Ausschlägen(potie 330 Bis 1023
    'Eine Anzahl von milisekunden errechnet:
    'bei joystick nullstellung ca 30 ms
    'bei joystick vollausschlag 1 ms
    'damit der motor sich in nullstellung nicht auch schon (auch wenn sehr langsam) dreht
    'habe ich die minmove variable die weiter unten abgefragt wird
    '#############################
    Elseif Ywert > Ystandart Then                               'wenn der gelesene wert größer als ns --> joystick nach unten
       B = Ywert - Ystandart
       B = 300 - B
       B = B / 10
       Ydirectionf = 0                                          '^^
       If B < 1 Then                                            'damit die anzahl die milisekunden nicht unter 1 geht (der motor kann nicht schneller drehen als einen schritt pro ms)
             B = 1
       End If
    End If
    'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
    'XXXXX --- MOVE --- XXXXXXXXXXXXXX
    If A < Minmove Then                                         'wenn der A wert kleiner ist als die minmove variable dann dreht sich der motor:
    
       If Xdirectionf = 1 Then                                  'wenn die richtung = 1 ist : folgen die ausgänge für den motor sich links zu drehen
    
          Xtime = Xtime + 1
    
          If Xtime = 5 Then
             Xtime = 1
          End If
    
          If Xtime = 1 Then
          Portb.0 = 1
          Portb.1 = 0
          Portb.2 = 1
          Portb.3 = 0
          Elseif Xtime = 2 Then
          Portb.0 = 1
          Portb.1 = 0
          Portb.2 = 0
          Portb.3 = 1
          Elseif Xtime = 3 Then
          Portb.0 = 0
          Portb.1 = 1
          Portb.2 = 0
          Portb.3 = 1
          Elseif Xtime = 4 Then
          Portb.0 = 0
          Portb.1 = 1
          Portb.2 = 1
          Portb.3 = 0
          End If
    
       Else                                                     'wenn die richtung = 0 ist : folgen die ausgänge für den motor sich rechts zu drehen
    
          Xtime = Xtime + 1
    
          If Xtime = 5 Then
             Xtime = 1
          End If
    
          If Xtime = 1 Then
          Portb.0 = 1
          Portb.1 = 0
          Portb.2 = 1
          Portb.3 = 0
          Elseif Xtime = 2 Then
          Portb.0 = 0
          Portb.1 = 1
          Portb.2 = 1
          Portb.3 = 0
          Elseif Xtime = 3 Then
          Portb.0 = 0
          Portb.1 = 1
          Portb.2 = 0
          Portb.3 = 1
          Elseif Xtime = 4 Then
          Portb.0 = 1
          Portb.1 = 0
          Portb.2 = 0
          Portb.3 = 1
          End If
    
       End If
    
       Waitms A                                                 '<<<< PROBLEM! B + A vvv = Für beide Motoren die gleiche, zu lange wartezeit
    
    End If
    'XXXXX --- MOVE --- XXXXXXXXXXXXXX
    'YYYYY --- MOVE --- YYYYYYYYYYYYYY
    If B < Minmove Then
    
       If Ydirectionf = 1 Then                                  '^^
    
          Ytime = Ytime + 1
    
          If Ytime = 5 Then
             Ytime = 1
          End If
    
          If Ytime = 1 Then
          Portd.0 = 1
          Portd.1 = 0
          Portd.2 = 1
          Portd.3 = 0
          Elseif Ytime = 2 Then
          Portd.0 = 1
          Portd.1 = 0
          Portd.2 = 0
          Portd.3 = 1
          Elseif Ytime = 3 Then
          Portd.0 = 0
          Portd.1 = 1
          Portd.2 = 0
          Portd.3 = 1
          Elseif Ytime = 4 Then
          Portd.0 = 0
          Portd.1 = 1
          Portd.2 = 1
          Portd.3 = 0
          End If
    
       Else                                                     '^^
    
          Ytime = Ytime + 1
    
          If Ytime = 5 Then
             Ytime = 1
          End If
    
          If Ytime = 1 Then
          Portd.0 = 1
          Portd.1 = 0
          Portd.2 = 1
          Portd.3 = 0
          Elseif Ytime = 2 Then
          Portd.0 = 0
          Portd.1 = 1
          Portd.2 = 1
          Portd.3 = 0
          Elseif Ytime = 3 Then
          Portd.0 = 0
          Portd.1 = 1
          Portd.2 = 0
          Portd.3 = 1
          Elseif Ytime = 4 Then
          Portd.0 = 1
          Portd.1 = 0
          Portd.2 = 0
          Portd.3 = 1
          End If
    
       End If
    
       Waitms B                                                 '<<<< PROBLEM! B + A^^^= Für beide Motoren die gleiche, zu lange wartezeit
    
    End If
    'YYYYY --- MOVE --- YYYYYYYYYYYYYY
    
    Loop

  9. #19
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Jetzt bin ich voll im Bilde (denke ich).

    Ich würd sowieso erstmal Config ADC = Free wählen. Damit wirden alle Messungen nach der ersten schneller ausgeführt. Wirkt sich zwar nicht auf dein Problem aus, aber ist irgendwo praktischer.
    Danach gleich Start ADC. Der muss nicht vor jede Abfrage gestartet werden. Besonders nicht wenn er nicht gestoppt wurde. Aber ich denke, das ignoriert Bascom schon von alleine.

    Ein Programm habe ich noch nicht geschrieben. Ich komm grade von der Arbeit und hab da jetzt nicht mehr so viel Lust zu, Sorry. Aber ein paar Denkanstöße helfen evtl?!

    Für X und Y hast du im Prinzip jeweils ein Programmteil. Ich würde die beide zusammenmischen.
    Also das beide Richtungen am JS abgefragt werden und dann für beides gleich die Berechnungen durchgeführt werden.
    Und dann kommt der eigentliche Knackpunkt.
    Jede Richtung alleine funktioniert ja so wie du es haben willst. Nur die Wartezeiten im Programm sind die, die stören.
    In der Zeit macht der Prozessor ja auch nix anderes als für X ms nichts ausführen. In der Zeit könnte er ja schonmal den anderen Motor bewegen.

    Ich habe heute morgen um kurz nach 5 noch dein Beitrag gelesen und hatte etwas Zeit drüber nachzudenken.

    Zwei Lösungsmöglichkeiten seh ich da auf anhieb. Eine aufwendiger als die andere
    Die dritte wäre gewesen jeweils ein (kleineren) AVR für X und Y nehmen.

    Die 1. ist:
    In der waitms-Phase wartet der AVR brav. Das muss geändert werden.

    Jetzt beim Schreiben kommt mir noch ne andere Idee, die ich noch besser finde

    Alle 10ms ein Interrupt ausführen.
    In der ISR eine Variable hochzählen lassen. Anhand des Werts weisst du dann, wieviele ms schon vorbei sind. Wenn beide Aktionen ausgeführt sind, die Variable wieder auf 0 setzen. Oder besser gesagt, dann auf 0 setzen, wenn die nächste Aktion ansteht.
    Das Problem mit den Richtungen und unterschiedlichen Geschwindigkeiten pro Richtung in Anhänigkeit wie stark man den JS biegt hast du ja im Griff. Da will ich mich jetzt nicht weiter reindenken.
    Wenn z.B. eine Pause für X 100ms sein soll und die für Y 200ms, dann X so lange bewegen bis der Zähler auf 10 steht. Wenn er über 10 ist nix weiter nachen. Und Y bis 20 bewegen. Dan sind es etwas mehr als 100ms und 200ms, weil das Aufrufen der ISR auch etwas Zeit benötigt, aber die Zeit bis der Interrupt ausgelöst wird kann man ja anpassen wenn es so nicht optimal ist.

    So, müsste ich das jetzt lesen was ich geschrieben habe, würd ich es als ausenstehender nicht verstehen

    Die Kurzfassung:

    Ein Timer programmieren, der alle 10 ms (oder besser den höchsten gemeinsamen Teiler der gewünschten Pausenzeiten) auslöst.
    Wenn der JS bewegt wird, den Timerinterrupt aktivieren.
    In der ISR eine Variable hochzählen.
    Mit der Variable die Schritte für X und Y durchführen.
    Wenn X und Y fertig sind, die Variable auf 0 setzen und den Timerinterrupt deaktivieren.

    Ich hoffe ich habe da jetzt kein Denkfehler drin!

  10. #20
    Benutzer Stammmitglied
    Registriert seit
    19.04.2005
    Ort
    Blender
    Beiträge
    36
    mhh ^^ habs bisher nur teilweise verstanden... aber werds noch ein paar mal lesen...
    dabei ist mir aber selbst schon was eingefallen (glaub ich)
    dazu müsste ich aber eine Sub haben

    Also

    Do
    blablabla
    blablabla
    Sub Motor Drehdich
    blabalaba
    blablabla
    bla
    Sub Motor Drehdich

    Do

    (Ansonsten wäre es verdammt viel zu schreiben...)
    Weiß wer wie das geht?

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress