Mazzer SJ: Arduino Timer mit OLED

Diskutiere Mazzer SJ: Arduino Timer mit OLED im Mühlen Forum im Bereich Maschinen und Technik; Das Ablaufschema ist fertig und steht zum Download bereit....

  1. Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
    mamu gefällt das.
  2. #222 Richy, 24.05.2015
    Zuletzt bearbeitet: 01.06.2015
    Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
    Der Bug ist behoben, ein neuer ist gefunden und im Video verewigt (aber zum Glück nur ein unbedeutender...) :)

    Ich habe wieder ein kleines Demovideo gemacht, welches in ca. 2h auf YouTube hochgeladen ist. Das Video zeigt den Umgang mit dem Timer und erklärt, welche sinnvollen Voreinstellungen man im Code noch machen kann (aber nicht muss).

    EDIT: Video gelöscht, da es inzwischen veraltet ist. Ich mache bei Gelegenheit ein neues Video mti der aktuellen Verion...

    Das Video sollte gegen 15:30 online sein, bis dahin werde ich auch den Code hochladen, so dass ihr beides gemeinsam nutzen könnt.

    Ich klassifiziere die Software übrigens als BETA! Es könnten also noch Bugs versteckt sein, die ihr bitte hier postet sofern ihr einen findet. Danke dafür im voraus!

    PS leider ist die Qualität des Videos nicht so gut wie sonst, da meine gute Kamera gerade mit meiner Freundin unterwegs ist. Ich hatte nur die alte Möhre zur Verfügung.
    Aufgrund der schlechtern Qualität sollte man das Video auf YouTube direkt schauen und dort die Auflösung auf 480 stellen. Ansonsten kann man die Zahlen nicht lesen...
     
  3. mamu

    mamu Mitglied

    Dabei seit:
    25.04.2011
    Beiträge:
    3.294
    Zustimmungen:
    726
    "Dieses Video ist privat".
    Klappt leider nicht.

    BTW: Konntest du den Datentyp "double" vermeiden?
     
  4. Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
    Das Video ist nicht privat, es ist lediglich noch nicht hochgeladen. Ich habe doch geschrieben, dass es erst ca. 15.30 Uhr online sein wird (habe leider einen miesen uplink).

    Ja, den Datentyp "double" konnte ich durch Multiplikationen/Divisionen mit Zehnerpotenzen vermeiden. Manchmal hat man echt ein Brett vor'm Kopp... so wie ich in dieser Situation. Ich hatte die Multiplikationen schon vor deinem Tipp versucht allerdings auf beide Faktoren angewendet... argh... blöder Denkfehler :confused:
     
  5. #225 Richy, 24.05.2015
    Zuletzt bearbeitet: 26.05.2015
    Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
    So, das Video ist online und der Code ist hochgeladen. Ihr findet alles hier bzw. auf YouTube:

    https://www.wuala.com/Cosmicos/SoftFidelity/Mühlentimer/OledTimerWizard/?key=bh3lscgclbc5

    Wichtig, der Code funzt nur mit einer aktuellen Arduino-Version. Ich empfehle 1.6.4

    Der Bug aus dem Video ist behoben. Statt der 1.00 als Standard-Faktor habe ich mich jedoch dazu entschieden auch die Faktoren als Vorauswahl im Code anzubieten. Das ist für diejenigen eine Erleichterung, die bereits jetzt mit Faktoren arbeiten und diese kennen.

    Hier nochmals zur Übersicht alle sinnvollen Vorauswahlen (am Beispiel meiner T80):

    Code:
    long doseTime[]             = { 3000, 30, 35, 60, 71, 105, 0 };   // time in 1/10s that is value 55 for 5.5s. First position is manually grind mode (3000ms = 5 minutes).
    long factor[]               = { 0, 116, 171, 116, 150 };          // factor preselection (usefull if skipping probe grinding). First position is a placeholder because of manually grind mode!!!
    byte dose[]                 = { 0, 60, 70, 120, 140, 210 };       // preselection doses. First position is a placeholder because of manually grind mode!!!
    byte quickButtonPortion[]   = { 1, 2 };                           // preselection quickbuttons
    char *portion_name[]        = {" 6g"," 7g","12g","14g","21g" };   // names of doses (the weight in gram) which are shown on display
    byte probeGrindTime         = 100;                                // preselect time for probe grinding
    Dies sind Vorgabewerte, die vom Timer angezeigt bzw. verwendet werden, wenn man selber nicht eingibt (z.B. wenn man die Mahlprobe überspringt). Wer also seine Mühle und deren Parameter kennt, der kann die bereits bekannten Zeiten, die verwendeten Dosen, die bekannten Faktoren etc. fest im Code eintragen. Der Wizard zeigt diese Werte dann als Ausgangswerte an. Selbstverständlich können alle Werte vom Wizard bzw. im Programmiermodus des Timer per Encoder verändert werden. Es handelt sich NUR um eine Vorauswahl, durch die man "Dreherei" am Encoder einspart...
     
    hobbes_II, caffeefrank und mamu gefällt das.
  6. #226 firsthuman, 25.05.2015
    firsthuman

    firsthuman Mitglied

    Dabei seit:
    21.05.2008
    Beiträge:
    14
    Zustimmungen:
    0
    Ich würde gerne einen externen Timer an meine Graef-Mühle anschließen. Ich denke so ein Arduino-Timer wäre schöner als ein Fototimer.
    Gibt es Erfahrung zum externen Betrieb? Wie steuert man am Besten die Mühle an? Es gäbe ja z. B. Schuko-Dosen mit Kabel und Schalter, bei denen man den Schalter durch den Timer ersetzen könnte. Also eine kleine Box dran. Welche Spannung müsste der Arduino dabei schalten? Was wäre die einfachste Lösung?
     
  7. mamu

    mamu Mitglied

    Dabei seit:
    25.04.2011
    Beiträge:
    3.294
    Zustimmungen:
    726
    Arduino schaltet Relais.
    Aber, aufgrund der Fragen solltest du es dir nochmals überlegen, es geht um 230V und die können tödlich sein.
     
  8. #228 firsthuman, 25.05.2015
    firsthuman

    firsthuman Mitglied

    Dabei seit:
    21.05.2008
    Beiträge:
    14
    Zustimmungen:
    0
    Das ist schon klar.
    Eigentlich meinte ich, wohin man das Relais am besten verbaut, wenn man den ganzen Aufbau extern haben will (also kein Display in die Mühle einbauen möchte). Und ob es dazu schon Erfahrungen gibt.
    Also alles in eine box zwischen Mühle und Steckdose? Oder besser das Relais in die Mühle und den Rest in eine box? Oder ein Zwischenstecker mit Schalter besorgen und den Aufbau statt des Schalters anschließen? Evtl. Gibt es ja auch fertige Zwischenstecker mit Schalter am Extra-Kabel oder ähnlich, bei denen der Schalter mit 5V schaltet?
    Ich hoffe es wird klar was ich meine.
     
  9. #229 firsthuman, 25.05.2015
    firsthuman

    firsthuman Mitglied

    Dabei seit:
    21.05.2008
    Beiträge:
    14
    Zustimmungen:
    0
    Das hier scheint zum Beispiel so eine Lösung zu sein:
    http://www.conrad.de/ce/de/product/611769/5-FACH-MASTER-SLAVE-LEISTE-MIT-USB
    http://www.mikrocontroller.net/topic/211158#3264633
    Also Arduino, Display etc in ein externes Gehäuse und steuert dann die Steckdosenleiste mit 5V über dessen USB-Eingang. Vorteile wären: keine 220V-Arbeiten, keine Änderung an der Mühle und man könnte auch gleich vier Mühlen parallel betreiben :)
    Sowas in der Art meinte ich. Falls das mit dieser Leiste funktioniert wäre es vielleicht die einfachste externe Lösung?
     
  10. #230 Richy, 25.05.2015
    Zuletzt bearbeitet: 25.05.2015
    Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
    Es gibt eine BETA 2!

    Ich habe heute morgen noch einen Bug gefunden. Wenn man 2 Siebe auswählte, dann ließ sich anschließend die Ja/Nein Auswahl nicht mehr bedienen. Der Bug wurde behoben.

    Des Weitern gibt es eine konzeptionelle Änderung:

    Das Probemahlen dient ja der automatischen Ermittlung aller Timerwerte. Dies macht aber im Prinzip nur dann Sinn, wenn die Mühle korrekt eingestellt ist (also auf den richtigen Mahlgrad). Bei der Konfiguration einer neuen (unbekannten) Mühle kennt man den optimalen Mahlgrad aber noch gar nicht :confused:

    Ich habe die Probemahl-Funktion nun so modifiziert, dass man die Zeit im Wizard selber einstellen kann und die Probemahlung beliebig oft wiederholen kann.
    Für jede neue Probe kann natürlich auch die Zeit wieder verändert werden. Das Ablaufschema ist ebenfalls angepasst, dort sieht man das vielleicht deutlicher...

    Auf diese Art und Weise kann man sich im Wizard die Mühle so einstellen, dass man einen optimalen Espresso (oder was auch immer) hinbekommt. Nur dann ist die Extrapolation der anderen Timer-Zeiten sinnvoll :cool:

    Code wie immer hier: https://www.wuala.com/Cosmicos/SoftFidelity/Mühlentimer/OledTimerWizard/?key=bh3lscgclbc5

    Code:
    changelog v05/25/15
     - bugfixes (2 doses yes/no problem solved)
     - added probeGrindTime as preselection in config section
     - added probeGrindTime input in wizard
     - added repeat function for probe grinding
     - recalculate times only if something has been changed (auto-factor = yes)
    
    
     
  11. Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
    Das sollte funktionieren. Du könntest ein USB-Netzteil in die Master-Steckdose stecken, welches dann den Arduino versorgt. An das USB-Kabel schließt du dann den Schaltausgang des Arduino an und der schaltet dann die Slave-Steckdosen. Diese Lösung wäre mir aber zu teuer und zu groß (die riesige Steckdosenleiste).

    Ich löte den Nano einfach auf eine Lochrasterplatine. Dort kommen dann noch die Elektronik für die Spannungsversorgung und ein SSR drauf. Das ist auch nicht teurer, dafür aber kompakter. Es ist natürlich einiges an Lötarbeit. Das Ganze passt dann auch problemlos in ein kleines Gehäuse mit Schuko-Steckdose, ich baue es allerdings in die Mühle ein.
    Die Schaltungen mache ich so wie beim AVR-Mühlentimer.
     
  12. #232 hobbes_II, 26.05.2015
    hobbes_II

    hobbes_II Mitglied

    Dabei seit:
    15.10.2004
    Beiträge:
    379
    Zustimmungen:
    125
    Hallo zusammen,

    erstmal herzlichen Dank an Richy! Tolle Arbeit und sehr ausführlich dokumentiert.
    Aktuell nutze ich den Code von mamu mit SPI Display. Ich würde aber gerne mal den Code von Richy ausprobieren.
    Beim Versuch das Display einfach auf SPI umzustellen indem ich im Code anstelle von
    Code:
    U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);
    Code:
    U8GLIB_SSD1306_128X64 display(10, 9)
    einfüge, führt zu Fehlern.

    Kann da jemand helfen? Ist das einfach zu beheben oder müsste der Code von Richy umfangreich modifiziert werden?

    Besten Dank im Vorraus
    Flavio
     
  13. mamu

    mamu Mitglied

    Dabei seit:
    25.04.2011
    Beiträge:
    3.294
    Zustimmungen:
    726
    Hast du jetzt ein I2C oder SPI-Display? Verstehe es gerade nicht.
     
  14. #234 hobbes_II, 26.05.2015
    hobbes_II

    hobbes_II Mitglied

    Dabei seit:
    15.10.2004
    Beiträge:
    379
    Zustimmungen:
    125
    Hallo mamu,

    sorry ich habe jetzt ein SPI display. Der Code von Richy ist ja aber für I2C.

    Grüße
    Flavio
     
  15. mamu

    mamu Mitglied

    Dabei seit:
    25.04.2011
    Beiträge:
    3.294
    Zustimmungen:
    726
    Wenn du es so gemacht hast, wie oben angegeben, dann musst die die Variable "u8g" nennen und nicht "display". Bei mir heißt sie display, bei Ritchy wohl u8g (habe den Code nicht gerade vor mir)
     
  16. Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
    So ist es. Die Variable heißt bei mir im Code u8g. Das war schon so in der original-Version.
    Versuche es mal so:
    Code:
    U8GLIB_SSD1306_128X64 u8g(10, 9)
     
  17. #237 hobbes_II, 26.05.2015
    hobbes_II

    hobbes_II Mitglied

    Dabei seit:
    15.10.2004
    Beiträge:
    379
    Zustimmungen:
    125
    super funktioniert! werde heute abend mal die Mühle inkl. neuen Code testen und berichten
     
  18. #238 hobbes_II, 26.05.2015
    hobbes_II

    hobbes_II Mitglied

    Dabei seit:
    15.10.2004
    Beiträge:
    379
    Zustimmungen:
    125
    noch eine Frage zum SPI. Diese funktioniert generell scheint aber deutlich empfindlicher bezüglich Störunge als das I2C zumindest bei mir. Störungen treten immer zum Ende des Timers auf.
    Pull-Up Wiederstände sind noch nicht drin, war aber bei I2C auch nicht nötig. Hatte gedacht SPI wäre weniger anfällig?! Hat jemand einen Tip?

    Beste Grüße
     
  19. Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
    Ist dein Kabel zum Display abgeschirmt und liegt der Schirm auf Masse?
     
  20. #240 Richy, 26.05.2015
    Zuletzt bearbeitet: 26.05.2015
    Richy

    Richy Mitglied

    Dabei seit:
    21.04.2012
    Beiträge:
    646
    Zustimmungen:
    413
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. [Verkaufe] Mazzer super jolly ugly beast

    Mazzer super jolly ugly beast: Verkaufe hier meine Mazzer super Jolly Mühle. Leider hat sie einige Macken im Lack und die Deckel vom Hopper und Doser fehlen. Ansonsten...