Arduino 101: LED mit einer Taste blinken lassen
() translation by (you can also view the original English article)
In meinem letzten Tutorial habe ich erklärt, warum es einfach ist, mit Arduino an elektronischen Projekten zu arbeiten. In diesem Tutorial werde ich eine Arduino-Karte verwenden, um eine einfache Schaltung zu erstellen, die ein LED-Licht einschalten kann. Mit etwas grundlegenderem Code werde ich das gleiche LED-Licht blinken lassen. Zum Schluss werde ich einen Druckknopf hinzufügen und damit das Blinken beschleunigen.
Einige der Diagramme in diesem Artikel wurden mit dem Fritzing-Programm entwickelt.
Lieferungen



In diesem Tutorial werde ich die folgenden Komponenten verwenden:
- Arduino Uno R3 x 1
- Steckbrett x 1
- Standard-USB-Kabel Typ B x 1
- Druckknopf x 1
- 10K Widerstand x 1
- Kurze Überbrückungsdrähte x 3
Sie können diese Artikel entweder über ein lokales Elektronikgeschäft wie Fry's (wenn Sie in den USA leben) oder über das Internet von der Arduino-Website, Amazon, Little Bird Electronics oder sogar eBay kaufen.
Alternativ können Sie eines dieser anderen Arduino-Boards auswählen, um diesem Tutorial zu folgen:
Andere Arduino-Boards oder kompatible Boards von Drittanbietern funktionieren möglicherweise ebenfalls. Möglicherweise benötigen sie jedoch einen anderen USB-Anschluss. Stellen Sie sicher, dass Ihre Arduino-Karte mit einem geeigneten USB-Kabel eine Verbindung zu Ihrem Computer herstellen kann.
Stellen Sie außerdem sicher, dass Sie die neueste Version der Arduino IDE heruntergeladen und auf Ihrem Computer installiert haben. Die Installation der Arduino IDE erfordert möglicherweise einige weitere Schritte auf Windows-Computern, da Sie einige Treiber installieren müssen. Weitere Anweisungen finden Sie in den Installationsanleitungen auf der Arduino-Website.
Sie fragen sich vielleicht, wie wir ein Licht einschalten sollen, wenn wir keines in die Liste der Komponenten aufgenommen haben? Das ist einfach! Arduino-Boards sind normalerweise mit einer integrierten LED ausgestattet, die wir in unseren Projekten verwenden können. Um unsere Schaltung so einfach wie möglich zu halten, werden wir diese LED verwenden.



