Sturzi's Arduino-Bastel-Projekt #1 - Es werde Licht

  • Wie im anderen Arduino-Thread schon angedroht, habe ich den ersten Projekt-Thread nun eröffnet.


    Hier werde ich mit möglichst einfachen Worten und Konzepten ein Arduino-Projekt durchführen und Schritt für Schritt vorstellen. Ich betone nochmals, dass es sehr einfach gehalten wird. Arduino-Experten werden sich dabei eher langweilen. Um dem Projekt folgen zu können sind keine Programmierer-Erfahrungen notwendig. Was vorausgesetzt wird, sind elementare Kenntnisse der Elektrotechnik, die aber eigentlich jeder Modellbahner (ausser Uhrwerk-Bahner) schon mitbringt. Man sollte also wissen, was Spannung, Strom (Gleich- und Wechsel-) und Widerstand ist, man sollte das Ohm'sche Gesetz kennen und wissen, was Parallel- und Serie-Schaltung ist.


    Wenn du die Beiträge einfach aus Interesse lesen und zur Kenntnis nehmen willst, ist das durchaus OK. Falls du aber das Projekt nachvollziehen (nachbauen) willst, benötigst du einen Compi (Mac, Linux oder Windows-PC), einen Arduino, ein USB-Kabel, das an einer Seite an den Compi und an der anderen Seite an den Arduino passt, ein Breadboard, einige Jumper-Kabel (die man auch selber machen kann) und diverses elektrisches Kleinmaterial (wie Widerstände, Leuchtdioden, Drucktaster, etc.), die man entweder aus seiner Bastelkiste nimmt oder anderweitig beschafft.

    Die einfachste Art, in den Besitz aller benötigten Teile zu kommen, ist der Kauf eines "Arduino Starter Kit" zu ca. 80 Franken. Dort ist selbst der Arduino inbegriffen und man hat dann wirklich alles, was beim Projekt benötigt wird.


    Bitte poste in diesem Thread nur Beiträge, die sich auf das Projekt beziehen. Für alle anderen Belange über das Thema Arduino bitte ich euch den Thread "Arduino, die verblüffende Welt des Physical-Computing" zu benutzen.


    Nun bitte ich euch um etwas Geduld. Ich muss mich auch erst ins Thema "Arduino" einlesen. :)

  • Ich führe das Projekt mit einem Arduino UNO durch. Das ist der Microcontroller, der auch im Arduino Starter Kit enthalten ist. Die wichtigsten Komponenten des UNO sind auf folgendem Bild erklärt.



    USB Anschluss (USB B): Damit wird der UNO mit dem Compi verbunden, um über die Entwicklungsumgebung die Software laden zu können. Solange die USB-Verbindung mit dem Compi hergestellt ist, wird der UNO auch darüber gespeist (mit 5 Volt). Das funktioniert aber nur, wenn keine leistungsstarken Lasten (z.B. Motoren) angeschlossen sind. Zur 5 V Speisung muss das USB Kabel nicht unbedingt am Compi angeschlossen sein. Es geht auch mit einem gängigen USB-Ladegerät.


    Power Anschluss: Wenn die USB-Verbindung nicht hergestellt ist (weder mit dem Compi noch mit einem USB-Ladegerät) kann der Arduino über den Power Anschluss gespeist werden (7 bis 12 V DC). Dies ist auch die richtige Speisung für den Fall, dass leistungsstarke Lasten angeschlossen sind. Aus der Spannung von 7 bis 12 Volt wird intern die Arduino-Betriebs-Spannung von 5 V hergestellt.


    Power LED: Diese leuchtet wenn der UNO läuft. Genau gesagt, sie leuchtet, wenn der UNO gespeist und nicht durch angeschlossene Verbraucher überlastet ist. Auch ein Kurzschluss gilt als Überlast.


    Prozessor: Das Herz des UNO. Es ist ein ATmega328.


    Reset Taste: Damit kann man das aktuell laufende Programm unterbrechen und neu starten.


    I/O Pins: Das sind die digitalen Ein- und Ausgänge. Der UNO hat davon 14 (nummeriert 0 bis 13). Jeder dieser 14 Pins kann individuell als Ein- oder als Ausgang definiert werden. Das wird im Programm bestimmt. Die digitalen Ein- und Ausgänge kennen nur den Status aus/ein oder 0/1 oder LOW/HIGH, deshalb nennt man sie auch digital. Wenn ein Pin als Ausgang definiert ist, kann man ihn per Programm auf LOW oder HIGH setzen. Bei LOW nimmt er dann ein Spannung von 0 V und bei HIGH eine von 5 V an. Pins, die als Eingang definiert sind, werden von aussen, d.h. von der elektrischen Beschaltung auf 0 V oder auf 5 V gesetzt und können dann per Programm auf ihren Zustand abgefragt werden. Hier gilt: wenn die Spannung unter ca. 1.5 V fällt, wird der Eingang als LOW erkannt. Ist die Spannung über ca. 3 V, ist der Eingang HIGH. Spannungen im Bereich von ca. 1.5 ... 3.0 V werden von der Software zufällig als LOW oder HIGH erkannt. Das muss also tunlichst vermieden werden. Die Pins 3, 5, 6, 9, 10 und 11 (das sind die, die auf der Platine mit einem Tilde-Symbol ˜ gekennzeichnet sind) sind PWM-fähig. Das heisst, sie können per Programm auch als analoge Ausgänge bestimmt werden. Dadurch können sie per Programm auf eine beliebige Spannung im Bereich 0 ... 5 V gesetzt werden. PWM heisst Puls-Weiten-Modulation. Es ist also eigentlich ein Rechteck-Signal zwischen 0 und 5 V mit unterschiedlichen Impuls-Breiten. Damit wird ein analoger Wert im Bereich 0 ... 5 V vorgetäuscht (also eigentlich ein Bschiss, aber es funktioniert).


    Analog Input Pins: Das sind die sechs analogen Eingänge. Durch die elektrische Beschaltung wird eine Spannung im Bereich 0 ... 5 V angelegt. Diese kann dann per Programm abgefragt werden.


    Pin 13 LED: Dies ist eine fest eingebaute LED (Leuchtdiode) in SMT-Bauweise (Surface-mounted device), die fest mit dem Pin 13 verdrahtet ist. D.h. sie leuchtet, wenn der Pin 13 auf HIGH steht. Das ist oft praktisch für die Fehlersuche, wenn man zu bequem ist, eine externe LED zu verdrahten.


    Das war eine kurze Vorstellung des UNO. Im nächsten Beitrag werde ich die Entwicklungs-Umgebung IDE (Integrated Development Environment) vorstellen und dann kann es losgehen mit dem Leuchten.



  • Danke Röbi für diesen Beitrag.

    Ich werde diesen Beitrag gerne verfolgen, da ich schon länger über den Einsatz von Arduinos nachdenke.

    Gruss Urs

    __________________________________________________________________________________

    34 Tank-SCC / 4 Kasten-SCC und noch viele Nummernvarianten möglich :D:whistling:

    Wer mehr über diese Materie wissen möchte: www.containercars.ch

  • Um die für das Projekt zu erstellende Software erstellen zu können, benötigt man die Arduino IDE (Integrated Development Environment oder auf deutsch Integrierte Entwicklungs-Umgebung). Diese kann von der Arduino Website gratis heruntergeladen werden. Ich empfehle die neueste Version (2.0.1). Es gibt Downloads für Mac OS, Linux und für Windows. Ich selber verwende Mac OS. Gemäss mehreren Empfehlungen, die ich gehört habe, sollten Windows-Benutzer die Version "Windows MSI Installer" wählen, weil dann die benötigten Treiber gleich mit installiert werden.


    Sollten Probleme bei der Installation auftreten, kann ich (besonders bei Windows) nicht wirklich helfen. In diesem Fall verweise ich auf die im Internet zahlreichen Anleitungen (einfach googeln nach "Arduino erste Schritte". Besonders die Video-Serie von Max (Youtube MaxTechTV) ist sehr hilfreich.


    Wenn man die Arduino IDE heruntergeladen, installiert und gestartet hat, müsste es etwa so aussehen:



    Der obere Bereich (mit dem weissen Hintergrund) ist der Editor. Hier können Arduino-Programme erstellt werden.

    Der untere Bereich (schwarzer Hintergrund) ist die Meldungs-Konsole. Hier teilt uns die IDE mit, was gerade abgelaufen ist (Staus-, Warnungen und Fehler-Meldungen).


    Die erfolgte Installation und ein erfolgreicher Start der IDE sind zwingend notwendige Schritte, falls man das Projekt auf seinem Arduino nachvollziehen will. Falls es bis hier Probleme gegeben hat, müssen diese erst gelöst werden, bevor man weitermacht.


    Im nächsten Beitrag werde ich zeigen, wie man die IDE mit seinem Arduino über USB verbindet.

  • Als nächstes wird der Uno über das USB-Kabel mit dem Compi verbunden.


    Die Power LED auf dem Uno leuchtet, weil nun dieser Arduino durch die USB-Verbindung gespeist wird.


    Nun zurück zur Entwicklungs-Umgebung:


    Ganz oben in der grünen Kopf-Zeile gibt es eine Combo-Box, wo "Select Board" drin steht. Mit "Board" ist die aktuell verwendete Ausführung des Arduino gemeint. Da wir mit einem Arduino Uno arbeiten, muss nun "Arduino Uno" ausgewählt werden.


    Als Nächstes muss das aktuell verwendete USB-Port ausgewählt werden. Falls oben in der Combo-Box links vom Text "Arduino Uno" das USB-Symbol (nach oben gerichtete Teufels-Gabel) angezeigt wird, ist das schon erledigt. Andernfalls muss man über die Menu Funktion "Tools / Port" das aktuell verwendete USB-Port auswählen.



    Es sollte nun unten in der grünen Fusszeile Arduino Uno mit dem verwendeten USB-Port angezeigt sein (in meinem Fall steht da "Arduino Uno on /dev/cu.usbmodem83101".


    Um ganz sicher zu sein, dass die USB-Verbindung funktioniert, lädt man das sich im Editor befindliche Programm (ist im Moment ein Leer-Programm ohne eigentliche Funktion) auf den Uno hoch. Das geht durch Klicken des Recht-Pfeils in der grünen Kopfzeile der IDE.


    Wenn nach einem Moment eine Erfolgs-Meldung "Done uploading" erscheint, ist das geglückt. Andernfalls muss man das Problem zu lösen versuchen.

    Ich kann hier natürlich nicht für alle erdenklichen Probleme eine Lösung anbieten. Wenn du aber trotz Hilfe aus dem Internet nicht weiterkommst, versuche ich mit deiner Problem-Beschreibung gerne, zu helfen.


    Wenn diese Schritte (Auswahl des Board und des Port, sowie erfolgreicher Upload des Programms zu deinem Arduino) auf deinem System gelungen sind, bist du bereit für den kommenden (interessanteren) Teil des Projektes.

  • Guten Morgen Röbi,


    Du machst das ja wirklich schön übersichtlich und für Laien wie mich leicht verständlich.

    Freue mich auf die kommenden Teile des Projektes.


    Gruss


    Roland

  • Super Röbi, ich bestelle mir gleich ein Starterset. Vielleicht kriege ich das dann hin mit der Häuserbeleuchtung, so wie ich mir das vorstelle. Ich melde mich aber trotz dier super Erklärungen zu Nachhilfeunterricht an und werde Shortbread mitbringen. :)

    Gruess Martin

  • Super Röbi, ich bestelle mir gleich ein Starterset. Vielleicht kriege ich das dann hin mit der Häuserbeleuchtung, so wie ich mir das vorstelle. Ich melde mich aber trotz dier super Erklärungen zu Nachhilfeunterricht an und werde Shortbread mitbringen.

    Das freut mich, Martin. Aber wenn du dann wirklich Nachhilfeunterricht brauchst, bringst du besser gleich Longbread mit

  • Was soll man am besten alles bestellen? Nur dieses Starterset?

    Ich habe eigentlich das original Starter-Kit von Arduino gemeint. Aber das von dir vorgeschlagene scheint mir genauso geeignet zu sein. Es ist dort zwar kein original Arduino Uno dabei, sondern ein DFRduino Uno. Aber ich habe mit DFRduinos durchwegs gute Erfahrungen gemacht. Sie sind Hard- und Software-kompatibel mit dem Original-Arduino.

  • Hoi Röbi

    Du machst das sehr detailiert und so für einen wie mich gut nachvollziehbar. Leider habe ich heute Dienst und kann erst am Abend reinschauen. Aber ich bin zuversichtlich das ich das auch hinbekomme.

    Vielen Dank für deine Mühen.

  • Die Leuchtdiode (LED)


    Bevor ich loslege, möchte ich etwas klarstellen: Elektronik ist nicht meine Kern-Kompetenz. Für Bastel-Zwecke komme ich einigermassen klar damit, aber Experten-Wissen ist da bei mir nicht vorhanden. Bei der Elektrotechnik sind meine Kenntnisse etwas besser, aber auch nicht sehr umfassend. Dafür fühle ich mich bei der Programmierung einigermassen sattelfest und um diese geht es hier ja vor Allem.


    Bei diesem Projekt dreht sich vieles um die LED. Deshalb zuerst ein paar Worte über diese.


    Die LED ist (wie der Name schon sagt) eine Leuchte und auch eine Diode (also eine Halbleiter-Komponente). Da es auch eine Diode ist, ist sie polaritäts-abhängig. D.h. man darf sie nicht beliebig anschliessen wie einen Widerstand, sondern man muss auf die Polarität achten. Das längere der beiden Beinchen heisst Anode und kommt an den Plus-Pool. Das kürzere heisst Kathode und kommt über einen Serie-Widerstand an den Minus-Pool. Manchmal sind beide Beinchen gleich lang. Dann ist das Beinchen der Anode meist etwas abgekröpft, damit man sie als solche erkennt.


    Hier beim Uno arbeiten wir mit Masse (auch GND oder Ground ) und 5V. Da ist GND der Minus-Pool und 5V der Plus-Pool. Über die LED dürfen wir nie direkt 5V anlegen. Sie würde wegen ihrer speziellen Charakteristik kaputt gehen. Es wird ein in Serie geschalteter Vorwiderstand im Bereich 150 Ω bis 1kΩ benötigt. Je kleiner der Widerstand (also je weniger Ω), desto heller leuchtet die LED. Ich verwende hier einen Widerstand von 220 Ω.


    Dieses Bild zeigt, wie beim Breadboard die Pins intern miteinander verbunden sind. Bei den vertikalen Gruppen von jeweils fünf Pins gilt das natürlich für alle 60 Gruppen und nicht nur für die beiden, wo ich's hier eingezeichnet habe.


    So sieht unsere erste Beschaltung aus. Wenn der Uno mit Spannung versorgt ist (USB oder Power-Anschluss), müsste die LED jetzt leuchten.


    Um eine LED zum Leuchten zu bringen, hätten wir natürlich noch keinen Arduino gebraucht :) . Aber wir sind ja auch erst am Anfang.

  • Röbi, nur, dass du‘s weisst: ich lese ebenfalls aufmerksam mit. Aber ich bleib still, um Deine Erklärungen nicht zu stören. Falls ich dir auf die Länge noch folgen kann, behalte ich mir einen Nachbau vor. Aber nun gehört Dir das Wort. :)

    Gruss Roger


    95 von 121 grünen Ae 6/6


    Die Katze schläft im Lärm; nur die Stille weckt sie, wenn die Mäuse rascheln.

  • Röbi, ich lese auch mit und werde mir ein solches Startset beschaffen. Ich will mein Gehirn fit halten. Interessant erscheint es mir allemal.

    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.

  • Guten Abend Röbi und alle Mitschüler

    Ich habe das ausgedehnte Starterset schon lange zuhause ^^

    aber ich konnte bis heute nichts damit anfangen. :S



    übrigens an alle die Arduino und Zubehör und vieles andere an Elektronik Zubehör günstig kaufen möchten

    empfehle ich die Seite:

    https://www.mikroshop.ch

    Da findet man sehr viel.

    Ungeduldig konnte ich heute Abend den Anweisungen von Röbi folgen und siehe da...



    es funktioniert wie erwünscht. :thumbsup:



    Vielen Dank Röbi für deine Zeit und die detailierte Anleitung. So verstehe auch ich etwas. :)