Sturzi's Arduino-Bastelprojekt #2 - Speed-o-Meter und Rundenzähler mit Infrarot-Lichtschranken

  • Doch, kann man (hab' gar nicht mehr dran gedacht). Ist weniger praktisch als das 421048, weil es mit etwa 12 Kabel angeschlossen ist.

    Einstecken und fertig, würde ich behaupten.


    Gruss Erwin



    Wer rast, der verpasst das Leben.


    Kein Platz für weitere Sammelstücke ist nur eine faule Ausrede. ;) Es gibt für alles eine Lösung.

  • Einstecken und fertig, würde ich behaupten.

    Im Breadboard einstecken geht schon, aber dann braucht es die Verkabelung zwischen Breadboard und Arduino.

    Beim 421048 kann man das ganze Shield auf den Arduino aufstecken. Null Verkabelung, stabil, saubere Sache.

  • Lieber Röbi,

    mit großem Respekt verfolge ich hier Deine Ausführungen zum Arduino-Projekt. Mangels Einsatzgebiet beteilige ich mich zwar nicht, lese aber mit großem Interesse Deine sehr verständlichen Ausführungen. Super! :) :)

    Gruss Günther

  • LCD Display Typ D - Entwarnung!


    Nochmals zu den LCD Displays. Den Typ D (gemäss meinem Beitrag 7) (das ist bastelgarage.ch-Artikel-Nr. 420098) habe ich bei mir nicht zum Laufen gekriegt. Ich habe bei Bastelgarage Support angefragt. Die Antwort ist aber noch offen. Also bitte Artikel 420098 NICHT kaufen!


    Für diejenigen, die noch kein Display bestellt haben und das demnächst tun wollen:

    Falls ihr es bei mir bestellt, sende ich euch automatisch Typ C (bastelgarage.ch-Artikel-Nr. 421048) (kostet CHF 13.90)

    Falls ihr es direkt bei bastelgarage.ch bezieht, achtet darauf, dass ihr DFRobot 1602 LCD Keypad Shield für Arduino (Artikel 421048) bestellt.

    Es geht um das Display vom Typ D (bastelgarage.ch-Artikel-Nr. 420098), das vermeintlich nicht funktioniert hat.


    Die bastelgarage.ch hat zwar auf meinen Support-Request geantwortet, das Problem aber noch nicht gelöst. Sie haben mich auf Anfang nächster Woche vertröstet, weil der zuständige Experte erst dann wieder verfügbar sei.


    Aber: In der Zwischenzeit habe ich mich selber etwas schlau gemacht und das Internet vor- und rückwärts durchstöbert. Dabei habe ich einen nützlichen Hinweis gefunden. Die Lösung ist das blaue Potentiometer links oben. Man muss das kleine Schräubchen etwa um 30 Umdrehungen (nicht übertrieben) nach rechts drehen. Plötzlich geht die Anzeige und dann kann man sie weiter durch "vernünftiges" links- und rechts-drehen scharf einstellen.


    Ich habe natürlich schon von Anfang an mit diesem Poti herumprobiert, aber (wohl verständlich) nicht um 30 Umdrehungen.


    Also: Wir haben nach wie vor die vier Varianten. Aber jetzt funktionieren wenigstens alle. Da ich jetzt Typ C und Typ D an Lager habe, werde ich von beiden Typen ausliefern. Und - Typ D darf man auch getrost wieder kaufen.

  • Hallo Freunde - Grüezi mitenand.


    Ich bin via Google Suche auf den Thread gestossen, da ich mich nach genau diesem Projekt umgesehen habe.


    Danke schon einmal füe die Zusammenstellung des Materials - nun bin ich auf das Programm gespannt. Zugegebenermassen ist dies mein erster Arduino und ich hoffe das gelingt.


    Als Lokidokter geht es mir dabei darum künftig die Lastregelparameter an meinen „Patienten“ gut einzustellen, sowie auch die Vorbildgeschwindigkeit gleich einzuprogrammieren.


    Da ich aus Platzgründen, sowie auch zu wenig interesse an der Landschaftsgestaltung eigentlich nur eine Werkstatt besitze wäre es extrem gäbig dieses Messgerät auf der Teststrecke am Wetkbank zu integrieren.


    Ich freu mich, wenn dann der Code zum Copypasten da ist :) mit Know-How kann ich leider dieses Mal nicht unterstützen.


    Grüsse an alle.

    Bischi :hi:

  • Hallo ... ???. Hallo Lokidokter tönt etwas unpersönlich. Hast du vielleicht noch einen Vornamen, den du uns verraten könntest?


    Schön, dass du uns gefunden hast. Ich hoffe, dass das Projekt gelingt und auch deinen Ansprüchen genügt und wünsche dir viel Erfolg beim Copypasten.

  • @alle, die bei mir bis jetzt Material bestellt haben: Ich bin fleissig am Böckli drucken und am Kabel krimpen. Ihr könnte mit dem Material bis gegen Ende der kommenden Woche rechnen.


    Wie schon geschrieben, plane ich den eigentlichen Projekt-Start auf etwa Anfang Dezember (2022 natürlich).

  • Hoi Röbi

    Da freue ich mich wie ein kleines Kind! Heute sind die Infrarot-Näherungsschalter per Post bei mir angekommen. Du musst aber nicht hetzen, es gibt noch genug Projekte mit Arduino, die ich noch nicht probiert habe. Hast du eine Rückmeldung für den Display?

    Gruss Oski

    signatur_egos.jpg

    ...auch Nichtraucher können süchtig sein nach Zündhölzern!

  • Heute hat mich ein Forumist per PN angefragt, ob man noch Material bestellen könne.


    Sicher kann man noch Material bestellen. Das Projekt hat ja noch nicht einmal gestartet, und selbst nach dem Projekt-Start kann man ja immer noch einsteigen. Also nur zu! :thumbsup:

  • Heute sind die bestellten Teile von Röbi bei mir angekommen. Die Böckli für die Sensoren sehen sensationell aus.

    Röbi, besten Dank für die prompte Lieferung und den guten Preis!

    Bin gespannt. warum es bei der Verkabelung 3 Drähte braucht, da sehe ich noch nicht ganz durch. Aber in zwei Wochen lüftet sich wahrscheinlich das Geheimnis.

    Ich freue mich auf den Start.

    Gruss Oski

    signatur_egos.jpg

    ...auch Nichtraucher können süchtig sein nach Zündhölzern!

  • Bin gespannt. warum es bei der Verkabelung 3 Drähte braucht, da sehe ich noch nicht ganz durch. Aber in zwei Wochen lüftet sich wahrscheinlich das Geheimnis.

    Ja das ist kein Geheimnis. Zwei Drähte braucht es für die Speisung der Lichtschranke mit 5V und der dritte geht an einen Arduino-Eingang um zu signalisieren, dass die Lichtschranke angesprochen hat.

  • Danke Röbi

    Jetzt ist alles klar. Ich freue mich auf das Projekt.

    Gruss Oski

    signatur_egos.jpg

    ...auch Nichtraucher können süchtig sein nach Zündhölzern!

  • Alle, die Material bei mir bestellt haben, müssten das in der Zwischenzeit erhalten haben (ausser 11652, der hat es erst gestern bestellt).


    Ich denke, ich darf hier schon veröffentlichen, wer am Projekt mitmachen will. Ist doch auch interessant zu wissen, wer die Mitstreiter am Bastelprojekt sind.

    Also hier die Liste der Forumisten, die ihre Projekt-Teilnahme (durch Materialbestellung oder durch anderweitige Mitteilung) angedroht :) haben:

    • Fahrni
    • hal6ke
    • uwb49
    • Zosch
    • 48mcpoescho
    • buikkuede
    • rfurrer
    • andysan
    • bueti
    • Sigu
    • egos
    • Cebu Pacific
    • Lokidokter
    • 11652

    Das ist eine stolze Teilnehmer-Zahl.


    Übrigens: Einsteigen kann man natürlich immer noch. Der Thread bleibt ja erhalten.


    Wir werden uns nun vor dem eigentlichen Projektstart, sozusagen als Prolog, mit den Displays befassen. Ich werde für jeden Display-Typ A, B, C und D je einen Beitrag posten, der erklärt, wie man das Display anschliesst und wie man per Programm einen Text auf diesem anzeigen kann. Ich empfehle euch, das jeweils gleich auszuprobieren und allfällige Probleme gleich hier zu melden.

  • Display Typ A


    Das ist das Display, das im Arduino-Starter-Kit enthalten ist.


     


    Dieses Display steckt man mit seinen 16 nach unten vorstehenden Pins in ein Breadboard und verkabelt es gemäss folgendem Bild:

    Für die Nummerierung der Pins am Display zähle ich von 1 bis 16 (von links nach rechts).


    Pin 3 ist für den Display-Kontrast. Dieser ist hier über ein Poti geschaltet. Falls der Kontrast in einer Endstellung des Potis am besten ist (wie z.B. bei mir), kann man es auch weglassen und den Pin 3 direkt an Masse hängen.


    Pin 15 ist für die Helligkeit der LCD-Anzeige. Wenn man diesen an 3.3V hängt, ist die Helligkeit dezent, aber gut zu lesen. Man kann ihn auch an 5 V hängen, dann leuchtet das Display aber sehr hell. Oder noch eine Option: Man schaltet ihn über ein Poti (gleichartige Schaltung wie beim Poti für den Kontrast), dann kann man die Display-Helligkeit stufenlos einstellen.


    Die Programmierung geht wie folgt:



    Zeile 1: Sorgt dafür, dass die Software für das Display in unserem Programm verfügbar ist.


    Zeile 3: Hier wird eine Variable mit Namen lcd vom Typ LiquidCrystal erstellt. Ab jetzt können wir lcd brauchen, um auf die Display-Software zugreifen zu können. Muss man nicht unbedingt verstehen. Einfach so übernehmen! Die Argumente (die Zahlen-Angaben in den Klammern) bezeichnen die Pins, die für das Display verwendet werden. Diese Angaben müssen mit der aktuellen Verkabelung übereinstimmen.


    Zeilen 6 bis 10: Werden beim Projekt-Start wieder entfernt. Sie dienen hier nur zum Testen ob das Display richtig funktioniert. Hier darf man auch gern etwas herum-experimentieren. Hinweis: lcd.setCursor() setzt die aktuelle Anzeige-Stelle. Die erste Zahl ist die Spalte und die zweite Zahl ist die Zeile (Zählung beginnt bei 0).



    Wenn alles funktioniert und alles richtig gemacht wurde, müsste es etwa so aussehen.

  • Display Typ C


    So sieht das Display vom Typ C aus. Unten rechts steht DFROBOT drauf. Es ist mehr als nur ein Display: Es ist ein Shield, auf dem das 1602 Display aufgelötet ist.



    Ein Shield in der Arduino-Terminologie ist eine Platine, die man direkt auf den Arduino stecken kann. Wir prüfen zuerst, ob alle 18 Pins unten am Shield schön grad und sauber ausgerichtet sind. Allenfalls muss man sie etwas richten. Wir stecken nun das ganze Shield in der unten abgebildeten Orientierung auf den Arduino Uno.


    Die 6 Analog-Stiften rechts am Shield müssen über den 6 Analog-Eingängen des Arduino liegen. Jetzt so ausrichten, dass alle 18 Stiften passen und dann fest zusammendrücken.


    Für das Display ist keine Verkabelung notwendig. Auf dem Shield ist alles vorbereitet und richtig verlötet. Den Kontrast kann man am aufgelöteten blauen Poti einstellen.


    Die Programmierung geht wie folgt:

    Zeile 1: Sorgt dafür, dass die Software für das Display in unserem Programm verfügbar ist.


    Zeile 3: Hier wird eine Variable mit Namen lcd vom Typ LiquidCrystal erstellt. Ab jetzt können wir lcd brauchen, um auf die Display-Software zugreifen zu können. Muss man nicht unbedingt verstehen. Einfach so übernehmen! Die Argumente (die Zahlen-Angaben in den Klammern) bezeichnen die Pins, die für das Display verwendet werden. Diese Angaben passen zur aktuellen Verlötung auf dem Shield.


    Zeilen 6 bis 10: Werden beim Projekt-Start wieder entfernt. Sie dienen hier nur zum Testen ob das Display richtig funktioniert. Hier darf man auch gern etwas herum-experimentieren. Hinweis: lcd.setCursor() setzt die aktuelle Anzeige-Stelle. Die erste Zahl ist die Spalte und die zweite Zahl ist die Zeile (Zählung beginnt bei 0).



    Wenn alles funktioniert und alles richtig gemacht wurde, müsste es etwa so aussehen.


    Auf dem Shield hat es nebst dem Display noch sechs Taster. Der Taster RST ist eine (elektrische) Verlängerung des RESET Tasters auf dem Arduino (weil der ja nur noch schlecht zugänglich ist).

    Auf die Verwendung der anderen fünf Taster werden wir zu einem späteren Zeitpunkt eingehen.

  • Display Typ D


    So sieht das Display vom Typ D aus. Unten rechts steht D1 ROBOT drauf.



    Das Aufstecken und die Programmierung erfolgen genau gleich wie beim Typ C.


    Hier ist zu beachten, dass das blaue Poti ganz anders reagiert als beim Typ C. Während beim Typ C der Drehbereich nicht einmal 360° ist und die Endanschläge deutlich spürbar sind, scheint dieses hier mit einem Schneckengetriebe ausgerüstet zu sein. Ich habe nicht herausgefunden, wieviele Umdrehungen es braucht, um den ganzen Bereich zu "erforschen". Bis jetzt konnte ich keine Endanschläge spüren. Jedenfalls bis mein Exemplar etwas Vernünftiges anzeigte, musste ich das Poti um etwa 30 Umdrehungen im Uhrzeigersinn drehen.


    Dieses Display Shield vom Typ D hat noch einen Nachteil, auf den mich Bueti gestern aufmerksam gemacht hat. Wenn wir weitere Peripheriegeräte (wie z.B. unsere IR-Lichtschranken) an den Arduino anschliessen wollen, haben wir keinen Zugang mehr zu den Ein- und Ausgangs-Pins des Arduino. Nun, das ist bei Shields normal, aber meist verlängern die Shields die Ein- und Ausgangs-Pins einfach, sodass sie nun über das Shield zugänglich sind. Das geht zwar beim Typ D Shield schon, aber nur durch Löten an den Löt-Ösen, die die Ein- und Ausgänge verlängern. Zum Glück habe ich das Projekt als "Bastel-Projekt" angepriesen, so ist ein bisschen Löten zumutbar. Falls nicht, müssen wir dann schauen, was wir machen.

  • Display Typ B


    Ja warum kommt der erst jetzt? In alphabetischer Reihenfolge wäre der nach dem Typ A drangekommen. Das hat einen einfachen Grund: Ich habe ihn nicht zum Laufen, bzw. zum Anzeigen gebracht. Bis jetzt keine Ahnung warum. Ich meine, alles richtig gemacht zu haben, aber es will einfach nicht. Vielleicht ist einfach mein Exemplar fehlerhaft.


    Ich bleibe dran und melde mich wieder, wenn ich mehr weiss.

  • Hallo Röbi


    Ich habe mich mit diesem Typen auch herumschlagen; die Displaybeleuchtung funktioniert, aber sonst ignoriert er meine Befehle.


    Gruss

    Peter

  • Danke, Peter, für den Hinweis. Genau so war's bei mir auch.


    Damit habe ich es probiert:


    Du bist meines Wissens der einzige mit Typ B. Soll ich dir einen Typ C schicken (auf meine Rechnung), dann können wir den Typ B vergessen?