1. Richten Sie ein neues Projekt ein
Schließen Sie zunächst Ihr Arduino-Board mit dem entsprechenden USB-Kabel an Ihren Computer an. Sie werden feststellen, dass eine oder mehrere Lichter kurz oder dauerhaft aufleuchten können. Arduino Uno verfügt über vier integrierte LED-Leuchten. Wenn Ihr Board mehr als eine LED hat, zeigen blinkende Lichter an, dass es an eine Stromquelle angeschlossen ist und hochfährt. Es dauert ungefähr fünf Sekunden, bis Arduino bereit ist, mit ihm zu interagieren.
Starten Sie die Arduino IDE auf Ihrem Computer. Sie erhalten einen leeren Arbeitsbereich, in den Sie den erforderlichen Code schreiben, um Ihr Arduino-Board zu programmieren.
Als nächstes müssen Sie der Arduino IDE mitteilen, mit welcher Karte Sie eine Verbindung herstellen möchten. Wählen Sie im Menü Werkzeuge > Vorstand und dann Ihre Arduino-Karte aus der Liste. Wenn Sie sich für die Verwendung eines offiziellen Arduino-Boards entschieden haben, sollte dessen Name zur Auswahl aufgeführt werden. Boards von Drittanbietern entsprechen normalerweise einem anderen offiziellen Arduino-Board. Wenn Sie wissen, um welches Board es sich handelt, wählen Sie dieses aus der Liste aus. Andernfalls lesen Sie in der Bedienungsanleitung nach, welches Modell aus der Liste für Ihr spezielles Board geeignet ist.
Schließlich müssen Sie den richtigen Port für die Kommunikation mit Ihrem Arduino-Board auswählen. Gehen Sie erneut im Menü zu Werkzeuge > Serielle Schnittstelle und wählen Sie die richtige serielle Schnittstelle aus. Auf Macs wird die richtige serielle Schnittstelle häufig als /dev/tty.usbmodem1421
oder ähnlich aufgeführt. Unter Windows sollte die Verbindung als COM
-Port aufgeführt sein.
2. Licht einschalten
Arduino ist mit vielen verschiedenen Eingangs- und Ausgangsanschlüssen ausgestattet, die wir als IO-Pins bezeichnen werden. Im Moment möchten wir einen digitalen E/A-Pin verwenden, um das LED-Licht zum Einschalten anzuweisen. Da wir auch das integrierte LED-Licht verwenden, haben die Arduino-Hersteller bereits den geeigneten IO-Pin für uns ausgewählt. Es ist Pin 13, der konstruktionsbedingt an der integrierten LED-Leuchte angebracht wurde.
Kopieren Sie den folgenden Code und fügen Sie ihn in Ihre Arduino IDE ein:
1 |
int led_pin = 13; void setup() { pinMode(led_pin, OUTPUT); } |
2 |
void loop() { digitalWrite(led_pin, HIGH); } |
Im Code habe ich zwei Arduino-Funktionen verwendet: pinMode (pin_number, mode)
und digitalRead (pin_number, value)
.
Ich werde die Funktion pinMode()
in setup()
aufrufen, um Arduino anzuweisen, seinen Pin-13 als Ausgang zu behandeln. Durch Aufrufen der Funktion digitalWrite()
in loop()
kann ich dann das HIGH
-Signal an Pin-13 aktivieren, das das LED-Licht einschaltet.
Klicken Sie auf die Schaltfläche Hochladen, um den obigen Code in Ihr Arduino-Board zu übertragen. Vorausgesetzt, die richtige Arduino-Karte und der richtige serielle Anschluss sind ausgewählt, sollte ein Fortschrittsbalken gefolgt von einer Meldung "Fertig hochladen" angezeigt werden.
Während des Hochladens des Codes blinken möglicherweise verschiedene Lichter, was auf eine erfolgreiche Kommunikation zwischen Ihrem PC und der Arduino-Karte hinweist. Zu diesem Zeitpunkt sollte das integrierte LED-Licht dauerhaft eingeschaltet sein.
3. Lassen Sie es blinken
Sie haben das Arduino-Äquivalent von „Hello World“ abgeschlossen. Jetzt lassen Sie dieses Licht blinken, indem Sie die delay()
-Funktion in den obigen Code einfügen. Die Funktion delay()
akzeptiert einen ganzzahligen Wert, der einer Zeitdauer in Millisekunden entspricht. 1000 Millisekunden entsprechen einer Sekunde.
1 |
int delay_value = 1000; int led_pin = 13; |
2 |
|
3 |
void setup() { |
4 |
pinMode(led_pin, OUTPUT); |
5 |
}
|
6 |
|
7 |
|
8 |
void loop() { |
9 |
digitalWrite(led_pin, HIGH); |
10 |
delay(delay_value); digitalWrite(led_pin, LOW); |
11 |
delay(delay_value); |
12 |
}
|
Die delay()
- Funktion hält das LED-Licht an und schaltet es bei jeder Iteration der loop()
- Funktion für eine Sekunde aus. Da die Funktion loop()
ständig wiederholt wird, schaltet dieser Code das LED-Licht wiederholt ein und aus.



Anhand eines digitalen Wellendiagramms kann ich lose erklären, wie sich das ursprüngliche Verhalten geändert hat. Bevor ich in Schritt drei die Verzögerungsfunktion einführte, erzeugte ich eine digitale Welle, die wie im obigen Diagramm aussah. Jeder Zyklus jeder Schleifen() - Funktionsiteration wurde darauf verwendet, das LED-Licht eingeschaltet zu halten.
Mit der delay()-Funktion teilt unser Code jeden Zyklus in zwei Teile, sodass jede Iteration zwei Sekunden dauert. Während der ersten Sekunde wird die LED eingeschaltet und in der nächsten Sekunde ausgeschaltet.



4. Ändern Sie die Verzögerungszeit mit einer Taste
Bis zu diesem Punkt wurde das Verhalten dieses Arduino-Projekts durch den von uns geschriebenen Code positiv beeinflusst. Sobald es jedoch hochgeladen und ausgeführt wird, haben wir keine Möglichkeit mehr, mit dieser elektronischen Schaltung zu interagieren. Dies ist sehr statisch und ich werde es ändern, indem ich einen Druckknopf hinzufüge, mit dem ich die Blinkgeschwindigkeit ändern kann. In diesem Schritt muss ich ein Steckbrett verwenden. Dies ist ein guter Zeitpunkt, um einen Blick darauf zu werfen, was ein Steckbrett ist und wie es verwendet werden kann.
Steckbrett
Ein Steckbrett ist ein lötfreies Prototyping-Board, das zur Herstellung temporärer elektronischer Schaltungen verwendet wird, hauptsächlich zum Experimentieren mit verschiedenen Leiterplattendesigns.
Moderne Steckbretter bestehen aus einem massiven Stück perforiertem Kunststoff, unter dessen Oberfläche sich viele Kupferklammern befinden, um elektrische Verbindungen herzustellen. Die zahlreichen Löcher auf der Oberfläche dieser Platinen ermöglichen das Einsetzen verschiedener elektronischer Komponenten, ohne dass diese verlötet werden müssen.
Übliche Steckbretter haben zwei Spalten mit jeweils eigenen Reihen mit fünf Löchern. Jedes Loch ist mit allen anderen Löchern in derselben Reihe verbunden, jedoch nicht mit einem der Löcher in der benachbarten Spalte. Mit anderen Worten, wenn zwei Drähte nicht in derselben Zeile derselben Spalte platziert sind, sind die beiden nicht miteinander verbunden. Mit diesem Setup können wir eine einzelne Verbindung von einer Komponente über vier andere Verbindungspunkte in derselben Zeile freigeben.
Der Grund für zwei oder mehr Spalten auf demselben Steckbrett besteht darin, dass mehrere integrierte Schaltkreise (ICs) verbunden werden können. ICs werden normalerweise in beide Spalten eines Steckbretts eingebunden, da sie auf beiden Seiten mehr als zwei Stifte haben, wie in der folgenden Abbildung dargestellt.



Auf beiden Seiten der meisten Boards befinden sich lange Streifen, die zum Teilen der Energie verwendet werden. Diese Streifen werden oft als Busstreifen oder Stromschienen bezeichnet, da sie über die gesamte Länge der Platine verlaufen. Über die Stromschienen einiger Platinen können Sie sowohl Plus- als auch Erdungsverbindungen anschließen. Im Gegensatz zu normalen Reihen sind alle Löcher entlang der Länge der Platine miteinander verbunden.



Beim Kauf eines Steckbretts ist es eine gute Idee, den Typ mit Rillen auf beiden Seiten des Bretts zu wählen. Diese Rillen können verwendet werden, um mehrere Steckbretter miteinander zu verbinden, um einen größeren Arbeitsraum zu schaffen. Ein hochwertiges Steckbrett ist mit Zahlen und Buchstaben gekennzeichnet, damit jede Zeile und Spalte leicht identifiziert werden kann.
Schritt 1
Beginnen Sie, indem Sie den Druckknopf platzieren und ihn mit den Power-Jumpern vom Arduino-Board verbinden. Arduino Uno kann zwei Leistungsstufen ausgeben, 3 Volt und 5 Volt. Für diese Schaltung müssen wir die 5-V-Schiene verwenden. Der Grund, warum Sie eine über der anderen verwenden, hängt von den Komponenten ab, die Sie verbinden möchten. Einige Komponenten benötigen möglicherweise eine niedrigere Netzspannung, daher der 3-V-Ausgang.



