Artikel enthält verschluckbare Kleinteile II

Kein “Gerät”, sondern ein funktionstüchtiger Prototyp

Gelegentlich ist einem nicht besonders wohl beim Schreiben. Mir jedenfalls nicht. In diesem Falle deswegen, weil man sich mit seinem mageren Hintergrundwissen auf dünnes Eis begibt. Elektronik, Motorräder und Rock`n`Roll geht ja noch, aber wenn`s um die Theorie in der Dunkelkammer geht, dann hackt es eben an vielen Ecken gewaltig. Da kann man noch so viel praktische Erfahrungen haben – es ist wie bei jungen Musikern, denen ein Lehrer fehlt: Man übt immer nur das, was man sowieso schon kann.

Egal – da muß ich jetzt durch!

Also Teil II der LED-Beleuchtung für den Laborator. Unzählige Teststreifen und Probeabzüge später. Nachdem ich Teil I vor ein paar Tagen begann zu schreiben, ist einiges passiert. Das Wichtigstes war wohl eine Änderung an der Milchglasscheibe. Die war zu Anfang ein Stück Plexiglas – weiß gefärbt oder was auch immer – und ist jetzt immer noch Plexiglas. Jetzt aber in klar und auf einer Seite gleichmäßig mit 400er Naßschleifleinen auf Milchglas getrimmt. Das hatte gravierende Auswirkungen auf die Lichtdurchlässigkeit. Also im Sinne von „mehr“ und nicht weniger und/oder ungleichmäßiger Ausleuchtung. Das fertig konfektionierte Zeug vorher schluckte schlicht viel zu viel Licht.

Zuerst einmal die Hardware:

Lichtquelle: Stairville Quad Par Profile 5x8W. Abmessungen: 164 x 164 x 105 mm // um die 60 Euro. 5 mal 8Watt klingt erst einmal nicht viel, ist aber richtig hell!

Die Lampe wird im DMX-4-Kanalmodus betrieben! Startnummer 001.

Kanal   Wert (Helligkeit) Funktion

1          0…255                Intensität Rot (0 % bis 100 %)

2          0…255                Intensität Grün (0 % bis 100 %)

3          0…255                Intensität Blau (0 % bis 100 %)

4          0…255                Intensität Weiß (0 % bis 100 %)

Es gibt noch einen 6 – und 8 Kanalmodus, die aber mit der Steuersoftware nicht funktionieren. DMX-4-Kanal, Startnummer 001!

Benötigte Kabel zur Lampe: einmal Netzstecker (wird mitgeliefert) und ein dreipoliges DMX-Kabel. Das ist grundsätzlich nichts weiter als ein XLR-Microkabel

Entweder, man hat sowas rumliegen, lötet sich das schnell oder man bestellt es gleich mit. Bei den Preisen von Thomann lohnt sich das Löten allerdings kaum.
Im Gegensatz zu den DMX-Gewohnheiten muß das Ende der Leitung (die weibliche Buchse an der Lampe) nicht terminiert werden. Nicht bei Übertragungswegen von < 5m und keiner weiteren Station.

Der Arduino (Timer, “Gradiationsfilter” und Lampenkontrolle)

Meiner ist ein Arduino Uno. Weil er eben da war; jeder andere, der genügend Digital-Pins hat, geht vermutlich auch.

Das MAX-IC wird einfach auf eine Lochrasterplatine gelötet, mit ein paar Drähten verdrahtet und am Boden des Gehäuses festgeklebt. Das Display wird nach Anleitung an 5V und gnd, SCL und SDA angeschlossen. Man kann natürlich auch Schraubern verwenden!

Dazu ein paar Anmerkungen: Ich habe auf verschiedene Händler verlinkt! Dafür bekomme ich weder Geld noch gute Worte. Das Material gibt es auch woanders und eventuell auch günstiger oder in besserer Qualität. Die Links dienen hauptsächlich dazu, um eine finanzielle Größenordnung der Bastelei zu bekommen und was ich überhaupt meine! Deswegen steht auch nicht jeder Lötnagel und jedes Stück Litze darin – ich gehe davon aus, das jeder der sich dafür interessiert, eine ungefähre Ahnung hat, auf was er sich einläßt!

Mein Spaghetticode verbraucht :

Der Sketch verwendet 9502 Bytes (29%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.Globale Variablen verwenden 1200 Bytes (58%) des dynamischen Speichers, 848 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.

Da bleibt genügend Platz, um sich noch das eine oder andere Leckerchen zu programmieren. Leider kann ich die Datei nicht als *.txt oder *.ino abspeichern. WordPress hält das für ein untragbares Risiko!
Etwas Erfahrung mit einem Arduino und der IDE kann nicht schaden. Ich habe ca. 3 Tage dafür gebraucht, bis das so einigermaßen lief. 

Zusätzlich benötigt man:

Ein I2C-Display 16×2 (16 Zeichen, 2 Spalten)

Einen Arduino Rotary Switch. Einen mit Push-Button!

Ein MAX485 ECPA. Ein SN75176A tuts auch; der kostet ein paar Cent weniger und sollte das Gleiche können. Ich hab den MAX genommen. Beide sind pinkompatibel.

Ein Drehschalter mit 3 Positionen. Ein Kontakt reicht.

Ein 1poliger Kippschalter.

Ein Taster. Groß, Rot und mit Knackgefühl (Timerstart). Oder klein, mickerig und Gelb– je nach Geschmack.

Eine weibliche XLR-Einbaubuchse

eine 24polige Stiftleiste

Vier 5mm Abstandshülsen und passende M3 Schrauben und Muttern.

Ein doofes Steckernetzteil für den Arduino, wenn man den ohne Laptop betreiben will.Ich habe dieses hier.

Etwas Litze, Lötkolben, Lötzinn, ein kleines Gehäuse und etwas Selbstvertrauen. Ach ja: Ein Laptop oder sonstiger Computer mit Linux oder schlimmstenfalls MS-Windows, Apple geht wohl auch. Hauptsache mit USB-Schnittstelle (damit fällt Apple wohl aus )

Was geht?

Das Gerätchen hat einen Drehschalter für Timer, Graduation und Splitgrade. Wer kein Splitgrade braucht, verwendet anstelle des Drehschalters einen 2-poligen Kippschalter.

In der Schalterstellung Timer arbeitet das Ganze als normaler Timer. In der zweiten Zeile wird die gewählte Gradiation oder ein „W“ für weißes Licht angezeigt.
Mit dem Rotary kann die Belichtungszeit von 0 bis 99 Sekunden gewählt werden. (das ist ein willkürlich gewählter Wert, der mittels Compiler auf dem Computer auch erhöht werden kann.)
Mit dem Push-Button können Zehntelsekunden eingestellt werden. „Drücken“ = Zehntelsekunden, nochmal drücken ist wieder ganze Sekunden.
Ein Druck auf den Taster schaltet die Lampe für die gewählte Zeit ein.

In der Schalterstellung Gradiation kann man mit dem Rotary die gewünschte Gradiation oder weißes Licht einstellen. Die Lampe ist in dieser Stellung immer an!

In der Stellung „Split“ sieht man die Zeiten für Gradiation 00 in der ersten Zeile, die für Gradiation 5 in der zweiten. Mit dem Kippschalter kann zwischen den beiden Gradiationen (der Zeiteinstellung) hin- und hergeschaltet werden.
Mit dem Push-Button können Zehntelsekunden eingestellt werden. „Drücken“ = Zehntel, nochmal drücken ist wieder ganze Sekunden.


Ein Druck auf den Taster schaltet die Lampe erst für die gewählte Zeit Gradiation 00 ein, dann (100 mSec ) später Gradiation 5. In der unteren Zeile wird angezeigt, mit welcher Gradiation gerade belichtet wird. Ist die Belichtung beendet, sieht man wieder die Zeiteinstellung.

Bekannte Macken:
Ob es unterschiedliche Qualitäten der Rotarys, ein Treiberproblem oder nur doof programmiert ist – der Rotary neigt zum Humpeln. Sehr schnelle Drehungen mag er nicht noch schnelle Richtungswechsel. Man kann es in Maßen mit den Parametern rotary.setDebounceDelay(Zeit); // rotary.setErrorDelay(Zeit); in Void setup () verbessern oder der Mackigkeit des verwendeten Rorarys anpassen. Dafür habe ich noch keine befriedigende Lösung.

Ich bin mir mittlerweile nicht mehr so sicher, ob die Reduzierung der Knöppe auf das Allernotwendigste so richtig richtig war. Ein weiterer Taster oder Schalter, um weißes Licht zum Einstellen „mal so eben“ anzumachen, wäre schon hübsch gewesen. Mal sehen, vielleicht mache ich das noch. Softwareseitig spricht nichts dagegen.

Das Display ist viiiel zu hell. Erst einmal habe ich das mit Unmengen von roter Filterfolie „behoben“. Aber ein neues Display mit regelbarer Helligkeit und Farbe liegt schon im Karton. Leider ist das auf die Schnelle nicht 1 zu 1 tauschbar. Also wohl nächste Woche.

Man sieht also: Für jede Schalterstellung eine Macke 🙂

 

So, und eigentlich wollte ich heute noch einen Abzug von einem Nutria machen, was mir beinahe an den Stiefeln schnupperte. Ich mag die Tierchen so gerne. Aber auch dazu bin ich nicht gekommen. Jetzt noch ein Absackerbierchen und dann ist Schluß – so wird es eben eine dreiteilige Anleitung! Das bisschen Gehäuse kann eigentlich jeder selber… Gute Nacht erst einmal.

Dieser Beitrag wurde unter Allgemein abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

30 Antworten zu Artikel enthält verschluckbare Kleinteile II

  1. DasKleineTeilchen sagt:

    Leider kann ich die Datei nicht als *.txt oder *.ino abspeichern. WordPress hält das für ein untragbares Risiko!

    aba .odt geht?!? ick hab ja nich wirklich ahnung, aba wie kann das weniger risiko als .txt sein?!?

    ausserdem will ich für jede farbe nen stufenlosen poti mit dickm knopp zum einstellen, kein jetippe! sowas will man doch so analog wie möglich. mensch!

    und jute milch”glas”scheiben jibbets in den backlites von kaputtn riesen-lcds in den mülltonnen der panasonic-vertragswerkstatt in prenzlauer berg (ha!).

    freumaschonaufdendrittnteil.

  2. R@iner sagt:

    Moin! Deine *.ino-Datei ist momentan irgendwas binäres. Um beliebige Dateien bei wordpress hochladen zu können, kann man die Sicherheits-Geschichte mit dem Eintrag
    define( ‘ALLOW_UNFILTERED_UPLOADS’, true );
    in der wp-config.php freischalten.
    Da ich die Datei wie geschrieben nicht lesen kann, weiß ich nicht, ob Du die internen Pull-Up-Widerstände per Software verwendest, also so etwas wie
    #define TASTER_PIN 11
    pinMode(TASTER_PIN, INPUT_PULLUP);
    in deinem Sketch hast.
    Falls nicht, wäre ein Pull-Up Widerstand an Pin 11 nicht schlecht. Oder noch ein Kondensator gegen Masse gefällig?

    Zitat: “Wer Mikrokontroller-Schaltungen ohne Abblock-Kondensatoren aufbaut,
    nachmacht oder verfälscht, insbesondere bei existierenden
    Schaltungen die Abblock-Kondensatoren weglässt oder falsch
    verschaltet oder selbst solche Schaltungen entwirft, in Verkehr
    bringt und/oder aufbaut ohne Abblock-Kondensatoren nach Hersteller-
    Empfehlungen zu verwenden, wird mit Zugangs-Ausschluss vom
    Mikrokontroller-Forum nicht unter zwei Jahren bestraft.”

    Weiter mit dem Rotary-Encoder. 1988 habe ich sowas mal grobmechanisch (Zahnrad, 2 Gabellichtschranken) für einen Drehwinkelaufnehmer aufgebaut und mit ein paar D-FF die Auswertung übernommen (*selbstschulterklopf*).
    Die Billigdinger wie der von dir verwendete rauschen und machen scheinbar bei der Auswertung nicht alles mit – Schnelles Drehen und Richtungswechsel verursachen Probleme, die manche mit eigenen Libraries korrigieren.
    Tipps mit Verbesserungen hier: Rotary Encoder : How to use the Keys KY-040 Encoder on the Arduino
    Benutzt du Interrupts für den Encoder?

    Noch eine Story hier: Making products is hard – the story of the Rotary Encoder “Problem”

    Hach! Endlich mal ein vernünftiges Thema. 🙂

  3. Pantoufle sagt:

    Moin R@iner

    So, ich habe jetzt zwei librarys durch und das „einzig funktionsfähige Programm für Rotarys“. Das geht nicht sauber, weder mit noch ohne Interrupts. Morgen fahre ich ins Städtchen und kaufe eine Handvoll gute alter TTLs beim Freundlichen an der Ecke. Ich mach das jetzt mit Hardware.
    Was aus diesen KY040 – Rotarys rauskommt, ist Datenmüll. Außerdem beginnt die Achse bereits zu wackeln. Das taugt nicht mal zum Basteln. Am besten läuft immer noch das alte Programm. Dem helfe ich vorläufig mit etwas TTL auf die Sprünge und dann werden wir ja sehen.
    Tabak habe ich auch gekauft.

    Edit
    Ich denke, mit irgendwas, wo Schmidt-Trigger draufsteht, kann man das zivilisieren.

  4. Götz sagt:

    “Das Display ist viiiel zu hell.”
    Es wird 1976 gewesen sein, als ich acht Ostmark für die erste LED in meinem Leben ausgab. Sie leuchten zu sehen, erforderte geschlossene Fenstervorhänge.
    Wir merken uns: Viel zu hell geht ja überhaupt nicht.

    • Pantoufle sagt:

      “Wir merken uns: Viel zu hell geht ja überhaupt nicht.”
      Du hast noch nie in einer Dunkelkammer gewerkelt ???

      1976?? Da hab ich auch Halbleiter zum leuchten gebracht. Die waren dafür allerdings nie gedacht und man mußte auch nicht das Licht ausmachen.

  5. R@iner sagt:

    Der Mensch probiert einfach mehrere Libraries aus und wird fündig: Plauderei am Donnerstag 50: Rotary Encoder und andere Dinge

    Schmitt-Trigger sind übrigens besser als Schmidt-Trigger.

    Andere Lösung: 2 Taster oder Wippe für up/down verwenden.

    • Pantoufle sagt:

      Ein Schweizer!
      Schweizer Comutertechnik? 10kHz Taktfrequenz.

      • R@iner sagt:

        Genau solche Leute vermitteln einem das Gefühl, dass diese Bastelei innere Ruhe bringt.
        Die Wahrheit, nämlich dass es Momente rasenden Wahnsinns gibt, zeigen sie natürlich nie.

        • Pantoufle sagt:

          Schöne Library die er da benutzt. Ist aber kein UNO, den er da hat (soweit ich das beurteilen kann.) Der Uno hat jedenfalls nur zwei interruptfähige Pins und das sind D2 und D3. Und so legt das Demo dann bei 66 auch eine dreißigsekundige Gedenkpause ein, um dann nach 85 zu springen.

          Ah, der hat aus irgendwelchen Gründen ein Delay in dem Demo hinzugefügt, was genau an der Position wirksam ist.Wie blöd muß man eigentlich… die Nerven lassen nach.

          Aber die Library arbeitet soweit ganz ordentlich. Hat sonst bisher keine Fehler gezeigt.

        • Pantoufle sagt:

          Aha, und mit Interrupts läuft das auch nicht. Ist natürlich polling.

    • Pantoufle sagt:

      Hatte ich auch schon überlegt. Wenn ich gewußt hätte, wieviel Zeit mich das jetzt kostet, hätte ich es auch mit Tastern gemacht. Mein jetziger Timer hat Taster und das hat mich immer schon etwas genervt. Ich wollte das mal vereinfachen. Mit Rotarys ist das mechanisch einfach zu lösen. Ein Loch im Deckel und der Drobs ist gelutscht

      Was ich gerne mal ausprobieren würde, ist das hier. Leider hab ich keinen HC86 rumliegen, deswegen noch mal ins Städtchen.

      • R@iner sagt:

        Sobald ich an die Unterlagen komme, wie ich das damals löste, sende ich sie dir zum Spaß. Nein, es war nicht trivial.
        Ich sehe aber, dass in deiner Schaltung zumindest ein Tiefpass am Eingang fehlt. Jitter und Spikes sind ja nach wie vor vorhanden.
        So einfach wird es nicht gehen.

        Vielleicht ist das was: Better Arduino Rotary Encoder Circuit

        Und bei mikrocontroller.net: Drehgeber

        • Pantoufle sagt:

          Den habe ich mittlerweile nachgerüstet. Nein, das Problem ist nicht trivial – das habe ich auch schon gemerkt. Für mich ist es vor allem ein Kampf an mehreren Fronten. Die Elektronik hielt ich bereits für abgehakt und mein eigentlicher Gegner ist das mit der Lichtmischerei, daß das die richtigen Gradiationen ergibt. Das hat mich 4 Tage und ziemlich viel Geld gekostet. Jetzt kommt auch noch Forschung für diesen Scheißrotary hinzu.

  6. Pantoufle sagt:

    So, jetzt hab ich was. Muß zwar das Programm noch mal schreiben, aber es funktioniert ziemlich zuverlässig (zuverlässig nach menschlichem ermessen).

  7. Pantoufle sagt:

    Keinen Bock mehr! Echt nicht! Die Scheiße steht mir bis zur Halskrause.>!
    Ich will Bilder machen und das gehtr mit der ersten Version – ich lass das jetzt 1,2 Tage liegen sonst schlage ich das alles kurz und klein…

  8. R@iner sagt:

    Oder man nehme einen Schrittmotor: Interface für inkrementale Drehgeber

    Weitere Idee: Drehgeberauswertung mit Beschleunigung

    Library mit State-Machine: Rotary Encoder Arduino Library

  9. Pantoufle sagt:

    Guten Morgen, R@iner

    An die Idee mit dem Schrittmotor hatte ich auch schon gedacht. Ist ja auch komisch, daß seriöse Drehgeber das 10 – 20fache der Arduino-Bastellösungen kosten.
    Die nächste Idee war, einen Geber mittels optischer Abtastung selber zu bauen. Auch nicht schlecht, aber nicht Sinn des Blogeintrages. Bei dem geht es – und das geht langsam unter – um die LED-Beleuchtung eines Vergrößerers. Ein eher mechanisches Problem (und optisches und phototechnisches). Im Moment ist das für mich ein Mehrfrontenkrieg. Das mit dem Arduino war mir eigentlich schon etwas zuviel. Wenigstens habe ich das Problem mit dem Drehwinkelgeber jetzt verstanden, auch wenn es mich eigentlich gar nicht so sehr interessiert hatte. Aber trotzdem herzlichen Dank für die vielen Links – ich kenne nun zumindest die Aufgabenstellung.
    Wenn ich das zusammenfasse, kommt in etwa folgendes heraus: Wenn es nur um die ungefähre Zählung von Impulsen geht, funktioniert auch Polling. Wenn der Arduino aber nebenbei mit Display und etwas Logik beschäftigt ist und/oder im Hintergrund etwas läuft (wie das DMX-Protokoll, was konstant Rechenzeit beansprucht), kann man auch gleich Taster nehmen. Die sind dann genau so (wenig) zuverlässig und langsam.
    Die Wahl mit dem Arduino Uno war nicht gut. Zwei Interruptfähige Pins sind zu wenig (u.A. zuviel umlöten).
    Ohne Tiefpassfilter und Entprellung geht es nicht. Warum die nicht gleich mit auf der Winzplatine drauf sind, ist nicht nachvollziehbar.
    „There were a lot of code samples around, and even the official Arduino wiki has a lot of code options.
    Unfortunately, most of them suck.“
    Die Analyse von dieser Seite bringt es sehr gut auf den Punkt.

    Wie gesagt – mal einen Tag liegenlassen und was Schönes machen. Aber trotzdem vielen Dank fürs Mitdenken.

    Gruß,
    Pantoufle

  10. R@iner sagt:

    Dann hol dir halt einen Arduino Mega 2560. Die von Elegoo halte ich für tauglich und günstig. Ich bin dann allerdings schnell über den ESP32 gestolpert. 2 Kerne, 240 MHz, WLAN, Bluetooth, …geil.
    Aber wie das eben so ist: Wenn man schnell etwas konkretes basteln will, dann braucht man wieder diese Dinge wie Wissen und Erfahrung. Das dauert halt.

  11. R@iner sagt:

    Mal ein Tipp, denn der nächste Winter kommt bestimmt und Corona bleibt uns vermutlich noch eine Weile erhalten, obwohl das Virus ja bekanntlich beinahe wöchentlich von Demonstranten unter heroischem Einsatz ihrer Leben in der tödlichen Merkeldiktatur gestoppt wird.
    Microcap 12 ab sofort for free
    Das Programm ist schon sehr nice. Dagegen sieht LTspice aus wie die Kommandozeile.
    Die mitgelieferte (riesige) Bauteilbibliothek wird immer noch aktualisiert, das Programm bisher ebenfalls.
    Das im Thread weiter unten in den Kommentaren verlinkte und ebenfalls frei verfügbare SuperSpice kenne ich dagegen nicht.

    • Pantoufle sagt:

      Moin R@iner

      „…das Virus ja bekanntlich beinahe wöchentlich von Demonstranten unter heroischem Einsatz ihrer Leben in der tödlichen Merkeldiktatur…“

      Ja, ich hab den Kleintierzoo auch gelesen. Dieses Mal werden es gleich drei Millionen! Und dann die ganze Welt. Bis zum Winter? Bis dahin haben die Idioten den Anders Behring Breivik- Gedenktag eingeführt.
      Bis zum Winter? Ich bin um jede Woche dankbar, die ich irgendwie überlebe. Gerade hab ich das Geld fürs Finanzamt zusammenbekommen. Und denen bezahlt irgend ein Arsch ihre überflüssige Existenz, damit die für den Rückzug der Gletscher in Gaya demonstrieren. Unfassbar. Querdenker nennt sich das. Das Eckige muß ins Runde.

      Micro-cap for free? Gleich mal downloaden, bevor sie es sich anders überlegen. Ich hab letzte Nacht auch etwas simuliert mit einer Handvoll TTLs und dem UNO. Am Anfang gings ja noch halbwegs vorwärts, bis Eingang D3 immer komischer wurde. Am Schluss wurde er nur noch mit „mechanischen Mitteln“ Low. Ein neues Arduino-Board eingebaut und dann gabs echte Fortschritte. Ich möchte gar nicht genau wissen, wie lange mich dieses Phänomen schon ärgert. Als Ausgang ist alles gut, als Eingang geht er jetzt gar nicht mehr.
      Scheißspiel.

  12. Peinhart sagt:

    Ich weiß nicht, ob das noch aktuell ist, aber immerhin is ja noch der gleiche Monat… Ich bin zufällig über eine Diskussion gestolpert, in der unter anderem zu lesen ist, dass und warum die gängigen Arduino-Bibliotheken langsam, ineffektiv und eben auch fehleranfällig sind. Ausserdem gibt es ein paar Links, denen du evt nachgehen könntest.

    Disclaimer – ich hab überhaupt keine Ahnung von dem Zeug! Vielleicht auch reine Zeitverschwendung…

    Geht hier los und wird hier dann vielleicht etwas interessanter.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.