Arduino nano arbeitet ohne Display nicht.

Gast #7126165
Lesenswert?

1
#include <Wire.h>
2
#include <LiquidCrystal_I2C.h> // A4=SDA, A5=SCL https://arduinogetstarted.com/tutorials/arduino-lcd-i2c
3
LiquidCrystal_I2C lcd(0x27, 16, 2); //Brabander I2C address 0x27, 16 column and 2 rows
4

5
.
6
.
7
.
8
.
9
.
10

11
void setup() {
12
  Serial.begin(9600);
13
  lcd.begin(16, 2);
14
  lcd.init();
15
  lcd.backlight(); 
16
  lcd.setCursor(0, 0); // Stelle, Zeile
17
  lcd.print("L    M    R     ");  
18
  lcd.setCursor(0, 1); // Stelle, Zeile
19
  lcd.print("                ");
20
  plast = 0;   
21
  pinMode(resetoutpin,OUTPUT);
22
  digitalWrite(resetoutpin,HIGH);
23
  pinMode(relxpin,OUTPUT);
24
  digitalWrite(relxpin,LOW);
25
  pinMode(relypin,OUTPUT);
26
  pinMode(relzpin,OUTPUT);
27
  pinMode(boardledpin,OUTPUT);
28
  niedrig = richtwertniedrig;
29
  mittel = richtwertmittel;
30
  hoch = richtwerthoch;
31
  pinMode(inselpin,INPUT_PULLUP);
32
  pinMode(testpinniedrig,INPUT_PULLUP);
33
  pinMode(testpinmittel,INPUT_PULLUP);
34
  pinMode(testpinhoch,INPUT_PULLUP);
35
  pinMode(netzpin,INPUT_PULLUP);
36
  
37
}
38

39
void loop() {

Mir ist aufgefallen, dass der Arduino nicht arbeitet, wenn
das Display nicht angesteckt ist.
Sogar der interne Pullup geht nicht.

Was kann man machen, damit er auch ohne Display arbeitet?
nano old bootlader
Gast #7126186
Lesenswert?

Ohne LCD angeschlossen, hängt die TWI Verbindung. Um dieses Problem zu 
vermeiden. muss man einen Test machen ob die TWI Verbindung 
funktioniert. Dafür gibt es TWI/I2C Scanner. Wenn der Scanner das LCD 
nicht findet, dürfen diese Zeilen:

  lcd.begin(16, 2);
  lcd.init();

nicht aufgerufen werden und auch keine weiteren LCD Anwendungsaufrufe.

Solche Scanner gibts z.B. hier:
https://create.arduino.cc/projecthub/abdularbi17/how-to-scan-i2c-address-in-arduino-eaadda

Sobald man weiß welche Adresse Dein LCD verwendet, kann man den Test auf 
das LCD alleine beziehen. Auch solltest Du die LCD Lib Doku lesen ob der 
LCD.init() oder LCD.Begin() Aufruf einen Wert zurück gibt den Du 
ausnutzen könntest.
Gast #7126252
Lesenswert?

oszi40 schrieb:
> Mal zum Test die Reihenfolge umgestellt und erst hinten das
> Display
> aufgerufen?

Ja habe ich versucht.

H. Eggert schrieb:
> Ohne LCD angeschlossen, hängt die TWI Verbindung. Um dieses Problem zu
> vermeiden. muss man einen Test machen ob die TWI Verbindung
> funktioniert. Dafür gibt es TWI/I2C Scanner. Wenn der Scanner das LCD
> nicht findet, dürfen diese Zeilen:
>
>   lcd.begin(16, 2);
>   lcd.init();
>
> nicht aufgerufen werden und auch keine weiteren LCD Anwendungsaufrufe.

Damit muss ich mich dann mal in einer ruhigen Minute befassen.

Das ist hier jetzt kein Drama. In der Regel lässt man das Display
ja dran.

Ich dachte da gäbe es was in der Art I2C geht nicht --> überspringen.
Die Lib wechseln, bitte nicht. Das ist mal eine, die an Bord ist und bis 
auf dieses hier, unproblematisch ist.
Gast #7126433
Lesenswert?

Testen

Globale Boolean-Variable deklariere und dann setzen

Und die Aufrufe dann mit IF lcd_da = true then ... " alle Aufrufe 
machen.

Die alternative ist, einfach die LIB zu ändern und den Parameter da 
abzufragen.

Da man aber i.d.R. ein LCD-Display nicht als "Usb" benutzt, hat der 
Coder (würde ich auch nicht) ein "nicht vorhanden" nicht vorgesehen.

Immerhin sind solche Teile für "fertige Geräte" gedacht.
Gast #7127297
Lesenswert?

Stefan ⛄ F. schrieb:
> Versuche es mal mit

Kompiliert leider nicht.

exit status 1

'class TwoWire' has no member named 'setWireTimeout'
1
#include <Wire.h>
2
#include <LiquidCrystal_I2C.h> // A4=SDA, A5=SCL https://arduinogetstarted.com/tutorials/arduino-lcd-i2c
3
LiquidCrystal_I2C lcd(0x27, 16, 2); //Brabander I2C address 0x27, 16 column and 2 rows
4
.
5
.
6
.
7
.
8
void setup() {
9
  Wire.begin();
10
  Wire.setWireTimeout(3000,true);
11
  Serial.begin(9600);
12
  lcd.begin(16, 2);
13
  lcd.init();
14
  lcd.backlight(); // Beleuchtung an
15
  lcd.setCursor(0, 0); // Stelle, Zeile
16
  lcd.print("L    M    R     ");  // Solarpanel Links, Mitte, Rechts
17
  lcd.setCursor(0, 1); // Stelle, Zeile
18
  lcd.print("                ");
19
  plast = 0;   
20
  pinMode(resetoutpin,OUTPUT);
21
  digitalWrite(resetoutpin,HIGH);
22
  pinMode(relxpin,OUTPUT);
23
  digitalWrite(relxpin,LOW);
24
  pinMode(relypin,OUTPUT);
25
  pinMode(relzpin,OUTPUT);
26
  pinMode(boardledpin,OUTPUT);
27
  niedrig = richtwertniedrig;
28
  mittel = richtwertmittel;
29
  hoch = richtwerthoch;
30
  pinMode(inselpin,INPUT_PULLUP);
31
  pinMode(testpinniedrig,INPUT_PULLUP);
32
  pinMode(testpinmittel,INPUT_PULLUP);
33
  pinMode(testpinhoch,INPUT_PULLUP);
34
  pinMode(netzpin,INPUT_PULLUP);
35
  
36
}
Gast #7127307
Lesenswert?

Käferlein schrieb:
> Stefan ⛄ F. schrieb:
>> Versuche es mal mit
>
> Kompiliert leider nicht.

Die Arduino IDE installiert normalerweise mit minimalen Fehlermeldung. 
Geh mal in Preferences und ändere die Einstellung dort auf "All errors" 
und poste die erhaltenen Fehler und Warnungen. Das könnte wichtig sein.
>
> exit status 1
>
> 'class TwoWire' has no member named 'setWireTimeout'

Um das Arbeits-Environment zu testen, kompilier eines der beigelegten 
Lib Examples und probiere es mit Deiner HW aus um Fehler Deinerseits zu 
minimieren bzw. auszuschließen. Das könnte wichtig sein. Nach 
Möglichkeit verwende dasselbe Bord Package und IDE Version des Autors. 
Hin und wieder wird der GCC ausgewechselt und es kann dann 
Schwierigkeiten geben. Der genannte Fehler darf bei den Beispielen nicht 
auftreten.

Es ist immer wichtig dasselbe Entwicklungs-Environment zu haben wie der 
Original Entwickler.
Gast #7127417
Lesenswert?

H. Eggert schrieb:
> Um das Arbeits-Environment zu testen, kompilier eines der beigelegten
> Lib Examples und probiere es mit Deiner HW aus um Fehler Deinerseits zu
> minimieren bzw. auszuschließen. Das könnte wichtig sein.

Du hast das Problem nicht verstanden.

Es ist KEIN Arduino-Fehler. !!!

Es ist ein Logik-Denkfehler des TO den die machen des Arduino nicht 
vorgesehen haben. Ergo gibt es nicht wirklich ein Fehlerprotokoll.

Er teste das ganze MIT Display.  Alles prima.

Dann zieht er das Display ab, und das Arduino "hängt sich auf". Was 
eigentlich nicht stimmt, er wartet eigentlich auf das Display. Bloss 
niemal hört / Sieht seine Klagen das keins da ist. Deshalb ist er 
schlecht gelaunt und macht gar nix mehr.

Ergo ist das ganze ein "Vorhersehbarer Fehler" den man abfangen muss.
Gast #7127511
Lesenswert?

Stefan S. schrieb:
> Käferlein schrieb:
>> Was kann man machen, damit er auch ohne Display arbeitet?
>
> Den vollständigen Code, Schaltplan und Fotos vom Aufbau posten.

kannst du das noch nachliefer? Mich interessiert das auch. Arbeite viel 
mit den Displays und hatte noch nie das Problem.

Gruß
Gast #7127536
Lesenswert?

Michael M. schrieb:
> und hatte noch nie das Problem.

Da hast du vollkommen Recht! Danke für den Hinweis.
Ich habe es gerade bei einer anderen Anwendung probiert.
Hier ein Setup bei dem der arduino auch ohne Display arbeitet:
1
void setup() {
2
freq1.begin(5);
3
freq2.begin(6);
4
digitalWrite(resetoutpin,HIGH);
5
pinMode(resetoutpin,OUTPUT);  
6
pinMode(nsanstpin, INPUT);  
7
pinMode(wapin, INPUT);
8
pinMode(linienstrompin, OUTPUT);
9
pinMode(schellepin, INPUT);
10
pinMode(zenerpin,OUTPUT);
11
pinMode(ledpin, OUTPUT);
12
Serial.begin(9600);
13
lcd.init(); //initialize the lcd
14
lcd.backlight(); //open the backlight 
15

16
}

Und das Setup des Codes wo es ohne Display nicht geht.
1
void setup() {
2
  Serial.begin(9600);
3
  lcd.begin(16, 2);
4
  lcd.init();
5
  lcd.backlight(); // Beleuchtung an
6
  lcd.setCursor(0, 0); // Stelle, Zeile
7
  lcd.print("L    M    R     ");  // Solarpanel Links, Mitte, Rechts
8
  lcd.setCursor(0, 1); // Stelle, Zeile
9
  lcd.print("                ");
10
  plast = 0;   
11
  pinMode(resetoutpin,OUTPUT);
12
  digitalWrite(resetoutpin,HIGH);
13
  pinMode(relxpin,OUTPUT);
14
  digitalWrite(relxpin,LOW);
15
  pinMode(relypin,OUTPUT);
16
  pinMode(relzpin,OUTPUT);
17
  pinMode(boardledpin,OUTPUT);
18
  niedrig = richtwertniedrig;
19
  mittel = richtwertmittel;
20
  hoch = richtwerthoch;
21
  pinMode(inselpin,INPUT_PULLUP);
22
  pinMode(testpinniedrig,INPUT_PULLUP);
23
  pinMode(testpinmittel,INPUT_PULLUP);
24
  pinMode(testpinhoch,INPUT_PULLUP);
25
  pinMode(netzpin,INPUT_PULLUP);
26
  
27
}

Zwei Dinge fallen mir auf.
Die Reihenfolge, kann ich ausschließen, hatte ich schon geändert 
getestet.
Und ich beschreibe das Display im Setup.

letzteres werde ich ändern und Prüfen, ob es daran liegt.
Da der Arduino meine PV-Anlage steuert, erst heute Abend.
Gast #7127543
Lesenswert?

Hi,
könntest du bitte bitte bitte den GANZEN Quellcode als xx.cpp oder 
xx.ino oder xx.c posten.
Das man deine #includes und #defines und Variable definitionen sieht.

sry so bringt das leider nichts.

Käferlein schrieb:
> Da der Arduino meine PV-Anlage steuert, erst heute Abend.

bitte auch Schaltplan dazu. Foto vom Aufbau ist glaub ich zu viel 
verlangt .. würde aber auch helfen.

Gruß
#7127546
Lesenswert?

lcd.init();

Der wertet bestimmt auf eins der PINs der ohne display nie einen 
bestimmteen pegel aufwiest. Vermutlich tut es deswegen wenn du ersmal 
die PINs initialisiert und dann denn lcd init machst. Andersrum nicht.

Versuche mal den code zu debuggen. Einfach die Funktionen durchsteppen 
und reingucken wo es hängt. Oder einfach laufen lassen, es wird ja 
hängen. Und dann pause drücken und gucken wo du stehst. Dann hast du die 
Stelle.
Würde ich in ein IDE machen wo man ordentlich debuggen kann. Sonst mit 
Arduino, weiss ich nicht ob das geht. Das ist ja nur zum spielen da.
Gast #7127556
Lesenswert?

gerade die alte LiquidCrystal_I2C aus der IDE ausprobiert.

Hello World sketch kurz angepasst,
da bleibt nichts hängen, das läuft durch.
1
#include <Wire.h>
2
#include <LiquidCrystal_I2C.h>
3

4
LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x27 for a 16 chars and 2 line display
5

6
void setup()
7
{
8
  Serial.begin(115200);
9
  lcd.init();                      // initialize the lcd
10
  lcd.init();
11
  // Print a message to the LCD.
12
  Serial.println(F("nach init"));
13
  lcd.backlight();
14
  lcd.setCursor(3, 0);
15
  lcd.print("Hello, world!");
16
  lcd.setCursor(2, 1);
17
  lcd.print("Ywrobot Arduino!");
18
  lcd.setCursor(0, 2);
19
  lcd.print("Arduino LCM IIC 2004");
20
  lcd.setCursor(2, 3);
21
  lcd.print("Power By Ec-yuan!");
22
  Serial.println(F("ende setup"));
23
}
24

25

26
void loop()
27
{
28
}

also Käferlein, VOLLSTÄNDIGEN Sketch posten, Schaltplan posten. Dann 
kann man sich das ansehen.
Gast #7127564
Lesenswert?

Michael M. schrieb:
> Hi,
> könntest du bitte

anbei.

Ist aber noch nicht ganz fertig.
Der Netzfrequenzzähler, für den PV-Wechselrichterabwurf über 51,5Hz
ab Zeile 134, ist in der Mache.
Für den Inselbetrieb wird noch die Schaltung mit dem 7805
ersetzt und geändert.
Insel ist momentan mit Jumper wählbar Zeile 148.

Die void displaybeschreiben() ist ab Zeile 408.

Was mich stutzig macht ist, dass ich in dem funktionierenden
Sketch im Setup ja die Hintergrundbeleuchtung schalte.
Trotzdem geht der ohne Display.
Gast #7127614
Lesenswert?

mach den init exakt so wie in den Beispielen. Das sind zwei init(). kein 
.begin(). das macht der init dann eh intern.

Statte deinen Sketch mit Serial print ausgaben aus, und verfolge, wo 
genau dein Programm "stehen bleibt"

das nur als idee, du wirst weiter verfolgen müssen:
1
void setup() {
2
  Serial.begin(9600);
3
  Serial.println(F("begin setup"));
4
  //lcd.begin(16, 2);
5
  Serial.println(F("init 1"));
6
  lcd.init();
7
  Serial.println(F("init 2"));
8
  lcd.init();
9
  Serial.println(F("backlight"));
10
  lcd.backlight(); // Beleuchtung an
11
  Serial.println(F("setCursor"));
12
  lcd.setCursor(0, 0); // Stelle, Zeile
13
  Serial.println(F("erstes Print"));
14
  lcd.print("L    M    R     ");  // Solarpanel Links, Mitte, Rechts
15
  lcd.setCursor(0, 1); // Stelle, Zeile
16
  lcd.print("                ");
17
  plast = 0; 
18
  Serial.println(F("erster Pinmode"));  
19
  pinMode(resetoutpin,OUTPUT);
20
  digitalWrite(resetoutpin,HIGH);
21
  pinMode(relxpin,OUTPUT);
22
  digitalWrite(relxpin,LOW);
23
  pinMode(relypin,OUTPUT);
24
  pinMode(relzpin,OUTPUT);
25
  pinMode(boardledpin,OUTPUT);
26
  niedrig = richtwertniedrig;
27
  mittel = richtwertmittel;
28
  hoch = richtwerthoch;
29
  pinMode(inselpin,INPUT_PULLUP);
30
  pinMode(testpinniedrig,INPUT_PULLUP);
31
  pinMode(testpinmittel,INPUT_PULLUP);
32
  pinMode(testpinhoch,INPUT_PULLUP);
33
  pinMode(netzpin,INPUT_PULLUP);
34
  Serial.println(F("Ende Setup"));
35
}
Gast #7127733
Lesenswert?

Käferlein schrieb:
> noiasca schrieb:
>> Das sind zwei init(). kein
>> .begin(). das macht der init dann eh intern.

das wurde ja schon geschrieben. Den Schaltplan hab ich mir noch nicht 
ageschaut. Hab dein Code mal ein bisschen ausgeräumt um den besser lesen 
zu können.

evtl. isses das gewesen zu oft .ini() und .begin() auf zu rufen.

Gruß
Angehängte Dateien:
Gast #7127747
Lesenswert?

wär aucht gut wenn du die Analogeneingänge so definierst

// Messeingänge - Aanalog
pinMode(phasedpin,INPUT);
pinMode(phaseapin,INPUT);
pinMode(phasebpin,INPUT);
pinMode(phasecpin,INPUT);
pinMode(phaselpin,INPUT);
pinMode(phaseipin,INPUT);

kannst ja noch in die ini_IO() packen.

Gruß
Gast #7127765
Lesenswert?

Käferlein schrieb:
> nano-schema-pv-20220715.png

Kondensator am Ausgang des Spannungsreglers vergessen!
Schaltung nach Empfehlung des Herstellers beachten! Ein
Spannungsregler braucht auch am Ausgang einen Kondensator,
der darf nicht irgendwo als Ersatz oder Quotenelko stecken
sondern muss am Pin des Spannungsreglers positioniert werden.

Bloss kein Bauteil zuviel einbauen, könnte ja zu teuer werden.
Gast #7127827
Lesenswert?

Erklehr Behr schrieb:
> Kondensator am Ausgang des Spannungsreglers vergessen!

Sitzt auf dem nanoboard. Entfernung kurz genug, siehe Foto.

Der 78 Regler kommt demnächst raus und wird durch eine
diskrete Schaltung ersetzt. Drei Transistoren+TL431.
Ist dann low drop und einstellbar strombegrenzt.

Michael M. schrieb:
> wär aucht gut wenn du die Analogeneingänge so definierst

OM DK2JK schreibt im Arduino Programmierhandbuch, dass man
das bei Analogeingängen nicht tun muss.
Das mit #define ist mir auch völlig fremd. ???

Was gefällt dir an meinem "Fünf-Sekunden-Schalter" nicht?
Interrupt? Flag? Keine Ahnung von. Brauche ich das?
Ich bekomme in Zeile 165 alle 5 Sekunden einen Impuls, der
einen Loop durchlauf lang ist. Mehr brauche ich nicht.

Ja, die Zeilen 164-166 werde ich löschen, weil doppeltgemoppelt
mit 173-177.
Gast #7127846
Lesenswert?

Michael M. schrieb:
> Der R? 12K zwischen ~ und GND. Why ?

Ist nicht vorhanden, weil Pullup programmiert.

Michael M. schrieb:
> Q1 soll bestimmt Verpolungsschutz sein? nach einem
> Brückengleichrichter??

Nein. Der begrenzt den Rückstrom, wenn der Ladekondensator
leer ist und man USB reinsteckt.
(Ich habe mit so den Regler auf dem Nanoboard gekillt.
Beim Nano fehlt übrigens die Diode über dem Regler.)
Gast #7127847
Lesenswert?

Käferlein schrieb:
>> Kondensator am Ausgang des Spannungsreglers vergessen!
> Sitzt auf dem nanoboard.

Das ist aber mutig! Ist dir bekannt, dass diese Regler ohne richtigen 
Kondensator an der richtigen Stelle ganz heftig schwingen können und 
dabei nicht selten die volle Eingangsspannung durch reichen?
Gast #7127885
Lesenswert?

Käferlein schrieb:
> Was gefällt dir an meinem "Fünf-Sekunden-Schalter" nicht?
> Interrupt? Flag? Keine Ahnung von. Brauche ich das?
> Ich bekomme in Zeile 165 alle 5 Sekunden einen Impuls, der
> einen Loop durchlauf lang ist. Mehr brauche ich nicht.

geht auch so keine Frage.
Ist nur eine andere Method, die deine Main sauberer hält und genauer 
ist. Bei dir bekommst du ~alle 5 Sekunden ein Impuls, halt wenn dein 
Code genau passend ander Stelle ist ..sonst 5Sek + loop durchlauf.
Evtl. ist das für das Projekt nicht so entscheident aber evtl. für 
andere Zeitkritische, so haste schonmal davon gehört.

Käferlein schrieb:
> OM DK2JK schreibt im Arduino Programmierhandbuch, dass man
> das bei Analogeingängen nicht tun muss.

schadet ja nicht wegen vollständigkeitshalber. so ist alles klar 
definiert.

Käferlein schrieb:
> Das mit #define ist mir auch völlig fremd. ???

kannst dir vorstellen wie mit "const" deklarierte Variablen.
Hilft der übersicht und die werden an anderen Ort gespeichert.

Käferlein schrieb:
> Nein. Der begrenzt den Rückstrom, wenn der Ladekondensator
> leer ist und man USB reinsteckt.

ah okay :)