Im obigen Diagramm haben wir eine vollständige Schaltung. Wir haben die oberen Stifte des Druckknopfs sowohl mit dem 5-V-Pin des Arduino als auch mit dem 10-K-Widerstand verbunden. Dieser wird dann mit dem Erdungsstift (GND) unseres Arduino verbunden. Unser dritter Draht (in Gelb) wird an den digitalen Pin-2 angeschlossen und leitet das EIN-Signal zur Arduino-Karte.
Widerstand
Der Zweck eines Widerstands besteht darin, den elektrischen Strom zu verlangsamen, wenn Strom durch ihn fließt, wodurch die durch den Stromkreis fließende Strommenge begrenzt wird. Dies wird erreicht, indem Widerstände aus Materialien mit geringen Leitfähigkeitseigenschaften hergestellt werden. Der Widerstand wird in Ohm gemessen und kann aus der folgenden Gleichung bestimmt werden:



Angenommen, ich möchte ein LED-Licht an eine 9-V-Stromquelle anschließen, aber die LED kann nur 30 Milliampere Strom tolerieren. Basierend auf der obigen Gleichung müssen wir einen 300-Ohm-Widerstand verwenden, um den durch das LED-Licht fließenden Strom zu begrenzen.



Es gibt drei Hauptkategorien von Widerständen:
- Feste Widerstände, wie wir sie hier verwenden,
- Variable Widerstände, allgemein bekannt als Potentiometer, und
- Variable Widerstände, die von physikalischen Eigenschaften abhängen, wie Temperatur (Thermistoren) oder Licht (Photovoltaikzellen)
Obwohl Widerstände dazu dienen, den Stromfluss zu begrenzen, gibt es in jeder dieser drei Kategorien unterschiedliche Arten von Widerständen für unterschiedliche Anwendungen.
Die meisten Festwiderstände sind mit farbigen Bändern gekennzeichnet, damit wir ihren Widerstand ermitteln können. Von links geben die ersten beiden Bänder die erste und die zweite Stelle des Widerstandswerts an. Das dritte Band gibt den Multiplikationsfaktor an. Schließlich gibt das vierte Band die Toleranz des Widerstands an.



