Arduino, Frequenz mittels Encoder einstellen und ausgeben.

  • Hallo Kai, ich ziehe anerkennend mit großem Dank und Respekt meinen Hut für Deine große Geduld mit mir und Deine Hilfsbereitschaft.

    Immer wieder sitze ich grübelnd vor Deinem Code und versuche wenigstens etwas davon zu verstehen.

    Es freut mich auch, dass doch einige andere User, wenn auch nur mitlesend, uns bei unserem Austausch hier begleitet haben und bestimmt auch von Deinem Wissen profitieren.


    Heute habe ich hier im Forum über Dein Projekt DCF77 Uhr gelesen, dass ich auch sehr spannend finde.


    Grüße, Franz

  • Ich habe noch einmal ein paar kleiner Änderungen im Code vorgenommen und noch ein paar Byte eingespart...


    Das wars dann auch erst mal. Ich denke er erfüllt nun seinen Zweck. Der Link zum Code ist immer noch derselbe wie in #63 und #60.

  • Da bin ich aber froh, dass Du selber drauf gekommen bist :). In der Simulation gibt es halt kein SPI Display.


    Ich habe den Code in der Frequenzgenerator-OLED.ino noch einmal aufgeräumt und durchgefegt. Außerdem die Steuerung noch etwas (ich denke zum besseren) angepasst.

    Verwende diesen Code. Dort musst du nur in der Zeile 8 die Kommentarzeichen // vor dem //#define U8G2_SPI_DISPLAY entfernen, dann sollte der Code für dein SPI Display compiliert werden. Falls Du dann irgendwann mal in I2C Display verwenden willst, mach einfach aus dem #define wieder einen Kommentar.


    Interessant. Bei Dir wird die Schrift gelb, bei meinem Monochrome Display wird die Schrift(farbe) invertiert.

  • Kai, ich habe den von Dir eingesetzten Code: U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);

    ersetzt durch

    U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 7, /* reset=*/ 8);


    Es funktioniert!!!


    003.JPG

  • Hallo Kai, herzlichen Dank.

    Den Sketch kann ich kompilieren und laden, aber das Display bleibt dunkel.

    Es funktioniert aber, weil ich vorher mit einem eigenen Menü (nur Anzeige ohne Funktion) getestet habe.


    Dieses Waveshare SPI Display: U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 7, /* reset=*/ 8);


    Eingesetzt hatte ich diese Schrift: u8g2.setFont(u8g2_font_courB12_tf);


    Grüße, Franz

  • Ja schön…. für die Umsetzung hast Du ja alles was du brauchst. Wie das Oled genutzt wird, siehst Du ja im Küchenuhr Sketch. Wenn Du beides in einem Programm unterbringen willst, kannst du ja mit Präprozessor Anweisungen arbeiten (In dem Video ab Minute 17 erklärt).


    Evtl musst Du das sogar, weil sonst der Speicherplatz knapp werden könnte.

  • Bei diesem Wetter kommt man nur auf dumme Gedanken.

    Ich habe den Testaufbau für die MMK wieder verdrahtet. Die Lesbarkeit des LCD Display ist, wie schon einmal angemerkt, eine Katastrophe.

    Da ich das OLED SPI Display besitze, denke ich darüber nach, dieses einzusetzen.


    Das Menü für die Auswahl und Eingabe könnte z.B. so aussehen


    001.JPG


    Evtl. könnte man im Sketch die Auswahl programmieren, wenn LCD dann...., oder SPI dann ......


    Grüße, Franz

  • Moin Kai,

    wenn wir das in dem Halter eingelassene 12V Ventil nicht ansteuern und somit öffnen würden, kommt auch keine Kühlflüssigkeit vorne heraus.

    Die Öffnung vorne in dem Ventilhalter ist 1mm.

    002.JPG


    Hier wird noch ein Stahlrohr eingeschraubt.

    Düsenröhrchen


    Der im #54 zu sehende Behälter mit der Kühlflüssigkeit wird mit einem Druck von ca. 4 bar beaufschlagt. Dadurch wird die Flüssigkeit durch den hinteren Anschluss ins Einspritzventil gedrückt. Durch die Ansteuerung des Einspritzventiles spritzen kleine Mengen Flüssigkeit aus dem Einspritzventil. Am vorderen Anschluss liegt Druckluft mit ca. 1 bar an. Dadurch wird die Flüssigkeit, die am Einspritzventil austritt durch das Rohr auf den zu kühlenden Fräser ausgeblasen.

    Wenn wir an unserem Frequenzgenerator, der das Ventil ansteuert z.B. eine Frequenz von 12 Hz einstellen, das Ventil also 12 mal in einer sec. jeweils 1,42 ms öffnet, dann kommen wir auf einen Durchfluss von nur100 ml/h.

    Wir können also mit unserem Frequenzgenerator ganz gezielt kleinste Mengen Kühlflüssigkeit, von Tropfen bis Sprühnebel einstellen.

    Der Vorteil dieses System ist meiner Meinung nach auch der, das der enge Flüssigkeitsaustritt immer freigeblasen wird und somit eine gleichmäßige

    Kühlung gewährleistet ist.

    Bei anderen Systemen (fast alle) , die z.B. die Kühlflüssigkeit mit einer Pumpe befördern, kommt es immer wieder zu Verstopfungen, so habe ich in Foren gelesen.

    Da ich noch keine MMK hatte, dachte ich mir, dass ist doch ein Versuch wert. Bisher habe ich mit einer Handspritzflasche gekühlt. Wer mal erlebt hat, wie die abgefrästen Alu -Späne durch die Umgebung des Fräser geschleudert werden, weiß wie gefährlich das ist. Die Frässpindeldrehzahl liegt bei 20000 - 30000 U/min.

    Ich hoffe jetzt ist klar, wie wichtig unser Frequenzgenerator ist.

    Wir sind ja Hobbyfräser und die Fräsen stehen irgendwo im privaten Bereich der Wohnung. Da kann man nicht mit Kühlflüssigkeit planschen.


    Grüße, Franz

  • Jallo Franz,


    ich lasse meine Platinen bei Aisler https://aisler.net/?lang=de-DE

    und jlcpcb https://jlcpcb.com fertigen.


    Aisler hat den Vorteil, dass man KiCad Dateien hochladen kann, bei JLCPCB muss man Gerberdateien erzeugen. Wie das funktioniert ist aber sehr gut auf deren Hilfeseite beschrieben. JLCPCB ist gerade bei größeren Platinen günstiger. Weil Aisler portofrei zusendet ist es bei kleineren meist günstiger oder nur unwesentlich teurer.


    Außerdem ist Aisler in Europa (DE/Niederlande) angesiedelt.

  • Hallo Kai,

    ich möchte für dieses Projekt ein Platinenlayout erstellen. Die Schaltung in #48 wird noch um ein solid state Relais für die 230V Spannungsversorgung des Luftkompressor und die Ansteuerung über Pin 13 erweitert. Ich muss noch eine möglichst kleine 12V Spannungsversorgung 2-3A für die Ansteuerung des Magnetventil finden. Das 16 x 2 LCD Display, grün mit schwarzer Schrift, ist furchtbar schlecht ablesbar. Hier möchte ich auch noch was ändern.

    Das Gehäuse für die Steuerung wird aus 6mm HPL gefertigt. Aus HPL sind fast alle meine Projekte gefertigt. HPL ist Witterungs- und Feuchteunempfindlich, stabil wie Alu. HPL wird häufig bei Fassadenverkleidungen und Balkonverkleidungen eingesetzt.


    In irgendeinen Thread von Dir hast Du fertige Platinen, hergestellt nach Deinen Layouts, auf Bildern gezeigt. Wo hast du die Platinen fertigen lassen?

    Oder ich muss die Platine im Frühjahr selber fräsen. Das habe ich aber bis heute noch nicht gemacht.

    Grüße, Franz

  • Hallo Kai.

    Ich habe noch 2 Arduino Nano mit Klemmenadapter bestellt. Für die Eieruhr und für dieses Projekt. Für die Eieruhr wäre evtl. ein Pro mini Arduino wegen des Stromverbrauchs besser geeignet. Heute sind für dieses Projekt die MOSFET (5 Stück Mindestbestellmenge) geliefert worden.

    Wenn die CAD Zeichnungen fertig sind und ich die Gehäuse gedruckt habe, werde ich die neue Software laden.

    An meinem Arduino Testboard habe ich die Hardware von diesem Projekt entfernt und nur noch die Eieruhr Hardware angeschlossen.

    Ich habe Deinen Beitrag erst jetzt gesehen.


    Ich wünsche Dir und allen hier im Forum ein schönes Weihnachtsfest.


    Grüße, Franz

  • @Franz: Nachdem Du in dem anderen Thread zur Eieruhr geschrieben hast, dass Du Schwierigkeiten mit dem Verständnis der Funktion askRotaryEncoder() hast, habe ich mir den Code noch einmal angeschaut.


    Dabei ist mir aufgefallen, dass er doch noch etwas gekürzt und vereinfacht werden kann. Die Merkervariablen data.pos sowie data.newPos  sind überflüssig (Da sieht man was passiert, wenn man ohne zu überlegen, Codeteile aus einem anderen Projekt übernimmt).


    Die Merkervariablen können aus der Struktur EncoderData entfernt werden. Die Initialisierung von EncoderData encData muss dann aber angepasst werden.



    Vielleicht ist die Funktion jetzt auch verständlicher. Es wird lediglich immer die Drehrichtung des Encoders angefragt. Und je nach, durch den Tasterdruck eingestellten Eingabestatus (InputState), wird entweder die Hertz-Zahl oder das Tastverhältnis verändert.


    Ich habe den Code bei der Simulation auf Wokwi angepasst. Über den Link in Beitrag #35 kommst Du dahin. Bei dem "Eieruhr Beispiel" im anderen Thread habe ich das inzwischen auch geändert.

  • Scheint OK, allerdings würde ich den 10K Pulldown (R1) Widerstand links vom R2 anschließen. Sonst hast Du einen Spannungsteiler aus 220Ω und 10KΩ.


    Das macht zwar wegen des beträchtlichen Größenunterschieds nur etwas 0,1V aus... aber trotzdem ;).