Käferlein schrieb:
> Ja, die Zeilen 164-166 werde ich löschen, weil doppeltgemoppelt
> mit 173-177.

im sketch_juli13b_Regent.ino oder main.ino ?

Will auch nicht auf Teufel komm raus was kretisieren, nur die Sachen 
sind aufgefallen ;)

Gruß
Gast #7127934
Lesenswert?

Michael M. schrieb:
> im sketch_juli13b_Regent.ino oder main.ino ?

juli13b

Bei dir ist das in 200 bis 216
1
if (mv != mvvorher) {                      // Multivibratorflanken
2
    mvpuls = HIGH;
3
    strommessen();
4
    leistung();
5
    displaybeschreiben();
6
  }else {
7
    mvpuls = LOW;
8
  }
9
  mvvorher = mv;
10
  if (mvpuls == HIGH) {
11
    strommessen();
12
    leistung();
13
    displaybeschreiben();
14
  }

Ich mache da nach dem 5sek Puls alles zwei mal.
Zeitkritisch ist der nicht.
Gast #7127942
Lesenswert?

Michael M. schrieb:
> kannst dir vorstellen wie mit "const" deklarierte Variablen.
> Hilft der übersicht und die werden an anderen Ort gespeichert.

https://www.arduino.cc/reference/de/language/structure/further-syntax/define/