Aus den Farben des obigen Widerstands können wir Folgendes herausfinden:
- Braun (erste Ziffer)=1
- Schwarz (zweite Ziffer)=0
- Orange (Multiplikator)=10^3
- Gold (Toleranz)=+/- 5%
- 10 * 10^3 = 10.000 Ohm oder 10 Killo Ohm oder 10K Widerstand
Hier ist die komplette Farbtabelle. Weitere Informationen zu Widerstandsfarbcodes finden Sie in Wikipedia.
Farbe | Ziffer | Multiplikator | Toleranz |
Schwarz | 0 | x10 ^ 0 | ± 1% |
Braun | 1 | x10 ^ 1 | ± 2% |
rot | 2 | x10 ^ 2 | - - |
Orange | 3 | x10 ^ 3 | (± 5%) |
Gelb | 4 | x10 ^ 4 | ± 5% |
Grün | 5 | x10 ^ 5 | ± 0,25% |
Blau | 6 | x10 ^ 6 | ± 10% |
Violett | 7 | x10 ^ 7 | ± 1% |
Grau | 8 | x10 ^ 8 | ± 0,05% (± 10%) |
Weiß | 9 | x10 ^ 9 | - - |
Gold | - - | x10 ^ –1 | ± 5% |
Silber | - - | x10 ^ –2 | ± 10% |
Keiner | - - | - - | ± 20% |
Der Zweck des Widerstands
Ich habe das gelbe Signalkabel von digitalem Pin 2 mit einem Bein des Druckknopfs verbunden. Das gleiche Bein des Knopfes auf der anderen Seite ist über den 10K-Widerstand mit der Erde verbunden, um einen vollständigen Stromkreis zu bilden. Wenn die Taste nicht gedrückt wird, wird der Wanderstrom von Arduino als NIEDRIG gelesen.
Sobald der Knopf gedrückt wird, wird eine Verbindung zwischen Pin 2 und positiven 5 V über die Druckknopfbeine hergestellt. Da sich die Elektrizität immer auf dem Weg des geringsten Widerstands bewegt, wird sie den Widerstand nicht durchlaufen und zu Pin 2 fließen, was zu einem hohen Messwert auf der Arduino-Platine führt.
Schritt 2
Beenden wir nun Schritt 4 und lassen das LED-Licht schneller blinken, wenn wir den Druckknopf drücken.
1 |
int delay_value = 1000; |
2 |
int led_pin = 13; |
3 |
int button_pin = 2; |
4 |
void setup() { |
5 |
pinMode(led_pin, OUTPUT); pinMode(button_pin, INPUT); |
6 |
}
|
7 |
void loop() { |
8 |
digitalWrite(led_pin, HIGH); |
9 |
delay(delay_value); |
10 |
digitalWrite(led_pin, LOW); |
11 |
delay(delay_value); |
12 |
int button_state = digitalRead(button_pin); |
13 |
if (button_state == HIGH) { |
14 |
delay_value = 100; |
15 |
} else { |
16 |
delay_value = 1000; |
17 |
}
|
18 |
}
|
Dieses Mal weist der Code Arduino an, Pin-2 als Eingangsquelle zu behandeln, indem der pinMode (button_pin, INPUT)
in der Funktion setup()
aufgerufen wird. Auf diese Weise können wir den Status der Drucktaste später in der Funktion loop()
lesen, indem wir digitalRead (button_pin)
aufrufen. Wenn wir den Status der Drucktaste abrufen, können wir bestimmen, ob die Verzögerungsfunktion mit einem kleineren Wert aufgerufen werden soll.
Laden Sie nun den obigen Code auf Ihr Arduino hoch und drücken Sie die Taste, um zu sehen, wie die LED schneller leuchtet.
Fehlerbehebung
Wenn Sie so weit gekommen sind und der obige Code für Sie nicht funktioniert, kann dies mehrere Gründe haben:
- Dies mag offensichtlich klingen, aber stellen Sie sicher, dass Ihr Arduino an eine Stromquelle angeschlossen ist und die ON-LED leuchtet.
- Stellen Sie sicher, dass alle Stifte und Drähte, der Widerstand und der Druckknopf fest mit Ihrem Arduino-Board und dem Steckbrett verbunden sind. Wenn Sie sich über die Kontinuität Ihrer Verbindungen nicht sicher sind, messen Sie die Kontinuität mit einem Multimeter.
- Stellen Sie sicher, dass alle Verbindungen zur Arduino-Karte mit den richtigen digitalen Eingängen verbunden sind.
- Wenn Ihr Problem weiterhin besteht, lesen Sie die Arduino-Anleitung zur Fehlerbehebung.
Abschluss



In diesem Tutorial haben Sie einige grundlegende Techniken zur Verwendung eines Arduino-Boards, eines Steckbretts, von Widerständen und Drucktasten zusammen mit der Arduino-IDE gelernt. Sie haben auch gelernt, wie die delay()
- Funktion verwendet werden kann, um einen Status für eine bestimmte Zeitdauer aufrechtzuerhalten.
Wenn Sie Fragen zu diesem Tutorial haben, hinterlassen Sie diese bitte im Kommentarbereich unten.