- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 8 von 8

Thema: Power-On-Problem mit Arduino Mega, UTFT und ITEAD 2.4 Inch TFT-Shield

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.10.2007
    Beiträge
    122

    Unglücklich Power-On-Problem mit Arduino Mega, UTFT und ITEAD 2.4 Inch TFT-Shield

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Ich verwende diesen Shield ( https://www.itead.cc/itead-2-4-tft-l...shield-v1.html ) auf einem Mega. Wenn ich den Sketch direkt drauflade, funktioniert das TFT. Trenne ich aber die Betriebsspannung oder führe ich einen Reset aus, wird der TFT nicht initialisiert und bleibt weiß. Manchmal kommt er dann nach dem x-ten Reset, aber oft garnicht. Der Rest des Sketches läuft dabei übrigens ganz normal, ich merke das an den Reaktionen auf Tastereingaben und die angeschlossenen LEDs und Relais - nur die grafische Ausgabe fehlt.

    Der TFT wird parallel betrieben und nutzt nur die beiden parallelen Stiftleisten, damit er auch zum UNO kompatibel ist. Das bedingt die Nutzung beinahe sämtlicher Pins, so auch D0...D7. Soweit ich weiß, sind aber D0 und D1 mit der Seriellen Schnittstelle verbunden ... vermutlich hat das Problem hier seine Ursache. Allerdings, wie bereits geschrieben, direkt nach einem Sketch-Upload funktioniert es ja immer.

    Also befinden sich diese (oder andere) Pins nach einem Upload in einem anderen Zustand als nach einem Power-On oder einem Reset. Da müsste auch der Ansatz für eine Problemlösung stecken, aber irgendwie weiss ich da nicht weiter. Ich verwende die neueste Version der Lib "UTFT", das Display wird mit dem Code: "UTFT tft(ITDB28,A5,A4,A3,A2);" zum Leben erweckt.

    Ich habe bereits die verschiedensten Versuche gemacht, das Problem zu lösen (nach langen Internet-Recherchen): Alle beteiligten Pins vor der Initialisierung auf Input zu setzen, die Hardware-Serial durch Einfügen von "#define HardwareSerial_h" ausser Gefecht zu setzen, wild an den Pins zu "Wackeln" ... half Alles Nichts.

    Hat jemand einen Tip für mich? Danke.

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    Leider ist dein Sketch nicht zu sehen, somit kann man keine Ursache suchen.
    Der Shield ist ja ein Serienprodukt, somit ist die Fehlerursache dort nur im Ausnamefall zu suchen.
    Da der ja nach dem Upload funktioniert, scheidet er eigentlich aus.
    Das selbe gilt für den Mega.
    Bleibt also nur Dein Code als erster Verdächtiger.

    Du kannst auch mal versuchen nach
    "void setup() {"
    ein
    "delay(5000);"
    zu setzen.

    oder falls das nichts bringt ein

    unsigned long prevmicros = 0;

    void setup() {
    do {
    delay(10);
    unsigned long curmicros = millis();
    prevmicros = curmicros;
    } while (curmicros - prevmicros <= 5000);

    Fall sich das Ganze als Timingproblem beim Initialisieren nach einem Reset/Power on herausstellt, verschaft das der Initialisierung 5 Sekunden um fertig zu werden.

    Falls das delay die Initialisierung auch anhält, fallen in Variante zwei ein Paar zyklen an in denen der Prozessor was machen kann.
    Allerdings ist das keine schöne und saubere Lösung sondern nur um mal zu testen ob sich da was tut.
    Die saubere Lösung ist, sich den Zustand der Pinkonfig anzusehen und darüber zu prüfen.
    Geändert von i_make_it (23.10.2016 um 19:45 Uhr)

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.10.2007
    Beiträge
    122
    Da nicht alle Arduino-Sketche zwangsläufig Open Source sind, habe ich mal extra einen ganz minimalistischen gemacht: Und das Problem besteht fort:
    Code:
    #include <UTFT.h>
    
    UTFT tft(ITDB28,A5,A4,A3,A2);
    
    
    void setup()
    {
      tft.InitLCD(PORTRAIT);  
    }
    
    void loop()
    { 
      tft.clrScr();
      tft.setColor(255,0,0);
      tft.fillRect(10,10,230,310);
      delay(950);
    }
    Ich werd' mal die gemachten Vorschläge dranstricken ...

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    33
    Beiträge
    1.192
    i_make_it meinte wohl hier:
    Code:
    #include <UTFT.h>
    
    UTFT tft(ITDB28,A5,A4,A3,A2);
    
    
    void setup()
    {
      delay(5000); //---------------HIER
      tft.InitLCD(PORTRAIT);  
    }
    
    void loop()
    { 
      tft.clrScr();
      tft.setColor(255,0,0);
      tft.fillRect(10,10,230,310);
      delay(950);
    }
    Bin mal gespannt was du davon berichtest...

    Wenn das nicht hilft, würde ich bei der Stromversorgung weiter suchen. Den Spannungsregler auf dem Arduino Mega bekommt man recht schnell an seine thermische Grenze.
    Mit welcher Betriebsspannung wird der Arduino Mega betrieben, welche Verbraucher werden geschaltet, was wird über die 3,3V oder 5V noch alles mit versorgt, wie viel mA braucht das?

    Grüße,
    Bernhard
    "Im Leben geht es nicht darum, gute Karten zu haben, sondern auch mit einem schlechten Blatt gut zu spielen." R.L. Stevenson

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.10.2007
    Beiträge
    122
    Zitat Zitat von BMS Beitrag anzeigen
    i_make_it meinte wohl hier:
    Bin mal gespannt was du davon berichtest...
    Das Delay im Setup war das Erste, was ich probiert hatte - bringt nix, trotzdem Danke.

    An der Betriebsspannung kann es kaum liegen, denn ich habe das Power-On-Problem auch an dem USB-Port, an dem ich programmiere. Aber auch ein 2A-USB-Netzteil bringt keine Änderung. Sonst läuft derzeit Nichts mit, die Relais sind momentan ab.

    Bitte endlich mal darauf eingehen: Nach einer Programmierung läuft es immer, nach abziehen/anstecken erst nach Reset.

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    33
    Beiträge
    1.192
    Hallo,
    auf der verlinkten Seite steht noch
    The not so obvious thing needed when using the MEGA is to edit the library file UTFT\hardware\avr\HW_AVR_Defines - there is a line that must be un-commented.
    Also könnte man mal die genannte Datei öffnen und nach MEGA durchsuchen, scheinbar gibt es da einen Spezialfall...
    Ansonsten gehen mir im Moment erst mal die Ideen aus
    Grüße, Bernhard
    "Im Leben geht es nicht darum, gute Karten zu haben, sondern auch mit einem schlechten Blatt gut zu spielen." R.L. Stevenson

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.10.2007
    Beiträge
    122
    Zitat Zitat von BMS Beitrag anzeigen
    Hallo,
    auf der verlinkten Seite steht noch ...
    Ja, hab ich schon zu Anfang gemacht, sonst geht garnix ...

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.10.2007
    Beiträge
    122
    Problem gelöst - anderen TFT genommen, fertig. Mit der gleichen Lib, nur anderer Initialisierung. Läuft auf Anhieb und auch nach jedem Neustart ...

    Den hier: https://www.amazon.de/gp/product/B01...?ie=UTF8&psc=1

Ähnliche Themen

  1. Sainsmart 4.3 Inch TFT LCD Bibliothek arduino
    Von simonprein im Forum Arduino -Plattform
    Antworten: 3
    Letzter Beitrag: 17.02.2015, 17:33
  2. Antworten: 3
    Letzter Beitrag: 21.10.2014, 17:37
  3. Arduino Uno + ITead Bluetooth Shield
    Von Mupfell im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 18.09.2012, 10:36
  4. [ERLEDIGT] NFC Shield + Arduino Uno Problem beim Schreiben
    Von Jonas15 im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 0
    Letzter Beitrag: 04.05.2012, 16:22
  5. Problem beim Lesen von Mifare RFID Tags mit dem Arduino NFC Shield
    Von Jonas15 im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 0
    Letzter Beitrag: 02.04.2012, 18:58

Stichworte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress