Problem mit Reset bei I2C-LCD am Arduino
19.01.2013, 07:49
Hallo,
Ich betreibe das I2C-LCD als Shield auf einem Arduino Uno (rev. 1) Board. Das Display und die LEDs funktionieren ohne Probleme, wenn ich ein Programm über die Arduino-IDE hochlade. Wenn ich nach dem Hochladen dann aber die Stromversorgung aus- und wieder einschalte (bspw. durch Abziehen des USB Kabels), dann blinkt die LED an Pin 13 auf dem Arduino-Board immer dreimal hintereinander. Auch das Drücken der RESET-Taste behebt diesen Zustand nicht.
Bei der Fehlersuche habe ich folgendes festgestellt:
Wenn ich das Programm erneut über die Arduino-IDE hochlade, funktioniert wieder alles, bis ich aus- und einschalte.
Im Fehlerfall scheint das Arduino-Board im Bootloader "steckenzubleiben", zumindest wird kein Code aus der "setup()"-Funktion (oder der "loop()"-Funktion) ausgeführt
Da die o.g. Punkt auf ein Problem mit dem Reset hindeuten, habe ich mir mal die Schaltpläne des Arduino und des I2C-LCD-Moduls bzgl. der Reset-Schaltung angeschaut. Dabei habe ich gesehen, dass der Reset-Pin auf dem Arduino-Board über einen 10k Widerstand auf 5V hochgezogen wird, auf dem I2C-LCD-Modul über einen 10k Widerstand nur auf 3V. Eine Messung der Spannung am Reset-Pin hat ca. 3,8V ergeben, was diese unterschiedliche "Beschaltung" bestätigt. (Beim Betrieb über USB erreicht die Spannung des Arduino-Boards nur ca. 4,8V, daher auch nur ca. 3,8V am Reset-Pin)
Meine Vermutung war daher, dass die 3,8V eventuell nicht aussreichen, um einen korrekten Reset des Arduino-Boards durchzuführen. Um meinen Verdacht zu überprüfen, habe ich den Reset-Pin des I2C-LCD-Moduls etwas "verbogen", so dass er nicht mehr im Arduino-Board steckt. => Nun funktioniert die Schaltung auch nach dem Aus- und Einschalten! Nachteilig ist allerdings, das nun der Reset-Taster auf dem I2C-LCD-Modul nicht mehr funktioniert, und der Reset-Taster auf dem Arduino-Board unter dem I2C-LCD-Modul "versteckt" ist.
Habe nur ich das Problem oder sind andere Nutzer ebenfalls auf dieses Problem gestoßen?
Viele Grüße
birnwieapfel
Ich betreibe das I2C-LCD als Shield auf einem Arduino Uno (rev. 1) Board. Das Display und die LEDs funktionieren ohne Probleme, wenn ich ein Programm über die Arduino-IDE hochlade. Wenn ich nach dem Hochladen dann aber die Stromversorgung aus- und wieder einschalte (bspw. durch Abziehen des USB Kabels), dann blinkt die LED an Pin 13 auf dem Arduino-Board immer dreimal hintereinander. Auch das Drücken der RESET-Taste behebt diesen Zustand nicht.
Bei der Fehlersuche habe ich folgendes festgestellt:
Wenn ich das Programm erneut über die Arduino-IDE hochlade, funktioniert wieder alles, bis ich aus- und einschalte.
Im Fehlerfall scheint das Arduino-Board im Bootloader "steckenzubleiben", zumindest wird kein Code aus der "setup()"-Funktion (oder der "loop()"-Funktion) ausgeführt
Da die o.g. Punkt auf ein Problem mit dem Reset hindeuten, habe ich mir mal die Schaltpläne des Arduino und des I2C-LCD-Moduls bzgl. der Reset-Schaltung angeschaut. Dabei habe ich gesehen, dass der Reset-Pin auf dem Arduino-Board über einen 10k Widerstand auf 5V hochgezogen wird, auf dem I2C-LCD-Modul über einen 10k Widerstand nur auf 3V. Eine Messung der Spannung am Reset-Pin hat ca. 3,8V ergeben, was diese unterschiedliche "Beschaltung" bestätigt. (Beim Betrieb über USB erreicht die Spannung des Arduino-Boards nur ca. 4,8V, daher auch nur ca. 3,8V am Reset-Pin)
Meine Vermutung war daher, dass die 3,8V eventuell nicht aussreichen, um einen korrekten Reset des Arduino-Boards durchzuführen. Um meinen Verdacht zu überprüfen, habe ich den Reset-Pin des I2C-LCD-Moduls etwas "verbogen", so dass er nicht mehr im Arduino-Board steckt. => Nun funktioniert die Schaltung auch nach dem Aus- und Einschalten! Nachteilig ist allerdings, das nun der Reset-Taster auf dem I2C-LCD-Modul nicht mehr funktioniert, und der Reset-Taster auf dem Arduino-Board unter dem I2C-LCD-Modul "versteckt" ist.
Habe nur ich das Problem oder sind andere Nutzer ebenfalls auf dieses Problem gestoßen?
Viele Grüße
birnwieapfel