- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: Arduino startet nicht an externer Spannungsquelle

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    02.12.2017
    Beiträge
    8

    Arduino startet nicht an externer Spannungsquelle

    Hallo Forum,

    ich bin neu hier und möchte ein wenig von euch lernen und später auch meine Kenntnisse weitergeben.

    Ich habe bereits einige kleinere Programme mit C++ geschrieben/modifiziert und habe aktuell einen Arduino Pro Mini in der 3,3V-Version als Entwicklungssystem in Betrieb.

    Zur Zeit arbeite ich an einem kleinen Programm, welches aus einer Echtzeituhr DS3231 Zeit und Datum ausliest und auf einem OLED SSD1306 zur Anzeige bringt.
    Zusätzlich wird auch noch die Temperatur aus einem Temperatursensor DS18B20 ausgelesen und angezeigt.

    Bisher funktioniert auch alles zu meiner Zufriedenheit, allerdings nur wenn ich den Arduino über eine FTDI-Schnittstelle am PC hängen habe.

    1. Ich lade mein Programm mittels IDE über die FTDI-Schnittstelle in den Arduino, das Programm beginnt sofort zu starten und die OLED-Anzeige zeigt mir sinnvolle Werte.

    2. Wenn ich jetzt den Strom unterbreche (FTDI-Modul oder USB-Kabel abziehe), und die Verbindung wieder herstelle, beginnt das Programm erneut zu laufen, soweit ok.

    3. Versorge ich jetzt den Arduino nicht über den PC sondern aus einem USB-Steckernetzteil oder auch über den RAW-Eingang mit Spannung (5V), startet das Programm nicht.
    Erst ein Druck auf den RESET-Button bringt dann Erfolg. Aber so sollte es ja nicht sein.

    Ich habe zu dem Thema schon sehr viel im Internet gelesen, ich bin da offensichtlich nicht allein, habe auch schon viel ausprobiert. Leider habe ich immer noch keine Lösung für das Problem.

    Vielleicht finde ich hier jemanden der mir helfen kann?

    Gruß Volker

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.687
    Hallo Volker,

    willkommen im Forum.

    .. Arduino Pro Mini .. 3,3V.. mit Spannung (5V), startet das Programm nicht. Erst ein Druck auf den RESET-Button bringt dann Erfolg ..
    Woher weißt Du dass das Programm nicht startet? Woran ist das eindeutig zu erkennen?

    .. das Programm beginnt sofort zu starten und die OLED-Anzeige zeigt mir sinnvolle Werte ..
    Bin ich richtig wenn ich jetzt sage: Du schaltest nach Punkt 3. die Spannung von Netzteil oder so auf den arduino und das OLED bringt keine Anzeige ? Daher meinst Du, dass das Programm nicht läuft?

    Oder gibt es andere Diagnosen?

    Ich glaube (!) ich hatte etwas Ähnliches festgestellt als ich mit einem nanoClone (328er mit 20 MHz) ein OLED1306 angesteuert hatte. Behoben hatte ich das damals (glaub ich . . . ist halt nicht dokumentiert) durch ne lange Startzeit des Controllers : Fuse SUT_CKSEL auf Ext. Crystal Osc. 8.0- MHz; Start-up time PWRDWN/RESET: 16K CK/14CK + 65 ms. Grund war offenbar ein schneller Start des Controllers - der ans OLED die Startinitialisierung gesendet hatte, bevor das überhaupt ready war.

    1) Zum Erkennen des Programmstarts durch einen echten RESET habe ich praktisch immer zu Startbeginn nach der Portinitialisierung, vor allen andern Initialisierungen, eine LED auf Blinklicht - meist 10 x (3 ms an, 97 ms aus). Danach läuft das "normale" Programm.
    Ciao sagt der JoeamBerg

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    02.12.2017
    Beiträge
    8
    Ich erkenne das das Programm nicht startet daran, das das Display eben dunkel bleibt und nichts weiter passiert.
    Ich kann da gerne noch mal eine Diode blinken lassen um das abzusichern.

    Ok, mit den Fuse- Bits habe ich mich auch schon beschäftigt, die sind aber beim Arduino schon initial so vorbelegt, das der Start langsam ist (14CK + 65ms).
    Ich wüsste auch nicht wie ich die mit meinen Mitteln umprogrammieren könnte.

    Ich verstehe eben auch nicht warum das am PC funktioniert und am separaten Netzteil eben nicht.

    Ich werde die Diode mal einbauen um zu beweisen das wirklich nichts läuft und nicht nur das Display dunkel bleibt. Das wird aber jetzt ein paar Tage dauern, da ich ab morgen 3 Tage unterwegs bin.

    Gruß Volker

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.687
    Ich erkenne das das Programm nicht startet daran, das das Display eben dunkel bleibt und nichts weiter passiert ..
    Als erste Hilfe wäre es ja noch möglich gleich zum Programmanfang mal ein simples Delay von einer Sekunde einzprogrammieren und erst danach das Display zu initialisieren. Dann sollte man ziemlich sicher sein, dass "alles" bereit ist zu arbeiten *gg*.

    Mein Blink-Krückstock ist eher als Allzweckwaffe für unsauber arbeitende Programmierer oder Tester gedacht. Jeder nicht abgefangene Interrupt zeigt sich so, ebenso auch jeder noch so kleinste Spannungseinbruch - weil hier jedes Programm beim Start vorbei muss. Und was kommt nach nem Reset? GEnau - ein Start. Der Code ist ziemlich simpel, mein main fängt so an (ok, ich weiß, dass das NICHT arduino-language ist).

    Code:
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     int main(void)
     {                              //
      uint8_t       i;              //
    // - - - - - - - - - - - - - - -
    // Ports:  A = Ausgang, E = Eingang ohne , EU = Eingang MIT PullUp, siehe oben
    // DDRx:   als Ein- (0) oder Ausgänge (1) konfigurieren, Pins/Pull Ups (1) aktiv
    // PORTx:  Eingänge: Pullup  =  1;   Ausgaenge:  low  =  0,   high    =  1
      DDRB  = 0b00100111;   // Mot1/2: PB1 = OC1A-MotorPWM; PB2 = OC1B-MotorPWM
      PORTB = 0b11011000;   //      PB5 - onBoard-rtLED
                            //
      DDRC  = 0b01101111;   // PC6+7-Pin  NUR bei babyorangutan (TQFP+MLF)
      PORTC = 0b10100000;   // PC0=LHeart/~beat, PC1=GND, PC2=LEDTst
                            // PC3=GND, PC4-ADC/Srv-Poti ohne Pullup, PC5=VccPoti!!
                            // 
                            // PD5/PD6 = M1B/M1A, PD7 = Taste: PullUP !
      DDRD  = 0b01100010;   // RX/TX-PD0/1, PD2 = INT0-Servopuls,
      PORTD = 0b10010101;   //   Pull Ups aktivieren, mit pololuMot AUCH bei INT0/~1
                            //
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      for(i=0; i<10; i++)   // LEDs blinken bevor Interrupts erlaubt sind   ==> um
      {                     //      ungewollte Resets u.ä. besser erkennen zu können
                            // ###>>> HeartbeatLEDs schalten Aode -<|- Portpin <<<###
        SetBit(PCLED, LHeart);  // gnLED/PC1 EIN, HELL           << ist (m)ein Macro
        SetBit(PORTB,    PB5);  // gnLED/PB EIN, HELL
        wms(3);             //                                   << ein simples wait Millisekunden
        ClrBit(PCLED, LHeart);  // LED aus
        ClrBit(PORTB,    PB5);  //
        wms(97);            //
        SetBit(PCLED, LEDTst);  // rtLED/PC6 EIN, HELL
        SetBit(PDLED,    LDr);  // rtLED auf PD1, babyo-spezifisch = onBoard + TX !!
        wms(3);             //
        ClrBit(PCLED, LEDTst);  // LED aus
        ClrBit(PDLED,    LDr);  // LED aus
        wms(97);            //
      }             // Ende von for(i=0; i<nn; i++)
      ClrBit(PDLED, LDr);   // rtLED auf JEDEN Fall aus
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    // ##>> JETZT werden die Timer-/Zeit-Größen gesetzt, siehe Header ~tmr~.h
    Ciao sagt der JoeamBerg

  5. #5
    HaWe
    Gast
    Zitat Zitat von VolkerB Beitrag anzeigen
    Ich erkenne das das Programm nicht startet daran, das das Display eben dunkel bleibt und nichts weiter passiert.
    Ich kann da gerne noch mal eine Diode blinken lassen um das abzusichern.

    Ok, mit den Fuse- Bits habe ich mich auch schon beschäftigt, die sind aber beim Arduino schon initial so vorbelegt, das der Start langsam ist (14CK + 65ms).
    Ich wüsste auch nicht wie ich die mit meinen Mitteln umprogrammieren könnte.

    Ich verstehe eben auch nicht warum das am PC funktioniert und am separaten Netzteil eben nicht.

    Ich werde die Diode mal einbauen um zu beweisen das wirklich nichts läuft und nicht nur das Display dunkel bleibt. Das wird aber jetzt ein paar Tage dauern, da ich ab morgen 3 Tage unterwegs bin.

    Gruß Volker
    Mit fuse-bits hast du bei Arduino nichts am Hut, sowas kann nur von nicht-Arduinorianern kommen...

    kontrolliere doch einfach mal den Programmablauf per Serial.println(), womit du alle setup()-inits und dann in der loop() auch alle OLED-Anzeigen zusätzlich seriell ausgibst, zum Nachverfolgen!

    - - - Aktualisiert - - -

    edit -
    Denkfehler: ich übersah. dass es ja angeschlossen am PC IMMER funktioniert, also NIE ein Startfehler - dann geht es ntl nicht mit Serial

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Der Unterschied beim Starten des Programms ist der, das nach dem Programm laden, die Stromversorgung schon vorhanden ist und das Display damit schon genug Zeit hatte Startbereit zu sein.
    Beim Anstecken der Stromversorgung, auf RAW sollten es zumindest 7V sein, läuft der Arduino schon bei Erreichen der in den Fuses eingestellten 2,7V los, das OLED etwas später und möglicherweise auch etwas langsamer.

    Einfache Abhilfe schafft hier das von Oberallgeier genannte Blinken oder ein einfaches "delay(100);" im setup.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  7. #7
    HaWe
    Gast
    Zitat Zitat von Hubert.G Beitrag anzeigen
    Der Unterschied beim Starten des Programms ist der, das nach dem Programm laden, die Stromversorgung schon vorhanden ist und das Display damit schon genug Zeit hatte Startbereit zu sein.
    Beim Anstecken der Stromversorgung, auf RAW sollten es zumindest 7V sein, läuft der Arduino schon bei Erreichen der in den Fuses eingestellten 2,7V los, das OLED etwas später und möglicherweise auch etwas langsamer.
    nicht ganz, der OP schreibt ja:
    2. Wenn ich jetzt den Strom unterbreche (FTDI-Modul oder USB-Kabel abziehe), und die Verbindung wieder herstelle, beginnt das Programm erneut zu laufen, soweit ok.
    3. Versorge ich jetzt den Arduino nicht über den PC sondern aus einem USB-Steckernetzteil oder auch über den RAW-Eingang mit Spannung (5V), startet das Programm nicht..
    also per USB/PC geht es nach ab- und anstecken,
    aber per USB/Adapter geht es nicht.

    die +5V Buchse am Arduino ist identisch mit der stabilisierten 5V Spannung, die der interne Arduino-Adapter liefert, also auch kein Unterschied zu USB+5V, also braucht man da auch keine 7V - wobei ich da auch nicht weiß, wo und wie "RAW-Eingang" definiert ist (der Pin, der mit dem Netzteil-Stecker identisch ist, heißt normalerweise Vin, nicht RAW).
    Geändert von HaWe (14.12.2017 um 14:17 Uhr) Grund: typo

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.687
    Zitat Zitat von VolkerB Beitrag anzeigen
    .. und auf einem OLED SSD1306 zur Anzeige bringt ..
    Zitat Zitat von damfino Beitrag anzeigen
    .. Problem das der eingebaute Spannungsregler viel zu schwach ist. Mit Display dran überhitzt der und regelt die Leistung zurück ..
    Habs grad an (m)einem 1306 gemessen (nanoClone, 20 MHz, I²C: SCL_CLOCK 400000L):
    Keine Anzeige ("Nicht"Start trotz Initialisierung) : . . . . . . . . .. . . . . . . . .1,15 mA
    Wenig Anzeige (Uhrgrafik analog und acht Buchstaben) weiß auf schwarz: 22,94 mA
    Wenig Anzeige (Uhrgrafik analog und acht Buchstaben) schwarz auf weiß: 21,83 mA

    @damfino: welches Display war das denn bei Dir ? Wieviel Power zieht Dein Display?
    Ciao sagt der JoeamBerg

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.08.2008
    Ort
    Graz
    Beiträge
    521
    War ein 3.2" TFT am Arduino Mega. Je nach Eingangsspannung stieg der Regler ab 120mA aus. Die angebenenen 500mA erreicht man nur bei ca 6.5V Eingangsspannung. Darunter geht er nicht, darüber wird er zu heiss.
    Es ist auch mehr als nur Display angeschlossen
    alles über meinen Rasenmäherroboter (wer Tippfehler findet darf sie gedanklich ausbessern, nur für besonders kreative Fehler behalte ich mir ein Copyright vor.)

  10. #10
    HaWe
    Gast
    Zitat Zitat von damfino Beitrag anzeigen
    War ein 3.2" TFT am Arduino Mega. Je nach Eingangsspannung stieg der Regler ab 120mA aus. Die angebenenen 500mA erreicht man nur bei ca 6.5V Eingangsspannung. Darunter geht er nicht, darüber wird er zu heiss.
    Es ist auch mehr als nur Display angeschlossen
    In der Tat machen viele ILI9225 oder ILI9341 etc solche Probleme, allerdings sind es meist SPI Geräte, nicht I2C wie beim OP.
    Auch die Libs von Henning Karlsen sind (Software-) SPI-Libs.
    Vermutlich hilft dann dieser Tipp mit dem TFT nicht sehr viel weiter.

    Der OP hingegen hat wohl ein I2C OLED, das hat normalerweise noch nicht einmal einen Reset-Pin. Es wäre in der Tat interessant, welche Lib er benutzt, oftmals werden die von Adafruit verwendet (verwende ich auch am ESP8266 und am Nano, dort hatte ich aber nie solche Start-Probleme beobachten können).

    @VolkerB: welche OLED-Lib benutzt du? Und wieviel mA liefern dein Netzgerät bzw. dein USB Steckernetzteil?
    Geändert von HaWe (16.12.2017 um 19:21 Uhr)

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 22
    Letzter Beitrag: 12.12.2013, 10:39
  2. [ERLEDIGT] PC startet nicht von CD/DVD
    Von oderlachs im Forum Offtopic und Community Tratsch
    Antworten: 6
    Letzter Beitrag: 08.01.2013, 20:24
  3. Arduino IDE startet (schon wieder) nicht
    Von robo_tom_24 im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 27.11.2012, 22:56
  4. Antworten: 1
    Letzter Beitrag: 14.10.2012, 17:12
  5. Arduino IDE startet nicht
    Von robo_tom_24 im Forum Arduino -Plattform
    Antworten: 11
    Letzter Beitrag: 01.10.2012, 15:54

Berechtigungen

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

12V Akku bauen