LCDisplay gibt Buchstabensalat aus

Hallo Arduino-Forum,

ich bin relativ neu bei Arduino und nun sollen wir ein Schulprojekt, eine Kugelbahn, mit einem Arduino steuern. Ich habe mir überlegt, dass es sinnvoll ist, wenn der Motor für den Aufzug, der die Kugeln wieder nach oben befördert, nur läuft wenn auch die Kugel transportiert wird. Dazu habe ich zwei Lichtschranken an meine Kugelbahn angebracht. Die erste erkennt wann die Kugel am Start des Aufzugs liegt und schaltet diesen an. Die zweite meldet sobald die Kugel oben angekommen ist und stoppt den Aufzug. Nun wollte ich zusätzlich einen Rundenzähler einbauen, der dann auf einem LCDisplay angezeigt wird. Hier beginnt mein Problem und zwar gibt mir das Display zu Beginn exakt das aus was es soll. Sobald jedoch eine Runde addiert werden soll wird mir ein bunter Buchstabensalat angezeigt. Ich habe jetzt schon etwas rumprobiert , aber ich finde einfach nicht den Grund für mein Problem. Hier ist noch mein Sketch:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12,11,5,4,3,2);
int sensorpin1 = 6 ;
int sensorpin2 = 7 ;
int motorpin = 13 ;
int lshelligkeit1 = 0 ;
int lshelligkeit2 = 0 ;
int runden = 0;
int aufzugsperre = 0;

void setup(){
  
  lcd.begin(16,2);
  lcd.print("Solarkugelbahn");
  lcd.setCursor(0,1);
  lcd.print("Kugel starten!"); 
  pinMode(sensorpin1,INPUT_PULLUP);
  pinMode(sensorpin2,INPUT_PULLUP);
  pinMode(motorpin,OUTPUT);
  Serial.begin(9600);
 
}

void loop(){

  lshelligkeit1 = digitalRead(sensorpin1);                                  
  lshelligkeit2 = digitalRead(sensorpin2); 
  
  if ((aufzugsperre == 1) && (lshelligkeit2 == HIGH)){                 
    
    digitalWrite(motorpin,LOW);
    aufzugsperre = 0;                                        
         
  }
     
  if (lshelligkeit1 == HIGH) {                                               
        
    runden = runden + 1;
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Runden:");
    lcd.setCursor(0,1);
    lcd.print(runden);  
    Serial.println(runden);                                            
    delay (700);   
    digitalWrite(motorpin,HIGH);                                 
    delay(1000);
    aufzugsperre = 1;
        
  }
   
  delay (50);

}

Es wäre sehr schön Hilfe bei meinem Problem zu erhalten.

Viele Grüße
co0ki

Zeichne mal deinen Schaltplan auf und mache Fotos vom Aufbau. Ich denke, hier gibt es ein elektrisches Problem, das der Motor auf der Stromversorgung Störungen verursacht. Also Kabellängen, Drahtstärke, Pufferelkos, Abblockkondensatoren, was liefert den Strom usw...

Ich habe ein elektrisches Problem eigentlich ausgeschlossen, da ich einen weiteren Probesketch geschrieben habe, der jede Sekunde mitzählt (also 0,1,2,3....) und dass hat pefekt funktioniert. An der Schaltung habe nichts verändert. Weshalb ich eigentlich auf den Sktecht geschlossen habe. Bin aber für jede Idee offen solage es hilft. :D

Du scheinst ja von deinem Aufbau sehr überzeugt zu sein.

Kann ich verstehen, aber weist du auch, dass an einem Motor (Spule) eine Freilaufdiode ran gehört, die Störungen (Spannungsspitzen) beim abschalten verhindern soll ?

Hast du die angeschlossen ?

Und zeige doch mal ein Foto von deinem Display mit dem "bunten Buchstabensalat". Das kann ich nicht glauben, da du ein "einfarbiges" Display verwendest. ;)

Es wäre doch wichtig, den Salat mal zu sehen.

Zu sagen ist noch, dass ich eine Fischertechnikkugelbahn benutze. Ich weis nicht, ob die Fotos viel bewirken, weil man dort nur ein Gewirr and Kabeln erkennt. Jedochh sieht man zu beginn das funktionierende Display: |500x281

Nachdem die Kugel dann einige Runden absolviert hat, egibt sich das: |500x281

Eindeutig liegts an der Schaltung.

Ich hatte mal ein ähnliches Phänomen. 230V, etwas nass, hat man das Gehäuse angepackt hats gekitzelt und solche Hieroglyphen zu sehen.

co0ki: Ich weis nicht, ob die Fotos viel bewirken, weil man dort nur ein Gewirr and Kabeln erkennt. Jedochh sieht man zu beginn das funktionierende Display:

Kein Wunder bei dem "Kabel-Gewirr" ;)

Da fängst du dir haufenweise Störungen ein.

Und über die Freilaufdiode sagen wir lieber nichts. Oder kennst du den Begriff nicht ? Ist ja nichts schlimmes, kann man alles lernen.

Leider sind die Bilder nicht zu sehen, da Web.de rumspackt.

Aber Kabelsalat ist immer ein "garant" für Störungen die deine Datenleitung beeinflussen. An der Datenleitung wird eine Bitfolge als Impulse gesendet. wird da ein Impuls unterdrückt oder dazu generiert durch externe Störgrößen verschiebt sich der komplette Rest und du hast Buchstabensalat. 16 Zeichen a 8 Bit = 128Datenbit. Eines davon falsch und du hast Zeichensalat.

Optimiere dein Aufbau mal dahin gehend. Vieleicht hast du deine Masse von Punkt zu Punkt durchverdrahtet, statt sie zentral an einen Punkt zu führen. Auch das kann schon solche Auswirkungen haben,

Das LCD-Display das du verwendest hat keine Fehlerkorrektur im Übertragungsprotokoll. Ob es Prüfsumme hat, habe ich noch nicht geschaut, habe allerdings das selbe Display im Einsatz. Manchmal auch Anzeigenfehler, muss dann aus/ein schalten dann gehts wieder. Und ich habe keinen Motor im Einsatz, sondern nur eine Tastatur und einige Mathespielchen im Display.

Also ich wollte mich gleich vorab schonmal für die superschnelle Hilfe bedanken. Nach euren doch sehr eindeutigen Kommentaren, dass etwas an meiner Schaltung nicht stimmen kann, habe ich mich heute darangesetzt und sie einmal komplett abmontiert und wieder neu aufgebaut. Nun zählt das Display wieder wunderbar seine Runden.

Ich hätte jedoch noch eine zweite Frage, bei der ihr mir helfen könntet. Und zwar soll meine Kugelbahn über Solarstrom betrieben werden. Die Solarzellen sollen nun Akkus aufladen, die dann den Arduino mit Strom versorgen. Kann ich dazu einfach Solarzellen Akkus und den Arduino in einen geschlossenen Stromkreis verbauen ? Oder wie müsste die Schaltung ansonsten aussehen ?

Ich freue mich auf eure Hilfe co0ki

Ok, hatte paar Tage frei, hoffe die Antwort hilft dir noch

Erstmal musst du die Akkus festlegen. Lithium-Akkus haben 3,7V Nennspannung und schwanken zwischen 3,2V Abschaltspannung und 4,2V Ladespannung. Für deine Schaltung wohl zu wenig Spannung wenn die Akkus leer werden. Nimmst du aber dann 2 Zellen, bekommst du 6,4-8,4V Spannung. Das wiederum geht nicht ohne einen Regler, weil 8,4V dein arduino zerstören. Die Solarzellen müssen nun wiederum an die Spannung des Akkus angepasst werden.

Kaufst du also fertige Module musst du erstmal schauen, was die liefern. Idealerweise sollte dann ein Schaltregler die Akkuspannung an deine 5V anpassen, Schaltregler deswegen weil ein Linearregler einfach die überschüssige Spannung in Wärme umwandelt und die geht verloren. Je höher die Akkuspannung desdo mehr Wärme 3Zellen Lithium hätten dann mehr Abwärme als Nutzleistung, der Wirkungsgrad sinkt unter 50%. Schaltregler setzen die Spannung nahezu verlustlos um. Jedenfalls deutlich effizienter.

Um also zu erklären, wie du die Akkus und Solarmodule zusammen schaltest, müsste man diese kennen. Und dann kann ich dir genau sagen, wie du sie verschalten musst. Teste es besser nicht, weil Solarzellen sehr hohe Spannungsspitzen erzeugen. Ein 12V Modul kann unter Last 10V haben, im Leerlauf aber über 18V. Last heist, das du am 5W Modul einige Watt ziehen musst, ein Arduino im Leerlauf würde keine Last sein, die spannungssenkend wirkt. Du kannst dir also durch Anschliessen und nur Sonne drauf scheinen, alles killen.