Arduino Traffic Light for Beginners

25 Schritt:Schritt 1: Bereiten Sie Ihre Rot, Grün, Gelb und LEDs für Löten Schritt 2: Position und Löten Sie Ihre Lights! Schritt 3: Solder leuchtet Track Schritt 4: Solder Fotozelle Schritt 5: Montage leuchtet Track Schritt 6: Montage Fotozelle auf Piste Schritt 7: Befestigen Sie Ihren Traffic Light! Schritt 8: Schließen Sie die Drähte! Schritt 9: Einrichten des Arduino Umwelt Schritt 10: Grund Arduino Programmierung Schritt 11: Schalten Sie den LED grün Schritt 12: Variablen! Schritt 13: Machen Sie Ihre grüne LED Blink! (Teil 1/2) Schritt 14: Erstellen Sie Ihre grüne LED Blink! (Teil 2/2) Schritt 15: Blink die grüne und die gelbe LED Schritt 16: Blink alle LEDs! Schritt 17: Verwenden Sie Funktionen! Schritt 18: Fügen Sie im Code für Ihre blauen Straßenlaternen! Schritt 19: Sensoren! Teil 1: Lesen Eingangs Schritt 20: Sensoren! Teil 2: Anzeigen von Text Schritt 21: Sensoren! Teil 3: Verwenden der Eingangsinformationen (Wenn Erklärungen und Vergleiche) Schritt 22: Sensoren! Teil 4: Kalibrieren (While-Schleifen) Schritt 23: Sensoren! Teil 5: Sensoren + Leuchten Schritt 24: Sensoren! Teil 6: Erweiterung der Green Light Schritt 25: Der finale Code

Arduino Traffic Light for Beginners
* 2013.08.24 - Aktualisiert Ampel Template enthalten (siehe PDF unten)

Diese instructable führt Sie durch die Schritte zum Erstellen einer Einbahnverkehr Licht wandeln. Es wurde entwickelt, um im Tandem mit unserer Linie arbeiten folgende Auto für Anfänger. Durch die Kombination der beiden, werden Sie eine Linie, die Robot Nach einer Ampel gehorcht haben - wenn Sie es wollen:) Je nachdem, wie Sie Ihre Teile beziehen, schätzen wir dieses Projekt (ohne Auto) kostet etwa € 30 bis 50 €. Wir empfehlen Ihnen, ein paar Stunden von engagierten Zeit für die Fertigstellung haben.

Dieses Projekt wurde ursprünglich für ein Sommercamp an einem Hackerspace in Ann Arbor, MI konzipiert. Wenn Sie noch nicht vertraut mit dem, was ein Hackerspace / Maker ist sind, empfehlen wir Ihnen einen auschecken! Sie können eine wunderbare Ressource für beide Tools und Informationen sein. Dinge wie den Zugang zu einem Laserschneider kann machen dieses Projekt wesentlich besser aussehen mit minimalem Aufwand. Finden Sie in Ihrer Nähe!

Empfohlene Werkzeuge:
- Lötkolben
- Drahtschere
- Zange (Spitz Preferred)
- Drahtabisolierer (22 AWG)
- Allzweckmesser
- Kreuzschlitzschraubendreher (Nr 1)
- Bleistift
- Arduino UNO
- Brotschneidebrett
- 9-V-Batteriehalter mit 2,1 mm Barrel Steckverbinder
- Laser-Cutter

Empfohlene Materialien:
- Solder
- 9V Batterie
- Isolierband
- ~ 6 "Aus Schrumpfschlauch (3/32")
- 8 x Sticky Gummifüße
- Traffic Light Enclosure
- 3 x 220 Ohm Widerstände (Red Red Brown)
- 1 x 100 Ohm Widerstand (Brown Schwarz Braun)
- 1 x 10k Ohm Widerstand (braun schwarz orange)
- 1 x rote LED
- 1 x LED gelb
- 1 x LED grün
- 3 x blaue LEDs (jede mögliche Farbe tun wird, aber alle drei übereinstimmen sollte)
- 1 x NPN Transistor (PN2222)
- 1 x Lichtschranke
- 22 AWG Schaltdraht, vorzugsweise in den Farben Rot, Schwarz, Grün und Gelb.

Sehr empfehlenswert
- Saubere Arbeitsbereich
- Gute Beleuchtung
- Jemand genial, mit zu arbeiten

Short auf die Ressourcen?
- Finden Sie heraus, ob es eine lokale Hackerspace in der Nähe!
- Brauchen Sie es heute? Radioshack . Können Sie ein paar Tage warten? Adafruit und Sparkfun sind ausgezeichnete Ressourcen.

Wer hat das?
- Dieses instructable wurde von Khevna Shah und Josh Williams, und viel Hilfe von der zu Ihnen gebracht weltweit freundlichste Hackerspace: Alle Hände Aktiv