Hm, da lasse ich mal besser die Finger von:

>> Dies kann jedoch einige unerwünschte Nebenwirkungen haben,
>> wenn zum Beispiel ein konstanter Name, der #defined wurde,
>> in einer anderen Konstanten- oder Variablenname enthalten ist.
>> In diesem Fall würde der Text durch die #definierte Nummer
>> (oder den Text) ersetzt.
Gast #7128284
Lesenswert?

Schlaumaier schrieb:
> Darf ich fragen wo du das her hast.?? Und wie teuer. ??

Vor längerer Zeit bei RS gekauft. Habe zum Glück noch welche.
Ist ein Takachi TWN13-5-13W
Breite=125mm Höhe=45mm Tiefe=125mm

Käferlein schrieb:
> noiasca schrieb:
>> Das sind zwei init(). kein
>> .begin(). das macht der init dann eh intern.
>
> Mit dem  lcd.begin(16, 2); weglassen ist ein ganz heißer Tipp.

Ja, lcd.begin war die Ursache.

Danke Euch für die Hilfe und die Tipps. Sketch läuft.
Gast #7128391
Lesenswert?

Käferlein schrieb:
> Hm, da lasse ich mal besser die Finger von:

Arduino C++ für den Anwender und in vielen Libs
Der Arduino Core ist zum großen Teil C und C++ mit einem Stratz 
Assembler.

In C++ gibt es nur noch wenig Einsatz für den Präprozessor

#define laempi 13

kann durch

constexpr byte laempi {13};

ersetzt werden.

Hat den Vorteil, dass es erschrocken aufschreit, wenn man folgende 
Dummheit probiert:
constexpr byte laempi {13.33};


---

const byte laempi {13};
Kann zwar meist automatisch weg optimiert werden, ist aber nicht 
garantiert. Auch ist const da nur ein readonly Attribut, was durchaus 
auch (aus Versehen?) Umgangen werden kann.

Optimierung abschalten, bringt solche Böcke dann ans Licht.
volatile const byte laempi {13};

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren