Mazzer SJ: Arduino Timer mit OLED

Diskutiere Mazzer SJ: Arduino Timer mit OLED im Mühlen Forum im Bereich Maschinen und Technik; Hallo, nachdem ich diesen Thread entdeckt habe, habe ich mich entschieden, meine Ditting 804 auf einen Direktmahler mit diesem Timer umzubauen....

  1. Segler

    Segler Mitglied

    Dabei seit:
    05.02.2013
    Beiträge:
    119
    Zustimmungen:
    34
    Hallo,
    nachdem ich diesen Thread entdeckt habe, habe ich mich entschieden, meine Ditting 804 auf einen Direktmahler mit diesem Timer umzubauen.

    [​IMG] [​IMG]

    Inzwischen habe ich die Mühle lackieren lassen; auf Direktmahler umgebaut und die Teile für den Timer bestellt. (plus neuer Mahlscheiben (fragt nicht, wie teuer:)) )

    [​IMG]
    [​IMG]

    Jetzt bin ich in der für mich schwierigsten Phase: Den Timer zu bauen. Schwierigkeit dabei für mich ist die "Arduino-Arbeit". Sonst denke ich, würde ich es schaffen, die Kabel zu verbinden / löten.
    Ich habe heute die Arduino runtergeladen und installiert, den Code von @Richy runtergeladen in die Bibliothek eingefügt. Um die Arduino zu testen, habe ich auf "überprüfen / Kompillieren" geklickt.Und sofort eine Fehlermeldung erhalten:

    Arduino: 1.6.4 (Windows Vista), Platine: "Arduino Nano, ATmega328"

    Verwende die Bibliothek MsTimer2 im Ordner: C:\Program Files\Arduino\libraries\MsTimer2 (legacy)

    Verwende die Bibliothek U8glib im Ordner: C:\Users\user\Documents\Arduino\libraries\U8glib (legacy)


    "
    C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -Wall -Wextra -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10604 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs -IC:\Program Files\Arduino\libraries\MsTimer2 -IC:\Users\user\Documents\Arduino\libraries\U8glib C:\Users\user\AppData\Local\Temp\build2544834149833716967.tmp\OledTimerWizard.cpp -o C:\Users\user\AppData\Local\Temp\build2544834149833716967.tmp\OledTimerWizard.cpp.o

    OledTimerWizard.ino:57:68: fatal error: ClickButton.h: No such file or directory
    compilation terminated.
    Fehler beim Kompilieren. "

    So viel ich verstanden habe, hat das Problem mit dem "ClickButton" zu tun. Das ist auch schon alles, was ich verstanden habe ;).

    Ich bin für jede Hilfe dankbar

    Schöne Grüße
    Segler
     
  2. Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
    Das reicht doch :)
    Du hast offenbar die Library nicht heruntergeladen und an die richtige Stelle kopiert, daher wird sie nicht gefunden.
    Also... runterladen, installieren, alles kompilieren, fertig.
    Grüße
    Ralf
     
  3. Segler

    Segler Mitglied

    Dabei seit:
    05.02.2013
    Beiträge:
    119
    Zustimmungen:
    34
    Hallo Ralf,
    schön, dass Du Dich gemeldet hast. Drauf habe ich gewartet:).

    Ich habe irgendwie geschafft, die ClickButton Library an die richtige Stelle zu kopieren. Es hat auch mit dem Kompillieren auch geklappt. Ich habe sogar den sketch auf Nano hochgeladen. Leider kann ich auf dem Display gar nichts sehen. Das SPI Display ist mit dem Nano os verbunden:

    VCC<---->5V
    GND<---->GND
    CLK<---->D10
    MOSI<--->D9
    CS<----->D12
    DC<----->D11

    Hat das mit dem Display oder Kabeln zu tun? Oder muss ich was mit dem Code machen?

    Grüße
    Eray
     
  4. Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
    Sowohl als auch...
    Versuche es mal so:

    CLK -> PIN D13
    MOSI -> PIN D11
    DC -> PIN D9
    CS -> PIN D10

    Außerdem musst du noch diese Zeile im Code finden und aktivieren. Die Zeile für I2C wird deaktiviert.

    U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11)

    Dann kompilierst du neu, lädst den Code hoch und dann sollte es klappen...
     
  5. Segler

    Segler Mitglied

    Dabei seit:
    05.02.2013
    Beiträge:
    119
    Zustimmungen:
    34
    Guten Morgen,
    die Zeile sehen jetzt so aus: Sind das die richtige Zeile?

    // display
    U8GLIB_SSD1306_128X64 u8g(10, 9); // HW SPI Com: CS = 10, A0 = 9 (Hardware Pins are SCK = 13 and MOSI = 11)
    //U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK); // I2C
    #define display_width 128
    #define display_height 64
    volatile boolean refreshDisplay = true;

    Jetzt kann mann auf dem Display was unlesbares sehen.


    Ausserdem eine blöde Frage: welchen Code sollte ich nehmen? Ich habe den neuesten OledTimerWizard_BETA_5.zip genommen, ohne zu wissen, was Wizard in diesem Fall bedeutet:)
     
  6. Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
    Ja, das sind die richtigen Zeilen. Du musst nun darauf achten, dass die Pins, die du für das SPI-Display verwendest (9,10,11,13), im Code nicht gleichzeitig für andere Aufgaben verwendet werden.
    In der Beta5 hatte ich z.B. das Relais auf D13. Das wäre dann eine Kollision. Du musst im Code dann im Konfigurationsteil andere Pins auswählen. Bei mir sieht es z.Zt. so aus:

    Code:
    // *** BEGIN OF CONFIG SECTION ************************************************************************************************************************
    // define arduino pins
    #define ENCODER_A_PIN  2
    #define ENCODER_B_PIN  3
    #define BTN_PIN        4
    #define QBTN_PIN_1     5  // pin quickbutton 1
    #define QBTN_PIN_2     6  // pin quickbutton 2
    #define RELAY_PIN      7
    #define PINtoRESET     12 // connect wire from this pin to rst in order to use the soft-reset function
    
    Damit hättest du keine Kollision mit dem SPI-Display, musst aber das Relais auf D7 anschließen.

    Zum Code: Von meiner Timer-Version ist die Beta5 aktuell. Kannst du nehmen. Das "Wizard" bedeutet lediglich, dass du bei der ersten Inbetriebnahme des Timers eine geführte Konfiguration machen kannst/musst (Wizard...).
     
  7. Segler

    Segler Mitglied

    Dabei seit:
    05.02.2013
    Beiträge:
    119
    Zustimmungen:
    34
    Ich danke Dir Ralf für die Mühe und Zeit.

    Meine Zwischenbericht: Ich habe das Relais noch nicht angeschlossen. Dafür habe ich D7 frei gelassen. Angeschlossen sind nur das Display und Nano. Ich habe mit Deinen 2 Codes getesten. Sieht folgendes aus:

    OledTimer

    // define arduino pins
    #define ENCODER_A_PIN 2
    #define ENCODER_B_PIN 3
    #define BTN_PIN 4
    #define QBTN_PIN_1 5 // pin quickbutton 1
    #define QBTN_PIN_2 6 // pin quickbutton 2
    #define RELAY_PIN 13

    [​IMG]


    OledTimerWizard

    // define arduino pins
    #define ENCODER_A_PIN 2
    #define ENCODER_B_PIN 3
    #define BTN_PIN 4
    #define QBTN_PIN_1 5 // pin quickbutton 1
    #define QBTN_PIN_2 6 // pin quickbutton 2
    #define RELAY_PIN 7
    #define PINtoRESET 12 // connect wire from this pin to rst in order to use the soft-reset function

    [​IMG]


    Mit OledTimer sieht super aus:), jedoch mit Wizard:(.
     
  8. mamu

    mamu Mitglied

    Dabei seit:
    25.04.2011
    Beiträge:
    3.294
    Zustimmungen:
    726
    Wenn @Richy keine weitere Idee hat, lass doch mal die RST-Leitung weg. Habe ich noch nie genutzt.
     
  9. Segler

    Segler Mitglied

    Dabei seit:
    05.02.2013
    Beiträge:
    119
    Zustimmungen:
    34
    Das Display hat keinen RST-Anschluss. RST am Nano ist frei.
    Eine kleine Frage: Sind die Pin-Nummern im Code die D-Nummern am Nano? Z.B. #define RELAY_PIN 7 ist D7 am Nano?
     
  10. Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
    Im Prinzip ja. Nur bei Verwendung eines I²C-Displays muss man auch A4 und A5 verwenden (SDA, SCL).
    [​IMG]
     
  11. Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
    Aha, die alte OLED-Timer Version hat das Relais auf D13 und das funktioniert trotzdem??? Na ja, vermutlich gibt es dann aber Bildstörungen beim Mahlen...
    Unterschiede dieser beiden Versionen sind ja nur D13 und D12. Komisch, dass dann die Beta5 nicht funzt :mad:

    Aktiviere doch mal den Display-Bug workaround:
    Code:
      // display bug workaround (not needed on my display)
      stateIdx = SJSET; drawDisplay();
      stateIdx = SJOFF; drawDisplay();
     
  12. Segler

    Segler Mitglied

    Dabei seit:
    05.02.2013
    Beiträge:
    119
    Zustimmungen:
    34
    :) Das sieht immer besser aus.
    [​IMG]
     
  13. Segler

    Segler Mitglied

    Dabei seit:
    05.02.2013
    Beiträge:
    119
    Zustimmungen:
    34
    Ich glaube, ich gebe zuerst auf. Getestet wurde es auch noch mit 2 anderen SPI Displays, mehr oder weniger das gleiche Ergebnis.
    Ich hatte noch ein I2C Display bestellt, ist aber noch nicht angekommen. Vielleicht funktioniert das damit.
    Lieben Dank an @Richy
     
  14. mamu

    mamu Mitglied

    Dabei seit:
    25.04.2011
    Beiträge:
    3.294
    Zustimmungen:
    726
    @Segler: hast du nur zum Test mal einen der anderen hier veröffentlichten Codes aufgespielt? Wenn ja, welchen und wie war das Ergebnis? Hinweis Pins vorher genau abgleichen.
     
  15. Segler

    Segler Mitglied

    Dabei seit:
    05.02.2013
    Beiträge:
    119
    Zustimmungen:
    34
    Mit dem alten OledTimer hat das funktioniert, zumindest das Display. Siehe #427. Leider ist das nicht mein Gebiet. Deswegen weiß ich nicht, was ich im Code ändern soll. Vielleicht ist das ein ganz simpler Fehler.
     
  16. mamu

    mamu Mitglied

    Dabei seit:
    25.04.2011
    Beiträge:
    3.294
    Zustimmungen:
    726
    In #427 steht doch nur dass du eine andere Version und nicht einen der andere Codes getestet hast.
     
  17. Segler

    Segler Mitglied

    Dabei seit:
    05.02.2013
    Beiträge:
    119
    Zustimmungen:
    34
    @mamu
    Ok, welches z.B soll ich testen? Ein anderes Timercode? oder ganz was anderes?
     
  18. mamu

    mamu Mitglied

    Dabei seit:
    25.04.2011
    Beiträge:
    3.294
    Zustimmungen:
    726
  19. Segler

    Segler Mitglied

    Dabei seit:
    05.02.2013
    Beiträge:
    119
    Zustimmungen:
    34
    Ich glaube, das war Dein Code.

    [​IMG]
     
  20. mamu

    mamu Mitglied

    Dabei seit:
    25.04.2011
    Beiträge:
    3.294
    Zustimmungen:
    726
    Ok, sieht auch nicht gut aus.
    Hast du nach den jeweiligen Code-Änderungen das Oled komplett stromlos gemacht? Nicht nur Reset durch Upload/Loader?
     
Thema:

Mazzer SJ: Arduino Timer mit OLED

Die Seite wird geladen...

Mazzer SJ: Arduino Timer mit OLED - Ähnliche Themen

  1. [Verkauft] Mazzer Mini Direktmahler- Arduino Timer, Mazzer SJ Scheiben

    Mazzer Mini Direktmahler- Arduino Timer, Mazzer SJ Scheiben: Liebes Forum, seit 2018 zog es mich in Richtung einer anderen Mühle. Inziwschen habe ich 2 andere Mühlen bei mir stehen. Die Mazzer - die ich 2018...
  2. [Verkauft] Mazzer Mini Direktmahler- Arduino Timer, Mazzer SJ Scheiben

    Mazzer Mini Direktmahler- Arduino Timer, Mazzer SJ Scheiben: Liebes Forum, mich zieht es in Richtung einer anderen Mühle. Daher würde ich mich von meinem jetzigen Begleiter trennen - dabei handelt es sich...
  3. [Verkauft] Mazzer Jolly Direktmahler Arduino

    Mazzer Jolly Direktmahler Arduino: Da die Mühle zu schade zum rumstehen ist. Verkaufe meine zum Direktmahler umgebaute Mazzer Jolly mit Arduino Steuerung gemäß diesem Thread....
  4. Mazzer SJ: Arduino Waage

    Mazzer SJ: Arduino Waage: Hallo an alle begeisterten Arduino Bastler! Ich habe heute einige Stunden investiert und meine Idee, die SJ über eine Waage zu steuern,...
  5. Mühle für Filterkaffe und Espresso, Upgrade zur Mazzer Mini und Ergänzung zur C40

    Mühle für Filterkaffe und Espresso, Upgrade zur Mazzer Mini und Ergänzung zur C40: Hallo zusammen, seit mehreren Jahren lese ich hier schon still mit und wollte mich nun auch mit einer Frage an die Experten wenden. Ich suche...