Arduino Pro Mini 3,3V und ein 5V LCD

Hallo,
ich habe einen Arduino Uno und hab da mal meine Schaltung auf dem Steckbrett aufgebaut. Sie besteht aus einem Display (2x16 Zeichen) das 5V Spannung benötigt. Weiters 4 Schaltern für die Navigation und einem Optokoppler der den Selbstauslöser meiner Kamera auslöst. Das funktioniert soweit super.

Nun habe ich mit einen Arduino Pro Mini besorgt um ihn in ein kleines Gehäuse zu verbauen. Der Pro Mini ist allerdings ein 3,3V Arduino.... Und jetzt weiß ich nicht so recht wie ich weiter mache.

Einfach einen 5V Spannungsregler hernehmen und mit dem das LCD versorgen? Nur wie würde das Display dann angeschlossen werden müssen?

Ist vielleicht eine blöde Frage, nur leider kenne ich mich noch recht wenig aus in der Elektrotechnik :slight_smile:

Danke und lg

  1. den Arduino Mini Pro gibt es auch als 5V 16Mhz version.
  2. die 3,3V Version kann man auch mit 5V betreiben, dann aber leider nur mit 8Mhz, weil so ein Quarz drauf ist.
  3. Such ein 3,3V display
  4. "5V Spannungsregler hernehmen" ein normaler Spannungsstabilisator kann nur die Spannung verkleinern.
    Un die Spannung zu erhöhen braucht man einen DC/DC Converer.
    Mit was wolltest Du die Schaltung speisen? Netztei? Batterie, welche?

Grüße Uwe

Ich mache es jetzt so....
Ich habe einen Spannungsregler der mir 5V macht (angespeißt von einer 9V Blockbatterie) und damit gehe ich einerseits in den Raw Eingang des Arduino und andererseits in den VDD des Displays. Den Rest habe ich nun auch verlötet (soweit ich das sehe richtig). Doch leider gibt das Display keinen Text aus. Es wird nur dunkel.
Das Display dass ich am Steckbrett verwendet habe ist ein anderes (zu groß um es in dem Gehäuse das ich vorgesehen habe zu verbauen). Der Nachbau auf der Steckplatine funktioniert aber mit dem gleichen Code leider nicht :frowning:

Pin 3 (V0) wird in dem Beispiel http://www.arduino.cc/en/Tutorial/LiquidCrystal ja mit einem Drehpoti geregelt. Ich habe den am Steckbrett dann auf Masse gegeben und das haut auch hin (ich wollte Platz sparen und keinen Poti verbauen müssen)
Kann ich davon ausgehen dass es nicht daran liegt? Weil schließlich wird das Display ja dunkel wenn ich dem Board Strom gebe.

In der Arduino IDE habe ich das Board auch richtig ausgewählt.... somit sollte es auch kein Timing Problem sein, oder?

Wie würdet ihr jetzt weiter vorgehen um den Fehler zu finden?

Ich würde einen Poti montieren und regeln. Ist das ganze Display schwarz oder die Hälfte?
Grüße Uwe

das ganze, ja...
am anfang nur die erste zeile und nach ca einer sekunde dann alles und dafür nicht mehr ganz so dunkel

schade... der drehpoti hat hat leider auch nicht geholfen... display ist gleich dunkel... :frowning:

bin mir nicht sicher ob ich das richtig sehe....
aber bei den einzelnen zeichenblöcken kommt mir vor als wäre immer die oberste reihe ein bisschen dunkler als die anderen...

Ich setze voraus und nehme an daß die Verdratung richtig ist; Einige Displays zählen die Pins von reschts nach links, andere ungekehrt und die 2 pins für die Hintergrundbeleuchtung sind auch nicht standart. Kontrollier nochmal.

am Anfang nur die erste zeile

dann ist die Kontrasteinstellung gut.

... display ist gleich dunkel...

Scheint mir ein Initialisationsproblem zu sein. Versuch mal nach "LiquidCrystal lcd();" und "lcd.begin();" eine delay von 100 milliSekunden einzubauen.

Grüße Uwe

Kontakte passen alle... hab sie alle mit dem Multimeter nochmal überprüft.

Mein LDC init schaut so aus:

void lcdSetup()
{
  lcd.begin(16, 2);
}

Wo soll ich das LiquidCrystal lcd(); hingeben?

Danke für deine Hilfe :slight_smile:

Du benutzt die LiquidCrystal Library.
Die Funktion LiquidCrystal lcd(12, 11, 5, 4, 3, 2); definiert welche Arduino-Pins Du mit dem Display verbunden hast.
Grüße Uwe

Wenn ich den Code aus dem Sample hernehmen:

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

dann würdest du ein delay(100) einbauen wie hier?

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);

  // ********    HIER   *****
  delay(100);
  // ************************

  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

Hab ich das richtig verstanden?

Das würde nämlich leider nichts bringen :frowning:

Ja, ich wollte es dort reingeben.

Also zusammenfasend:
Arduino UNO, 5v, Großes Display: funktioniert.
Arduino Pro Mini, 3,3V, kleines Display: funktioniert nicht. Mit welcher Spannung betreibst Du den Arduino pro mini?

Nachbau auf der Steckplatine funktioniert aber mit dem gleichen Code leider nicht

Du hat 3 Variablen (Display, Code, Verdrahtung)
Der Code müßte auf dem Arduino Uno - Steckbrett - Großem Display funktionieren.

Das genannte Beispiel funktioniert mit dem Arduino UNO?
Wenn ja - tausche das Display gegen das kleine aus.
Wenn nein - Fehlersuche: Verdrahtung - Lötstellen - Kurzschlüsse
wenn alles OK - Display kaputt?

Grüße Uwe