Werbung
Dies ist der nächste Teil unserer Arduino-Lernserie, und diesmal wir? Ich werde etwas über und mit lernen Arrays ein kleines Weihnachtsbaumornament mit verschiedenen blinkenden Sequenzen zu machen. Dies wäre ein ideales Projekt, um die Kinder zu beschäftigen, wenn Sie ihnen das grundlegende Löten beibringen möchten. Montieren Sie einfach die LEDs auf einem Stück Karte, und Sie können eine Standard-9-V-Batterie mit Strom versorgen.
Es ist auch eine wichtige Lektion in der Arduino-Programmierung für Anfänger. Wenn Sie jedoch nicht vorhaben, dies tatsächlich als Ornament zu verwenden, würde ich dringend empfehlen, es trotzdem als Steckbrett zu verwenden.
Hinweis: Dies ist ein Tutorial für Anfänger, und wir haben mit Sicherheit gewonnen? Keine neuen Wege beschreiten - oder? s? nur ein Gerät, um die Konzepte der Verwendung zu lehren Arrays und Für Schleifen mit einem umgehen große Anzahl von LEDs (oder andere Ausgabegeräte).
Wenn Sie haben? Es wäre jetzt schon ein guter Zeitpunkt, um den anderen Artikeln der Reihe zu folgen:
- Was ist Arduino und was kann man damit machen? Was ist Arduino und was können Sie damit machen?Das Arduino ist ein bemerkenswertes kleines elektronisches Gerät, aber wenn Sie noch nie eines verwendet haben, was genau sind sie und was können Sie mit einem tun? Weiterlesen ?
- Was ist ein Arduino Starter Kit und was enthält es? Was ist in einem Arduino Starter Kit enthalten? [MakeUseOf erklärt]Ich habe die Open-Source-Hardware von Arduino bereits hier auf MakeUseOf vorgestellt, aber Sie benötigen mehr als nur das eigentliche Arduino, um daraus etwas aufzubauen und loszulegen. Arduino "Starter Kits" sind ... Weiterlesen
- Weitere coole Komponenten, die Sie mit Ihrem Starter-Kit kaufen können 8 weitere coole Komponenten für Ihre Arduino-ProjekteSie denken über ein Arduino-Starter-Kit nach, fragen sich aber, ob einige grundlegende LEDs und Widerstände ausreichen, um Sie für das Wochenende zu beschäftigen? Wahrscheinlich nicht. Hier sind noch 8 ... Weiterlesen
- Erste Schritte mit Ihrem Arduino Starter Kit? Installieren von Treibern und Einrichten von Board und Port Erste Schritte mit Ihrem Arduino Starter Kit - Installieren von Treibern und Einrichten von Board und PortSie haben sich also ein Arduino-Starter-Kit und möglicherweise einige andere zufällige coole Komponenten gekauft - was nun? Wie fangen Sie eigentlich mit der Programmierung dieser Arduino-Sache an? Wie stellst du es ein ... Weiterlesen
- Fritzing, ein kostenloses Werkzeug zum Zeichnen von Schaltplänen Fritzing - Das ultimative Werkzeug zum Skizzieren von Elektronikprojekten [Plattformübergreifend]Obwohl Fritzing wie ein Alkopop klingt, ist es tatsächlich ein unglaubliches Stück freier Software, mit der Sie erstellen können Schalt- und Komponentendiagramme zur Verwendung mit Rapid-Prototyping-Elektronikplatinen wie dem fantastischen Open Source Arduino ... Weiterlesen
- Ein genauerer Blick auf die Struktur einer Arduino-App und das Beispiel-Blink-Programm Erste Schritte mit dem Arduino: Ein genauerer Blick auf die Leiterplatte und die Struktur eines ProgrammsAls ich Sie das letzte Mal verlassen habe, haben Sie Ihr Arduino für die Arbeit mit Mac oder Windows eingerichtet und eine einfache Test-App hochgeladen, die die integrierte LED blinkt. Heute werde ich den Code erklären ... Weiterlesen
Für dieses Projekt, Sie? Ich brauche mindestens 8 oder 9 LEDs in rot oder grün, a Widerstand für jeden von ihnen a Steckbrett und einige Anschlussdrähte. Das Starter-Kit von Ooomlout, das ich kürzlich selbst gekauft habe und das in diesem Tutorial abgebildet ist, bietet ein hervorragendes Preis-Leistungs-Verhältnis und verfügt über mehr LEDs und Widerstände als Sie? Ich werde es immer brauchen und mit einem ordentlichen Steckbrett und einem Arduino-Koffer kommen, um die Dinge sauber zu halten.
Hier? s das Letzte:
Und ein Video davon in Aktion.
Hier? s ein Blick auf die Verkabelung von Fritzing. Es? s sehr einfach - verbinden Sie einfach das Pluskabel der LEDs mit den Pins 2-> was auch immer (bis Pin 13) und verbinden Sie die negativen Beine mit einem Widerstand inline mit der Erde. Der Wert ich? Hier wird 560 Ohm verwendet. Das? s es für die Verkabelung.
Überlegen Sie sich auf der Softwareseite, wie Sie möglicherweise in alle diese LEDs im Code schreiben. Sie könnten so vorgehen:
int led1 = 2; // erste LED an Pin 2. int led2 = 3; // Sekunde an Pin 3. // etc etc void loop () {digitalWrite (led1, HIGH); Verzögerung (100); digitalWrite (led1, LOW); Verzögerung (100); digitalWrite (led2, HIGH); // etc. }
Sie sollten in der Lage sein zu sehen, dass mit 9 LEDs dies schnell ermüdend wird. Die Antwort liegt bei Arrays, was wenn du kannst? Ich erinnere mich nicht an unsere Programmierung 101 über grundlegende Datentypen Die Grundlagen der Computerprogrammierung 101 - Variablen und DatentypenNachdem ich vor und wo sein Namensvetter ein wenig über objektorientierte Programmierung eingeführt und gesprochen hatte Ich dachte, es ist Zeit, die absoluten Grundlagen des Programmierens in einer nicht sprachspezifischen Sprache durchzugehen Weg. Diese... Weiterlesen - sind im Grunde nur Listen.
Die Syntax sieht folgendermaßen aus (setzen Sie dies als erste Zeile in Ihren Code):
int leds [] = {2,3,4,5,6,7,8,9,10};
Die eckigen Klammern zeigen an, dass die? LEDs? Variable wird eine sein Array. Die geschweiften Klammern schließen die Liste der Pin-Nummern ein, die unser Array enthalten wird.
Um ein Array zu verwenden, müssen wir es mit der Indexnummer adressieren. Das Index beginnt bei 0und wird daher immer bis zu 1 weniger als die Gesamtzahl der darin enthaltenen Dinge (Bei 9 Elementen hätte das letzte einen Index von 8).
Du schreibst es so:
LEDs [0]
Was würde in unserem Fall die Nummer 2 holen, weil das? s was? s bei Index 0 in unserem Array.
Bisher folgen? Groß. Das allein ist nicht? Es reicht uns jedoch nicht - wir brauchen auch eine Möglichkeit, jedes Element unseres LED-Arrays zu durchlaufen. Dafür verwenden wir a für Schleife. Die Syntax dafür lautet wie folgt:
für (Anfangsvariable; Bedingung, unter der wir noch einmal wiederholen; bei jeder Iteration in Variable ändern)
Beispielsweise:
für (int i = 0; i <9; i ++)
Was sagt
- Starten Sie diese Schleife mit einer Variablen. ich, die einen Wert von hat Null
- Setzen Sie die Schleife nur fort, solange ich es bin weniger als 9(also: 0,1,2,3,4,5,6,7,8)
- jedes Mal, addiere 1 zu i (i ++ ist eine kurze Art zu sagen, i = i + 1)
Im Grunde wird die Schleife so oft wiederholt, wie wir LEDs haben, und jedes Mal? s wiederholt werden wir eine Variable haben, ich, die wir verwenden können, wie wir wollen.
Wir? Ich werde diese Struktur zunächst zweimal verwenden. Sobald Sie sich in der Setup-Funktion befinden, werden alle unsere Pins wie folgt in den Ausgabemodus versetzt:
void setup () {for (int i = 0; i <9; i ++) {pinMode (leds [i], OUTPUT); } }
Kannst du sehen, was wir dort gemacht haben? Anstatt 9 Codezeilen zu schreiben, um jeden einzelnen Pin als Ausgang zu deklarieren, erstellen wir eine 'for'-Schleife, die sich 9 Mal wiederholt und jedes Mal einen anderen Pin setzt.
Jetzt sollten Sie in der Lage sein zu sehen, wie wir genau dasselbe in der Hauptprogrammschleife tun können, um jede LED nacheinander einzuschalten:
void loop () {for (int i = 0; i <9; i ++) {digitalWrite (leds [i], HIGH); Verzögerung (100); digitalWrite (LEDs [i], LOW); } }
Versuch das. Du kannst Laden Sie hier den vollständigen Code für das heutige Projekt herunter wenn du? d tippe es lieber nicht noch einmal ein (obwohl ich dich dazu ermutige, da es den Lernprozess unterstützt).
Okay, jetzt haben wir eine ziemlich langweilige Lichtsequenz. Lassen? s programmieren Sie einen anderen. Nur zum Spaß, lass? s machen es völlig zufällig. Ersetzen Sie den Hauptschleifencode durch:
void loop () { int randomLed = random (0,8); digitalWrite (leds [randomLed], HIGH); Verzögerung (50); randomLed = random (0,8); digitalWrite (leds [randomLed], LOW); }
Anstatt eine 'for'-Schleife zu verwenden, um über jede LED zu iterieren, wählen wir stattdessen eine Zufallszahl von 0 bis 9 und blinken diese auf.
Ich werde es für heute dort lassen, da Sie jetzt mit genügend Wissen ausgestattet sein sollten, um alle neuen Sequenzen zu programmieren und mit Loops zu experimentieren. Um zu beweisen, wie einfach das alles ist, forderte ich meine Frau auf, an eine Sequenz zu denken, die sie? würde gerne sehen und dann bekommen?sie es selbst zu programmieren, nur den Code und Lektionen Sie gegeben? habe hatte bisher. Sie hat sich das ausgedacht, also sehen Sie, ob Sie das für Hausaufgaben zusammenbringen können!
Fragen, Anregungen, Probleme - bitte melden Sie sich in den Kommentaren.
James hat einen BSc in künstlicher Intelligenz und ist CompTIA A + und Network + zertifiziert. Er ist der Hauptentwickler von MakeUseOf und verbringt seine Freizeit mit VR-Paintball und Brettspielen. Er baut seit seiner Kindheit PCs.