Arduino 101 LED mit einem Knopf zum Blinken bringen

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-Platine verwenden, um eine einfache Schaltung herzustellen, die eine LED-Lampe einschalten kann. Mit etwas mehr grundlegendem Code werde ich das gleiche LED-Licht zum Blinken bringen. Schließlich füge ich einen Druckknopf hinzu und beschleunige damit das Blinken.

Einige der Diagramme in diesem Artikel wurden mit dem Fritzing-Programm entwickelt.


Vorräte

Arduino-Komponenten

In diesem Tutorial werde ich folgende Komponenten verwenden:

  • Arduino Uno R3 x 1
  • Brotbrett x 1
  • Standard Typ B USB-Kabel x 1
  • Drucktaste x 1
  • 10K Widerstand x 1
  • Kurzschlussdrähte x 3

Sie können diese Artikel entweder über einen lokalen Elektronikladen wie Frys (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 auch eines dieser anderen Arduino-Boards auswählen, um diesem Tutorial zu folgen:

  • Arduino Leonardo
  • Arduino Mega Due
  • Arduino Mega 2560
  • Arduino Micro

Andere Arduino-Boards oder kompatible Boards von Drittanbietern funktionieren möglicherweise ebenfalls. Sie benötigen jedoch möglicherweise einen anderen USB-Anschluss. Stellen Sie sicher, dass Ihr Arduino-Board über ein geeignetes USB-Kabel mit Ihrem Computer verbunden werden kann.

Stellen Sie außerdem sicher, dass Sie die neueste Version der Arduino IDE auf Ihren Computer heruntergeladen und installiert haben. Die Installation der Arduino IDE erfordert auf Windows-Computern möglicherweise einige weitere Schritte, da einige Treiber installiert werden müssen. Für weitere Anweisungen folgen Sie bitte den Installationsanleitungen auf der Arduino-Website.

Sie fragen sich vielleicht, wie wir ein Licht anmachen werden, wenn wir keines in die Liste der Komponenten aufgenommen haben? Das ist einfach! Arduino-Boards sind normalerweise mit einer Onboard-LED ausgestattet, die wir in unseren Projekten verwenden können. Um unsere Schaltung so einfach wie möglich zu halten, verwenden wir diese LED.

Unser Code funktioniert mit dem Licht, das mit dem Buchstaben L daneben markiert ist.

1. Richten Sie ein neues Projekt ein

Verbinden Sie zunächst Ihr Arduino-Board mit dem entsprechenden USB-Kabel mit Ihrem Computer. Sie werden feststellen, dass eine oder mehrere Leuchten vorübergehend oder dauerhaft eingeschaltet werden können. Arduino Uno verfügt über vier integrierte LED-Leuchten. Wenn Ihre Karte mehr als eine LED enthält, zeigen blinkende LEDs an, dass sie an eine Stromquelle angeschlossen ist und hochfährt. Es dauert ungefähr fünf Sekunden, bis Arduino bereit ist, damit Sie mit ihm interagieren können.

Starten Sie die Arduino IDE auf Ihrem Computer. Sie erhalten einen leeren Arbeitsbereich, in dem Sie den erforderlichen Code schreiben, um Ihr Arduino-Board zu programmieren.

Als Nächstes müssen Sie der Arduino IDE mitteilen, zu welcher Karte Sie eine Verbindung herstellen möchten. Wählen Sie im Menü Extras> Platine, und wählen Sie dann Ihr Arduino-Board aus der Liste aus. Wenn Sie sich für ein offizielles Arduino-Board entschieden haben, sollte dessen Name angezeigt werden. Boards von Drittanbietern entsprechen in der Regel einem anderen offiziellen Arduino-Board. Wenn Sie wissen, um welche Karte es sich handelt, wählen Sie diese aus der Liste aus. Ansonsten lesen Sie im Handbuch nach, um herauszufinden, welches Modell aus der Liste für Ihre spezielle Karte geeignet ist.

Schließlich müssen Sie den richtigen Port für die Kommunikation mit Ihrem Arduino-Board auswählen. Gehen Sie erneut aus dem Menü zu Extras> Serienport, und wählen Sie den rechten seriellen Port aus. Auf Macs wird der richtige serielle Port häufig als aufgeführt /dev/tty.usbmodem1421 oder ähnliches. Unter Windows sollte die Verbindung als aufgeführt werden COM Hafen.


2. Licht einschalten

Arduino verfügt über viele verschiedene Eingangs- und Ausgangsanschlüsse, die als IO-Pins bezeichnet werden. Im Moment möchten wir einen digitalen IO-Pin verwenden, um das LED-Licht anzuweisen. Da wir auch das LED-LED-Licht verwenden, haben die Arduino-Hersteller den geeigneten IO-Pin bereits für uns entschieden. Es ist Pin 13, der an der LED-Leuchte an Bord angebracht wurde.

Kopieren Sie den folgenden Code und fügen Sie ihn in Ihre Arduino IDE ein:

 int led_pin = 13; void setup () pinMode (led_pin, OUTPUT);  void loop () digitalWrite (led_pin, HIGH); 

Im Code habe ich zwei Arduino-Funktionen verwendet: pinMode (pin_number, mode) und digitalRead (Pin-Nummer, Wert).

Ich werde das anrufen pinMode () Funktion im Inneren Konfiguration() um Arduino anzuweisen, seinen Pin-13 als Ausgang zu behandeln. Dann rufen Sie die digitalWrite () Funktion im Inneren Schleife() Ich kann aktivieren HOCH Signal an Pin-13, wodurch das LED-Licht eingeschaltet wird.

Klicke auf das Hochladen Taste, um den obigen Code in Ihr Arduino-Board zu drücken. Wenn die richtige Arduino-Karte und der serielle Anschluss ausgewählt sind, sollte eine Fortschrittsleiste gefolgt von einem angezeigt werden Fertig Hochladen Botschaft.

Während der Code hochgeladen wird, blinken möglicherweise verschiedene LEDs, was auf eine erfolgreiche Kommunikation zwischen Ihrem PC und dem Arduino-Board hinweist. Zu diesem Zeitpunkt sollte das LED-LED-Licht dauerhaft eingeschaltet sein.


3. Lass es blinken

Sie haben das Arduino-Äquivalent von "Hello World" abgeschlossen. Jetzt lassen Sie das Licht blinken, indem Sie die verzögern() Funktion in den obigen Code. Das verzögern() Die Funktion akzeptiert einen ganzzahligen Wert, der einer Zeit in Millisekunden entspricht. 1000 Millisekunden entspricht einer Sekunde.

 int delay_value = 1000; int led_pin = 13; void setup () pinMode (led_pin, OUTPUT);  void loop () digitalWrite (led_pin, HIGH); delay (delay_value); digitalWrite (led_pin, LOW); delay (delay_value); 

Das verzögern() Funktion hält das LED - Licht an und schaltet es bei jeder Wiederholung des LED für eine Sekunde aus Schleife() Funktion. Als die Schleife() Funktion wiederholt sich ständig, dieser Code schaltet das LED-Licht wiederholt ein und aus.

Digital Wave Diagramm

Anhand eines digitalen Wellendiagramms kann ich locker erklären, wie sich das ursprüngliche Verhalten geändert hat. Bevor ich die Verzögerungsfunktion in Schritt drei einführte, erzeugte ich eine digitale Welle, die wie im Diagramm oben aussah. Bei jedem Durchlauf der Schleife () - Funktion wurde das LED-Licht eingeschaltet.

Mit der delay () - Funktion unterteilt unser Code jeden Zyklus in zwei Teile, sodass jede Iteration zwei Sekunden dauert. Während der ersten Sekunde ist die LED eingeschaltet, und während der nächsten Sekunde ist sie ausgeschaltet.

Diese Abbildung zeigt, wie die delay () - Funktion verwendet wird, um den aktuellen Status beizubehalten.

4. Ändern Sie die Verzögerungszeit mithilfe einer Schaltfläche

Bis zu diesem Punkt wurde das Verhalten dieses Arduino-Projekts vom Code, den wir geschrieben haben, gut beeinflusst. Sobald es jedoch hochgeladen ist und ausgeführt wird, haben wir keine Möglichkeit, 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 verwenden Steckbrett. Dies ist ein guter Zeitpunkt, um zu sehen, was ein Steckbrett ist und wie es verwendet werden kann.

Brotschneidebrett

Ein Breadboard ist eine lötfreie Prototyp-Platine, die zur Herstellung temporärer elektronischer Schaltungen verwendet wird, hauptsächlich zum Experimentieren mit verschiedenen Leiterplattendesigns.

Moderne Breadboards bestehen aus einem festen Stück perforiertem Kunststoff, unter dessen Oberfläche sich viele Kupferclips befinden, um elektrische Verbindungen herzustellen. Die zahlreichen Löcher auf der Oberfläche dieser Platinen ermöglichen das Einfügen verschiedener elektronischer Komponenten, ohne dass irgendwelche Lötstellen erforderlich sind.

Übliche Breadboards haben zwei Säulen mit jeweils eigenen Reihen von 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 angeordnet sind, sind die beiden nicht miteinander verbunden. Diese Konfiguration ermöglicht es uns, eine einzelne Verbindung von einer Komponente über vier andere Verbindungspunkte in derselben Zeile gemeinsam zu nutzen.

Der Grund, zwei oder mehr Spalten auf demselben Steckbrett zu haben, besteht darin, dass mehrere integrierte Schaltungen (ICs) angeschlossen werden können. ICs werden normalerweise in beiden Spalten eines Steckbretts angeschlossen, da sie auf beiden Seiten mehr als zwei Pins aufweisen, wie in der folgenden Abbildung dargestellt.

40-Pin-IC an einem Steckbrett befestigt.

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

Stromschienen sind normalerweise mit roten und blauen Linien markiert, die über die gesamte Länge der Platine verlaufen.

Wenn Sie ein Breadboard kaufen, ist es eine gute Idee, den Typ mit Rillen auf beiden Seiten des Boards zu wählen. Diese Nuten können verwendet werden, um mehrere Breadboards miteinander zu verbinden, um einen größeren Arbeitsraum zu schaffen. Ein qualitativ hochwertiges Steckbrett ist mit Zahlen und Buchstaben gekennzeichnet, um die einzelnen Reihen und Spalten leicht identifizieren zu können.

Schritt 1

Beginnen Sie damit, den Druckknopf zu platzieren und ihn mit den Steckbrücken der Arduino-Platine zu verbinden. Arduino Uno kann zwei Leistungsstufen ausgeben, 3 Volt und 5 Volt. Für diese Schaltung müssen wir die 5V-Schiene verwenden. Der Grund, warum Sie eine über der anderen verwenden, hängt von den zu verbindenden Komponenten ab. Einige Komponenten benötigen zum Betrieb möglicherweise eine niedrigere Spannung, daher der 3-V-Ausgang.

Schaltung mit Arduino und Steckbrett

Im obigen Diagramm haben wir eine vollständige Schaltung. Wir haben die oberen Pins des Drucktasters sowohl am 5-V-Pin des Arduino als auch am 10K-Widerstand angeschlossen. Dieser verbindet sich dann mit dem Masse-Pin (GND) an unserem Arduino. Unser dritter Draht (in Gelb) ist mit dem digitalen Pin-2 verbunden und überträgt das ON-Signal zur Arduino-Platine.

Widerstand

Der Zweck eines Widerstands besteht darin, den elektrischen Strom zu verlangsamen, während der Strom durch ihn fließt, wodurch die durch den Schaltkreis fließende Strommenge begrenzt wird. Dies wird erreicht, indem Widerstände aus Materialien mit geringer Leitfähigkeit hergestellt werden. Widerstand wird in gemessen Ohm und kann aus der folgenden Gleichung bestimmt werden:

Widerstand (in Ohm) = Leistung oder Spannung (in Volt) / Strom (in Ampere)

Angenommen, ich möchte eine LED-Lampe an eine 9-V-Stromquelle anschließen, die LED verträgt jedoch nur 30 mA Strom. Basierend auf der obigen Gleichung müssen wir einen 300 Ohm Widerstand verwenden, um den durch das LED-Licht fließenden Strom zu begrenzen.

9 Volt / 0,03 Milliampere = 300 Ohm

Es gibt drei Hauptkategorien von Widerständen:

  1. Festwiderstände, wie wir sie hier verwenden,
  2. Variable Widerstände, allgemein bekannt als Potentiometer, und
  3. Variable Widerstände, die von physikalischen Eigenschaften wie Temperatur (Thermistoren) oder Licht (Photovoltaik-Zellen)

Obwohl Widerstände zur Begrenzung des Stromflusses dienen, gibt es in jeder dieser drei Kategorien unterschiedliche Arten von Widerständen für verschiedene Anwendungen.

Die meisten Festwiderstände sind mit farbigen Bändern markiert, um den Widerstand zu ermitteln. Von links geben die ersten beiden Bänder die ersten und zweiten Ziffern des Widerstandswerts an. Das dritte Band gibt den Multiplikationsfaktor an. Das vierte Band gibt schließlich die Toleranz des Widerstands an.

Widerstandsfarbcodes

Aus den Farben des obigen Widerstands können wir Folgendes ermitteln:

  • Braun (erste Ziffer) = 1
  • Schwarz (zweite Ziffer) = 0
  • Orange (Multiplikator) = 10 ^ 3
  • Gold (Toleranz) = +/- 5%
  • 10 * 10 ^ 3 = 10.000 Ohm oder 10 Kilo Ohm oder 10K Widerstand

Hier ist die vollständige Farbentabelle. Weitere Informationen finden Sie in der Wikipedia zu den Widerstandsfarbcodes.

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 die gelbe Signalleitung von Digital Pin 2 mit einem Bein des Tasters verbunden. Das gleiche Bein des Knopfes auf seiner anderen Seite ist durch den 10K-Widerstand mit Masse verbunden, um eine vollständige Schaltung zu bilden. Wenn die Taste nicht gedrückt wird, wird der Fahrstrom von Arduino als NIEDRIG gelesen.

Sobald der Knopf gedrückt wird, wird eine Verbindung zwischen Pin 2 und positivem 5V durch die Druckknopfbeine hergestellt. Da die Elektrizität immer durch den Pfad des geringsten Widerstandes fließt, wird der Durchgang durch den Widerstand vermieden, und sie fließt zu Pin 2, wodurch die Arduino-Platine einen hohen Wert erhält.

Schritt 2

Lassen Sie uns nun Schritt 4 beenden und das LED-Licht schneller blinken lassen, wenn Sie den Druckknopf drücken.

 int delay_value = 1000; int led_pin = 13; int button_pin = 2; void setup () pinMode (led_pin, OUTPUT); pinMode (button_pin, INPUT);  void loop () digitalWrite (led_pin, HIGH); delay (delay_value); digitalWrite (led_pin, LOW); delay (delay_value); int button_state = digitalRead (button_pin); if (button_state == HIGH) delay_value = 100;  else delay_value = 1000; 

Diesmal weist der Code Arduino an, seinen Pin-2 als Eingabequelle zu behandeln, indem er die pinMode (button_pin, INPUT) in der Konfiguration() Funktion. Dadurch können wir den Zustand der Drucktaste später im lesen Schleife() Funktion durch Aufruf digitalRead (button_pin). Durch das Ermitteln des Status der Drucktaste können wir feststellen, ob die Verzögerungsfunktion mit einem kleineren Wert aufgerufen werden soll.

Fahren Sie nun fort und laden Sie den obigen Code in Ihr Arduino hoch. Drücken Sie dann die Taste, um das LED-Licht schneller blinken zu lassen.


Fehlerbehebung

Wenn Sie so weit gekommen sind und der obige Code für Sie nicht funktioniert, kann dies ein paar 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 Pins und Drähte, der Widerstand und der Druckknopf fest mit Ihrem Arduino-Board und dem Steckbrett verbunden sind. Wenn Sie sich bezüglich der Kontinuität Ihrer Verbindungen nicht sicher sind, verwenden Sie ein Multimeter, um die Kontinuität zu messen.
  • Stellen Sie sicher, dass alle Verbindungen zur Arduino-Platine mit den richtigen Digitaleingängen verbunden sind.
  • Wenn das Problem weiterhin besteht, lesen Sie die Arduino-Anleitung zur Fehlerbehebung.

Fazit

Das fertige Projekt

In diesem Lernprogramm haben Sie einige grundlegende Techniken zum Verwenden eines Arduino-Boards, eines Breadboards, von Widerständen und Drucktasten zusammen mit der Arduino-IDE kennen gelernt. Sie haben auch gelernt wie verzögern() Funktion kann verwendet werden, um einen Zustand für eine beliebige Zeitdauer aufrechtzuerhalten.

Wenn Sie Fragen zu diesem Tutorial haben, lassen Sie sie bitte in den Kommentaren weiter unten.