Schritt 1: Bereiten Sie Ihre Rot, Grün, Gelb und LEDs für Löten

  1. Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Alle 8 Artikel anzeigen
    Eine Notiz für dieses instructable:
    Wir verwenden Fotos für die meisten der Anweisungen des physischer Setup. Für jeden Schritt:
    - Erstens, einen Überblick über die Tools und Materialien benötigt.
    - Zweitens, öffnen Sie das erste Bild.
    - Drittens, bewegen Sie den Mauszeiger über das Kommentarfeld für eine kurze Beschreibung.
    - Klicken Sie auf den Pfeil auf der rechten Seite des Bildes, um zum nächsten Bild zu wechseln.
    - Wenn keine Pfeile zeigen auf, das Bild zu schließen und gehen Sie zum nächsten Schritt.

    Benötigtes Werkzeug:
    - Hands
    - Drahtabisolierer

    Benötigte Materialien:
    - 1 x rote LED
    - 1 x LED grün
    - 1 x LED gelb
    - 1 x Schwarz Draht (22 AWG Solid Core, ~ 21 cm in der Länge

Schritt 2: Position und Löten Sie Ihre Lights!

  1. Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Alle 7 Artikel anzeigen
    Benötigtes Werkzeug:
    - Hands
    - Drahtabisolierer
    - Drahtschere
    - Lötkolben

    Benötigte Materialien:
    - Ungelötet Traffic Light
    - 1 x Red Draht (22 AWG, ~ 21 cm in der Länge)
    - 1 x grüne Kabel (22 AWG, ~ 21 cm in der Länge)
    - 1 x Gelb Draht (22 AWG, ~ 21 cm in der Länge)
    - 1 x Traffic Light Housing (zwei Teile)

Schritt 3: Solder leuchtet Track

  1. Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    ** Machen Sie diese GIF TRENNEN PLZ KTHXBYE

    Benötigtes Werkzeug:
    - Hands
    - Drahtabisolierer
    - Drahtschere oder Scheren
    - Lötkolben
    - Heat Gun

    Benötigte Materialien:
    - Solder
    - 1 x Schwarz Draht (22 AWG, ~ 41 cm in der Länge)
    - 1 x Red Draht (22 AWG, ~ 41 cm in der Länge)
    - 3 x blaue LEDs
    - 2 x Schrumpfschlauch (2 cm in der Länge, 2,3 mm (3/32 ") Durchmesser)

    FYI: Das zweite Bild in das ist eine absolut erstaunliche Schritt GIF-Animation. Bitte hängen eng, kann es einen Moment dauern.

Schritt 4: Solder Fotozelle

  1. Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    * Geben GRÖSSEN
    * Wie lange BRO schrumpfen?

    Benötigtes Werkzeug:
    - Hands
    - Drahtabisolierer
    - Drahtschere oder Scheren
    - Lötkolben
    - Heat Gun

    Benötigte Materialien:
    - Solder
    - 1 x Schwarz Draht (22 AWG, ~ 25 cm in der Länge)
    - 1 x Red Draht (22 AWG, ~ 25 cm in der Länge)
    - 1 x Lichtschranke
    - 2 x Schrumpfschlauch (4 cm in der Länge, 2,3 mm (3/32 ") Durchmesser)

    Es gibt keine GIF-Animation hier. Vielleicht ist der nächste Schritt wird!

Schritt 5: Montage leuchtet Track

  1. Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Alle 11 Artikel anzeigen
    Benötigtes Werkzeug:
    - Hands
    - Scheren
    - No. 1 Kreuzschlitzschraubendreher

    Benötigte Materialien:
    - Pre-gelötet Schienen-Licht
    - Isolierband

Schritt 6: Montage Fotozelle auf Piste

  1. Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Benötigtes Werkzeug:
    - Hands
    - Scheren
    - No. 1 Kreuzschlitzschraubendreher

    Benötigte Materialien:
    - Pre-gelötet Fotozelle
    - Isolierband

Schritt 7: Befestigen Sie Ihren Traffic Light!

  1. Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Alle 13 Artikel anzeigen
    Benötigtes Werkzeug:
    - Hands
    - Allzweckmesser
    - Bleistift

    Benötigte Materialien:
    - Pre-gelötet Traffic Light-Setup
    - Traffic Light Plates (Wenn Sie in der AHA Summer Camp teilnehmenden bist, sind diese bereits in Ihrem Kit!)
    - - Wenn Sie nicht in Sommerlager sind. Sie können diese Dateien mit einem Laserschneider verwenden.
    - - Oder drucken Sie sie auf Ihren Drucker und verwenden Sie es als Leitfaden für die aus Pappe geschnitten!
    - - Oder entwerfen Sie Ihre eigenen!

Schritt 8: Schließen Sie die Drähte!

  1. Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Alle 10 Artikel anzeigen
    Benötigtes Werkzeug:
    - Hands
    - Arduino Uno
    - Brotschneidebrett
    - Drahtabisolierer
    - Drahtschere
    - Zangen

    Benötigte Materialien:
    - Assembled Traffic Light
    - Assembled Schranke / Sensor
    - Assembled 3 x LED-Setup
    - Roter Draht
    - Black Wire
    - Green Draht
    - Gelbe Draht
    - Blau Draht
    - 4 x 220 Ohm Widerstände (Red Red Brown)
    - 1 x 10k Ohm Widerstand (braun schwarz orange)
    - 1 x 100 Ohm Widerstand (Brown Schwarz Braun)
    - 1 x NPN Transistor

Schritt 9: Einrichten des Arduino Umwelt

  1. Arduino Traffic Light for Beginners

    Arduino Traffic Light for Beginners

    Diese instructable macht viele Annahmen! Einige Leute mögen diese "Voraussetzungen" nennen. Um sicherzustellen, dass Sie das Beste aus dieser instructable zu bekommen, sollten Sie:
    - Die Arduino Software heruntergeladen und auf Ihrem Computer installiert.
    - Angeschlossen und getestet Ihren Arduino, indem Sie das Installationshandbuch geeignete für Ihren Computer.
    - Etwa eine Stunde Zeit zu ersparen und ein schönes, sauberes Arbeitsbereich mit viel Licht.

    Mission zu erfüllen? Fahren Sie weiter auf!

    Hinweis:
    Gehen Sie zu dieser Seite für Tutorials: http://arduino.cc/en/Tutorial/HomePage
    Gehen Sie auf dieser Seite nach Referenzen: http://arduino.cc/en/Reference/HomePage

    Bildquelle: Das Erste Schritte w / Arduino-Führer

Schritt 10: Grund Arduino Programmierung

  1. Arduino Traffic Light for Beginners
    Sie werden Ihren Code in zwei grundlegende Bereiche schreiben: den Abschnitt "Setup" und im Abschnitt "Loop". Diese Abschnitte werden als Funktionen bekannt. Wir werden erfahren Sie mehr über das, was eine Funktion ist später!

    Die Setup- Funktion wird einmal, wenn der Arduino eingeschaltet oder zurückgesetzt wird.
    Die Loop- Funktion läuft, nach der Setup-Funktion wird einmal.

    Hier ist eine grundlegende Arduino Programm. Dieses Programm tut nichts interessanter noch, aber das kommt als nächstes!

    void setup ()
    {
    // code in here runs once
    }

    void loop ()
    {
    // after the setup function, code in here runs over and over
    }



Schritt 11: Schalten Sie den LED grün

  1. Arduino Traffic Light for Beginners
    Für die Sie auf Ihrem LED schalten, müssen zwei Dinge passieren.

    Zuerst müssen Sie die Arduino, die Sie sagen, OUTPUT Daten auf dem Stift Sie eingesteckt in die grüne LED.


    Sie können dies tun, indem Sie die pinMode Funktion.

    Ein Beispiel hierfür ist: pinMode (3, OUTPUT ); wo meine PIN-Nummer ist 3 .

    Zweitens, müssen Sie eine Nachricht HIGH Signal an die LED, um ihn einzuschalten! (A "LOW" Signals schaltet die LED aus.)


    Sie können dies tun, indem Sie die digitalWrite Funktion.

    Ein Beispiel hierfür ist: digitalWrite (3, HIGH ); wo meine PIN-Nummer ist 3 .

    Versuchen Sie nun, das Einschalten des LED grün! Es sollte auf PIN 2. Hier ist ein Code sein, um Ihnen den Einstieg erleichtern:


    void setup ()
    {
    // set the pinMode to OUTPUT
    // your code here
    }

    void loop ()
    {
    // digitalWrite the pin to HIGH
    // your code here
    }


Schritt 12: Variablen!

  1. Arduino Traffic Light for Beginners
    Im vorherigen Schritt, schrieben wir die folgende Codezeile: pinMode (2, OUTPUT ); und digitalWrite (2, HIGH );

    Was ist, wenn ich wollte, sich zu bewegen meine grüne LED an PIN 4? Dies würde bedeuten, wechselnden Zahlen an zwei verschiedenen Orten! Yuck!

    Stattdessen sagen wir den Computer, die das Wort GREEN bedeutet 2, und verwenden Sie dann das Wort GREEN überall! So, wenn ich zog meine grüne LED an Pin 4, Ich möchte nur sagen, der Computer, auf dem Grün bedeutet, jetzt 4!

    Um dies zu tun, die wir verwenden: Variables!

    Variablen können Sie die Namen, die Dinge zu geben. Es gibt viele verschiedene Arten von Variablen.

    Heute werden wir über eine Reihe Variable ein int (kurz für integer) zu lernen. Ein int kann jede ganze Zahl von -32.768 bis 32.767 sein. Mehr Details hier: http://arduino.cc/en/Reference/Int

    Variablen haben 3 Eigenschaften: Typ, Name und Wert.

    Zum Beispiel: int GREEN = 2; hat eine Art von int , einen Namen von GREEN , und einen Wert von 2 .

    Eine Variable wird anstelle eines Werts verwendet.

    Überall, wo Sie einen verwenden möchten 2 können Sie jetzt schreiben GREEN

    * Denken Sie daran: Sie haben, um eine Variable zu machen, bevor Sie sie verwenden können!

    Versuchen Sie nun Einschalten die grüne LED mit der Variable "grün". Es sollte auf PIN 2. Hier ist ein Code sein, um Ihnen den Einstieg erleichtern:


    // make your variable
    // your code here

    void setup ()
    {
    // set the pinMode to OUTPUT using GREEN
    // your code here
    }

    void loop ()
    {
    // digitalWrite the pin to HIGH using GREEN
    // your code here
    }


    * Variablen existieren in verschiedenen Bereichen wie Zielfernrohre bekannt. Ein Bereich ist der Bereich zwischen einer Start geschweifte Klammer {und ihre passenden Angebotsende geschweifte Klammer}. In unserem Fall werden wir die Variablen alle am Anfang des Codes zu erklären. Diese Variablen werden als globale Variablen bezeichnet. Eine globale Variable kann irgendwo in dem Dokument verwendet werden.

Schritt 13: Machen Sie Ihre grüne LED Blink! (Teil 1/2)

  1. Arduino Traffic Light for Beginners
    Um die LED Blink zu machen, müssen wir nutzen digitalWrite zu schreiben HIGH und dann LOW auf GREEN .

    Was passiert, wenn Sie dies versuchen:

    // variables
    int GREEN = 3;

    void setup ()
    {
    // setup LED modes
    pinMode (GREEN, OUTPUT );
    }

    void loop ()
    {
    // High turns things on
    digitalWrite (GREEN, HIGH );
    // low turns things off
    digitalWrite (GREEN, LOW );
    }

    Funktioniert es? Nein? Fahren Sie mit Teil 2!

Schritt 14: Erstellen Sie Ihre grüne LED Blink! (Teil 2/2)

  1. Arduino Traffic Light for Beginners
    Der Code führt schneller als das Auge bemerken können!

    Um dieses Problem zu lösen, werden wir ein In delay zwischen der Lichtwesen auf und das Licht ist weg!


    Sie können dies tun, indem Sie die delay Funktion.

    Ein Beispiel hierfür ist: delay (100); wo meine Verzögerung 100 Millisekunden.
    Mehr Details hier: http://arduino.cc/en/Reference/Delay

    Verwenden Sie die Variable DELAY_GREEN einen 1 Sekunde, 1000 Millisekunde Verzögerung zwischen dem Lichtwesen ein und aus zu erstellen:


    // variables
    int GREEN = 3;
    int DELAY_GREEN = 1000;

    void setup ()
    {
    // setup LED modes
    pinMode (GREEN, OUTPUT );
    }

    void loop ()
    {
    // High turns things on
    digitalWrite (GREEN, HIGH );

    // we need a delay here!
    // your code here

    // low turns things off
    digitalWrite (GREEN, LOW );

    // what happens next?
    }

Schritt 15: Blink die grüne und die gelbe LED

  1. Arduino Traffic Light for Beginners
    Jetzt sollten Sie eine Variable erstellen für die gelbe LED genannt YELLOW und setzen Sie ihn auf 7 und eine weitere Variable namens DELAY_YELLOW und setzen Sie ihn auf 500 Millisekunden betragen.

    Es so einrichten, dass Ihre grüne LED bleibt für 1000 Millisekunden und Ihre gelbe LED bleibt für 500 Millisekunden.

    Beginnen Sie mit diesem Code:


    // variables for green light
    int GREEN = 2;
    int DELAY_GREEN = 1000;

    // variables for yellow light
    // your code here

    void setup ()
    {
    // setup LED modes
    pinMode (GREEN, OUTPUT );
    }

    void loop ()
    {
    // High turns things on
    digitalWrite (GREEN, HIGH );

    delay (DELAY_GREEN);

    // low turns things off
    digitalWrite (GREEN, LOW );

    delay (DELAY_GREEN);
    }



    Tipps für die Fehlersuche:
    * Haben Sie alle Ihre Variablen zu erstellen?
    * Haben Sie alle Ihre Stifte auf Ausgang eingestellt?
    * Haben Sie daran gedacht, schalten Sie eine LED und schalten Sie die anderen?
    * Wussten Sie legen Sie Ihre Verzögerungen, so dass nach dem Einschalten der LED schalten, variable Verzögerung die gleiche Farbe verwenden Sie?

Schritt 16: Blink alle LEDs!

  1. Arduino Traffic Light for Beginners
    Können Sie es so einrichten, dass Ihre grüne LED bleibt für 2000 Millisekunden und Ihre gelbe LED bleibt für 500 Millisekunden und Ihre rote LED bleibt für 1000 Millisekunden?

    Denken Sie daran, Variablen für Ihre Stifte und Verzögerungen zu verwenden!

Schritt 17: Verwenden Sie Funktionen!

  1. Arduino Traffic Light for Beginners
    Im vorherigen Schritt, schrieben wir die folgenden Zeilen Code, um nur auf dem grünen Licht einzuschalten:

    digitalWrite (GREEN, HIGH );
    digitalWrite (YELLOW, LOW );
    digitalWrite (RED, LOW );


    Und dann hatte man sie für das gelbe Licht für das rote Licht zu wiederholen und dann wieder.

    Um zu vermeiden, dass zu tun, verwenden wir eine Funktion. Funktionen können auch mit uns, um unseren Code leichter zu lesen.

    Funktionen können Sie Gruppe Anweisungen. Funktionen haben 3 Hauptteilen. Input, Anweisungen und Ausgang!

    Heute werden wir den Schwerpunkt auf die nur die Gruppierung von Anweisungen!

    Funktionen sind ebenso wie Variablen. Sobald Ihr sie erstellen, können Sie die Sätze von Anweisungen, die Sie in den Rest Ihres Programms in der Funktion gesetzt zu ersetzen.

    Drehen Sie diese Reihe von Anweisungen:

    void loop()
    {
    digitalWrite (GREEN, HIGH );
    digitalWrite (YELLOW, LOW );
    digitalWrite (RED, LOW );

    }

    In diese:

    void loop()
    {
    green_light();
    }

    void green_light()
    {
    digitalWrite (GREEN, HIGH );
    digitalWrite (YELLOW, LOW );
    digitalWrite (RED, LOW );
    }


    Eine Funktion wird anstelle der Verwendung.

    Überall, wo Sie auf ein grünes Licht machen wollen, können Sie jetzt schreiben green_light(); .

    Versuchen Abschluss den folgenden Code:

    // variables
    int GREEN = 2;
    int YELLOW = 7;
    int RED = 12;
    int DELAY_GREEN = 5000;
    int DELAY_YELLOW = 2000;
    int DELAY_RED = 5000;

    void setup ()
    {
    // setup LED modes
    pinMode (GREEN, OUTPUT );
    pinMode (YELLOW, OUTPUT );
    pinMode (RED, OUTPUT );
    }

    void loop ()
    {
    green_light();
    delay (DELAY_GREEN);

    // code to make a yellow light
    delay (DELAY_YELLOW);

    // code to make a red light
    delay (DELAY_RED);
    }

    void all_LEDs_off()
    {
    digitalWrite (GREEN, LOW );
    digitalWrite (YELLOW, LOW );
    digitalWrite (RED, LOW );
    }
    void green_light()
    {
    all_LEDs_off();
    digitalWrite (GREEN, HIGH );
    }

    void yellow_light()
    {
    // your code here
    }

    void red_light()
    {
    // your code here
    }

    //


Schritt 18: Fügen Sie im Code für Ihre blauen Straßenlaternen!

  1. Arduino Traffic Light for Beginners
    Kannst du es so eingerichtet, dass Ihr Blue LEDs leuchten, wenn Ihr Red LEDs einschalten?

    Rufen Sie Ihr Straßenlaterne PIN variable STREET_LIGHTS .

    * Denken Sie daran, Variablen für Ihre Stifte zu verwenden und setzen Sie sie auf Ausgabemodus!

    * Denken Sie daran, in die LEDs schalten Sie all_LEDS_off Funktion!

Schritt 19: Sensoren! Teil 1: Lesen Eingangs

  1. Arduino Traffic Light for Beginners
    Das letzte, was wir wollen, dass unsere Ampel zu tun ist, um zu erfassen, wenn Autos kommen durch!

    Sie können die Eingabewerte aus den analogen Pins zu lesen!


    Sie können dies tun, indem Sie die analogRead Funktion.

    Ein Beispiel hierfür ist: analogRead (A0); wo meine analoge Pin-Nummer ist A0 .
    Früher haben wir darüber gesprochen, wie Funktionen haben 3 Hauptteilen. Input, Anweisungen und Ausgang!

    Die analogRead Funktion zurückkehrt (Ausgänge) ein int (integer) zwischen 0 und 1023.
    Mehr Details hier: http://arduino.cc/en/Reference/AnalogRead

    Hier ist ein Beispiel Stück Code, den Wert, der durch die zurück speichert analogRead Funktion in einer Variablen:

    int SENSOR_PIN = A0;
    int sensor_value = 0;

    void setup ()
    {
    }

    void loop ()
    {
    sensor_value = analogRead (SENSOR_PIN);
    }

    Aber was nun?

Schritt 20: Sensoren! Teil 2: Anzeigen von Text

  1. Arduino Traffic Light for Beginners
    So haben wir einen Sensor liest Eingangs, aber was nun?

    Lassen Sie uns versuchen zu sehen, welche Informationen wir lesen! Dies erfolgt in zwei Schritten.

    Zuerst müssen Sie die Arduino, mit dem Sie einige Informationen sehen wollen, zu informieren.


    Sie können dies tun, indem Sie die Serial .begin Funktion.

    Ein Beispiel hierfür ist: Serial .begin (9600); wo 9600 ist die Rate, mit der wir die Informationen angezeigt werden sollen.
    Mehr Details hier: http://arduino.cc/en/Serial/Begin

    Als nächstes müssen Sie darauf hin, dass Informationen auf Ihrem Computer drucken möchten!


    Sie können dies tun, indem Sie die Serial .println Funktion.

    Ein Beispiel hierfür ist: Serial .println (sensor_Value); in dem die Informationen, die ich sehen wollen, ist sensorValue .
    Mehr Details hier: http://arduino.cc/en/Serial/Print

    Dies ist ein großes Werkzeug für die Fehlersuche!

    Mal sehen, wie es funktioniert.

    Zunächst laden Sie diesen Code auf Ihre Arduino:

    int SENSOR_PIN = A0;
    int sensor_value = 0;

    void setup ()
    {
    Serial . begin (9600);
    }

    void loop ()
    {
    sensor_value = analogRead (SENSOR_PIN);
    }

    Drücken Sie nun die kleine Lupe rechts oben auf Ihrer Arduino-Umgebung (wie in der Abbildung dargestellt!).

    Versuchen Sie dabei deine Fotozelle mit der Hand oder zeigt eine Taschenlampe auf sie! Sie sollten Werte zwischen 0 und 1023 zu sehen! Ordentlich huh?

Schritt 21: Sensoren! Teil 3: Verwenden der Eingangsinformationen (Wenn Erklärungen und Vergleiche)

  1. Arduino Traffic Light for Beginners
    Bisher wissen wir, dass der Sensor sieht, zwischen 0 und 1023. Also sagen wir mal die Mitte ist 511.
    int sensor_mid = 511;

    Jetzt werden wir, um diesen Wert zu verwenden, um ein-und ausschalten Lichter einschalten, wenn die Lichtschranke sieht mehr oder weniger Licht als der Mittelwert.

    Es gibt zwei wirklich wichtigen Dinge, die Ihnen helfen!
    Sie können dies, indem Sie die zu tun if Rechnung und Vergleiche < und > .

    Ein Beispiel hierfür ist: if (sensor_value < sensor_mid) , wo ich vergleichen sensor_value und sensor_mid .
    Werfen wir einen zweiten, um über das, was passiert, denken, wenn Sie eine verwenden if Aussage. Ein if Anweisung können Sie zwei verschiedene Dinge, je nachdem ob der Vergleich tun true oder false .


    Ein Beispiel hierfür ist:
    if (sensor_value < sensor_mid)
    {
    // do something
    } else {
    // do something else
    }


    Versuchen Sie, auf das grüne Licht, wenn der Sensor-Wert größer als der Mitte ist und Drehen auf dem roten Licht, wenn der Sensor-Wert kleiner als der Mitte ist!

    int SENSOR_PIN = A0;
    int sensor_mid = 511;


    int GREEN = 2;
    int YELLOW = 7;
    int RED = 12;
    int STREET_LIGHTS = 13;

    void setup ()
    {
    pinMode (GREEN, OUTPUT );
    pinMode (YELLOW, OUTPUT );
    pinMode (RED, OUTPUT );
    pinMode (STREET_LIGHTS, OUTPUT );

    Serial . begin (9600);
    }

    void loop ()
    {
    int sensor_value = analogRead (SENSOR_PIN);
    Serial . println (sensor_value);

    if (sensor_value < sensor_mid)
    {
    // your code here
    }
    //your code here
    }

    void all_LEDs_off()
    {
    digitalWrite (GREEN, LOW );
    digitalWrite (YELLOW, LOW );
    digitalWrite (RED, LOW );
    }

    void green_light()
    {
    all_LEDs_off();
    digitalWrite (GREEN, HIGH );
    }

    void yellow_light()
    {
    all_LEDs_off();
    digitalWrite (YELLOW, HIGH );
    }

    void red_light()
    {
    all_LEDs_off();
    digitalWrite (RED, HIGH );
    digitalWrite (STREET_LIGHTS, HIGH );
    }

Schritt 22: Sensoren! Teil 4: Kalibrieren (While-Schleifen)

  1. Arduino Traffic Light for Beginners
    In verschiedenen Lichtverhältnissen wird die Fotozelle sehen einen anderen Wertebereich. Versuchen Sie es mit den gleichen Code aber an einem dunklen Ort. Versuchen Sie nun mit dem gleichen Code aber in einer sehr hellen Ort. Sie werden sehen, dass der Sensor immer ausgeschaltet an einem dunklen Ort, und dass der Code funktioniert wirklich gut in helles Licht.

    Um dieses Problem zu lösen, wir etwas Kalibrieren genannt zu tun! Wenn wir kalibrieren die Fotozelle, suchen wir nach dem höchsten Wert sie sieht und niedrigsten Wert sie sieht und dann die Mitte zwischen diesen beiden Werte gesetzt. Wir werden den Wert für ca. 5 Sekunden kalibrieren.

    Um dies zu tun, werden wir werden mit einer Reihe von verschiedenen Tricks!

    Erstens werden wir an der Zeit zu lernen. Das Arduino verfolgt, wie lange es schon seit dem Arduino eingeschaltet worden ist. Wir können, was dieser Wert zu suchen.


    Sie können dies tun, indem Sie die millis Funktion.

    Ein Beispiel hierfür ist: unsigned long current_time = millis (); wo ich speichern den Wert der Zeit in der Variablen current_time .
    Was ist ein unsigned long ? Eine long ist wie eine ganze Zahl, aber größer! Eine lange geht von -2147483648 bis 2147483647. Das Wort unsigned bedeutet, dass anstatt von -2147483648 bis 2147483647, es geht von 0 bis 4294967295. Da die Zeit nie negativ, verwenden wir einen unsigned -Nummer für sie!
    Mehr Details hier: http://arduino.cc/en/Reference/Long
    und hier: http://arduino.cc/en/Reference/UnsignedLong

    Weiter werden wir etwas verwenden, genannt while Schleife! A while Schleife ist wie ein if Aussage, während die Bedingung vorgesehen ist true , führt sie aus. Der Unterschied zwischen einem if Rechnung und einer while Aussage ist, dass die while der Ausführung auf Anweisung hält, bis die Bedingung false - wie, wie die loop Funktion läuft bis zum Ausschalten des Arduino. Stellen Sie sicher, end_time ist auch eine unsigned long.


    Ein Beispiel hierfür ist:
    while (current_time < end_time)
    {
    // do something

    // now update the current time
    current_time = millis ();
    }

    Der Code, den Sie in der "etwas tun" Bereich gesetzt werden weitermachen, bis die Zeit geht vorbei end_time

    Danach, was wir tun müssen, ist für die höchsten und niedrigsten Werte, die der Fotozelle sieht und diese Werte zu speichern.


    Sie können diese durch erste Start des hohen Wert an tun 0 und den niedrigen Wert in 1023 .

    sensor_low = 1023;
    sensor_high = 0;

    Als nächstes wird jedes Mal, wenn wir durch die while-Schleife zu gehen, werden wir schauen, ob der Sensorwert kleiner als der niedrigste Wert, den er gesehen hat ist, wenn ja, denn das neue Wert niedriger ist, werden wir den niedrigen Wert zu setzen, dass statt .

    Ein Beispiel hierfür ist:
    if (sensor_value < sensor_low)
    {
    sensor_low = sensor_value
    }


    Ähnlich ist es mit dem hohen Wert, wenn der Sensor sieht einen höheren Wert, werden wir es auf den höheren Wert gesetzt!

    Ein Beispiel hierfür ist:
    if (sensor_value > sensor_high)
    {
    sensor_high = sensor_value
    }


    Nach Ablauf der 5 Sekunden der Kalibrierung, werden wir weitermachen und auf den Durchschnitt der niedrigen und hohen Werten gesetzt sensor_mid.

    Jetzt versuchen Sie es selbst:
    int SENSOR_PIN=A0;
    int sensor_mid = 511;

    int GREEN = 2;
    int YELLOW = 7;
    int RED = 12;
    int STREET_LIGHTS = 13;

    void setup ()
    {
    pinMode (GREEN, OUTPUT );
    pinMode (YELLOW, OUTPUT );
    pinMode (RED, OUTPUT );
    pinMode (STREET_LIGHTS, OUTPUT );

    calibrate();
    }

    void loop ()
    {
    int sensor_value = analogRead (SENSOR_PIN);
    Serial . println (sensor_value);

    if (sensor_value < sensor_mid)
    {
    green_light();
    }
    else
    {
    red_light();
    }
    }

    void calibrate()
    {
    int sensor_high = 0;
    int sensor_low = 1023;
    int current_time = millis ();
    int end_time = current_time + 5000;
    // we have to calibrate this in the first five seconds
    while (current_time < end_time)
    {
    // now update the current time
    current_time = millis ();
    // update sensor value here!
    // your code here

    // record the minimum sensor value
    if (sensor_value < sensor_low)
    {
    //your code here
    }

    // record the maximum sensor value
    if //your code here
    {
    sensor_high = sensor_value;
    }
    }

    //set mid to be the MIDDLE! :)
    sensor_mid = (sensor_high + sensor_low)/2;
    }

    void all_LEDs_off()
    {
    digitalWrite (GREEN, LOW );
    digitalWrite (YELLOW, LOW );
    digitalWrite (RED, LOW );
    digitalWrite (STREET_LIGHTS, LOW );

    }

    void green_light()
    {
    all_LEDs_off();
    digitalWrite (GREEN, HIGH );
    }

    void yellow_light()
    {
    all_LEDs_off();
    digitalWrite (YELLOW, HIGH );
    }

    void red_light()
    {
    all_LEDs_off();
    digitalWrite (RED, HIGH );
    digitalWrite (STREET_LIGHTS, HIGH );
    }

Schritt 23: Sensoren! Teil 5: Sensoren + Leuchten

  1. Arduino Traffic Light for Beginners
    So, jetzt werden wir versuchen, so dass die Sensor Arbeit mit unseren Ampel!

    Lassen Sie uns zunächst erhalten die Lichter gehen von grün über gelb nach rot!

    Fügen Sie Ihr DELAY-Variablen wieder an die Spitze!

    // variables for green light
    int DELAY_GREEN = 1000;
    int DELAY_YELLOW = 500;
    int DELAY_RED = 1000;

    Change your loop function from the previous step to:

    void loop ()
    {
    green_light();
    delay (DELAY_GREEN);

    yellow_light();
    delay (DELAY_YELLOW);

    red_light();
    delay (DELAY_RED);
    }

Schritt 24: Sensoren! Teil 6: Erweiterung der Green Light

  1. Arduino Traffic Light for Beginners
    Grünes Licht werden wir brauchen, um zwei Dinge tun zu verlängern.

    Zuerst müssen wir für das Auto zu suchen. Dies geschieht, wenn die Lichtschranke sieht weniger als sensor_mid .

    Dann, wenn die Lichtschranke sieht das Auto, wir sollten das grüne Licht zu verlängern.

    Um dies zu tun, wir werden einen neuen Variablentyp müssen: boolean . Ein boolean kann entweder true oder false wie ein int hat eine Reichweite von -32.768 bis 32.767.

    Ein Beispiel hierfür ist: boolean i_love_kittens = true ; in dem die variable i_love_kittens eingestellt ist true .
    Mehr Details hier: http://arduino.cc/en/Reference/BooleanVariables

    Denken Sie daran, wie wir über Funktionen, die drei Teile gesprochen? Input, Anweisungen und Output? Lassen Sie uns über Ausgänge zu sprechen!

    Das Setup und die Loop-Funktion haben Ausgänge zu. Sie sind nichtig. Void ist Computersprache für nichts. Unsere Funktion ausgeben wird ein boolean.

    Zuerst müssen Sie die Arduino sagen, dass Sie Ihre Funktion zur Ausgabe eines boolean möchten.
    Dann müssen Sie tatsächlich zurück (Ausgang) einen booleschen Wert.

    Ein Beispiel hierfür ist:
    boolean my_awesome_function()
    {
    boolean i_love_kittens = true ;
    return i_love_kittens;
    }

    In der Funktion, werden wir die return_value auf true gesetzt, wenn das Auto Sensor sieht das Auto.

    Versuchen Sie diese Funktion, um Ihren Code ein:

    boolean look_for_car()
    {
    int current_time = millis ();
    int end_time = current_time + 2000; // we'll look for about two seconds
    boolean saw_car = false ;
    while (current_time < end_time)
    {
    sensor_value = analogRead (SENSOR_PIN);
    if (sensor_value < sensor_mid)
    {
    // set the value of saw_car to true
    // your code here
    }

    // update the current time
    // your code here
    }
    return saw_car;
    }

    Dann in der Loop-Funktion, nach einem Auto und dann verlängern die grünes Licht, wenn die Lichtschranke sieht das Auto.
    Wenn das Auto sieht, denken Sie daran, eine zweite Verzögerungs hinzuzufügen, wenn nicht, zögern Sie nicht!

    Schnell Beispiel:

    boolean saw_car = look_for_car();

Schritt 25: Der finale Code

  1. Arduino Traffic Light for Beginners
    Dieser Schritt wird bis nach Camps sind vorbei!