Arduino Tutorial Bundle:. Arduino Experimentation Kit :. (ARDX)

13 Schritt:Schritt 1:.: Installieren der Software. Schritt 2:.: Ein paar Grundlagen:. Schritt 3:.: Erste Schritte :. (Blinkt LED) - CIRC01 Schritt 4:.: 8 LED-Fun :. (Mehrere LEDs) - CIRC02 Schritt 5:.: Spin Motor Spin :. (Transistor & Motor) - CIRC03 Schritt 6:.: A Single Servo :. (Servos) - CIRC04 Schritt 7:.: 8 Mehr Leds :. (74HC595 Schieberegister) - CIRC05 Schritt 8:.: Musik :. - (Pieze Element) - CIRC06 Schritt 9:.:-Taste Durch Drücken :. (Drucktasten) - CIRC07 Schritt 10:.: Twisting :. (Potentiometer) - CIRC08 Schritt 11:.: Hell :. (Photo Widerstände) - CIRC09 Schritt 12:.: Temperatur :. (TMP36 Precision Temperature Sensor) - CIRC10 Schritt 13:.: Größere Lasten :. (Relais) - CIRC11

Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

Daran interessiert, ordentlich Projekte mit einem Arduino aber nicht sicher, wo Sie anfangen sollen?
Hier ist eine einfache Anleitung, wie Sie eine Verbindung und verwenden eine Schar von elektronischen Komponenten zu folgen.
(Schamlose Schleichwerbung)
Sie interessieren sich tun es alle?
Komplette Kits mit Komponenten, jede Schaltung, ein gedruckter Reiseführer und Steckbrett Layout Blätter können gekauft werden zu machen.
oomlout.co.uk (in Großbritannien)
oder
adafruit.com (USA & International Shipping)
oder
Floris.cc (in Holland)
Lasst uns anfangen!
(Eine PDF-Version dieses Handbuchs kann unter heruntergeladen werden)
Wechseln zu einem bestimmten copmonent
'' 'CIRC-01' '' - Erste Schritte - (Blinkt LED)
'' 'CIRC-02' '' - Mehrere LEDs - (8 LED Fun)
'' 'CIRC-03' '' - Spin Motor Spin - (Transistor & Motor)
'' 'CIRC-04' '' - ein einzelnes Servo - (Servos)
'' 'CIRC-05' '' - 8 Weitere LEDs - (74HC595 Schieberegister)
'' 'CIRC-06' '' - Musik - (Piezoelement)
'' 'CIRC-07' '' - Taste Durch Drücken - (Drucktasten)
'' 'CIRC-08' ​​'' - Twisting - (Potentiometer)
'' 'CIRC-09' '' - Light - (Fotowiderstände)
'' 'CIRC-10' '' - Temperatur - (TMP36 Precision Temperature Sensor)
'' 'CIRC-11' '' - größere Lasten - (Relais)
(At oomlout wir gerne machen alles, was wir tun, Open Source, aber wir müssen die Dateien, die in dieses Produkt gegangen sind jedoch die Entwicklungsdateien können durchgesehen werden ordnungsgemäß dokumentiert bei http://www.oomlout.com/ARDX/ oder wenn Sie eine Datei nicht finden können, senden Sie uns eine Nachricht und wir werden es richten Sie Ihre Art und Weise)

Schritt 1:.: Installieren der Software.

  1. Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Bevor wir weiter gehen, müssen Sie downloaden und installieren Sie die Arduino IDE (Integrated Development Environment), das ist das Programm, mit dem wir Programme für den Arduino schreiben.

    Step 1 - Laden Sie die IDE
      Das Arduino IDE ist für alle gängigen Betriebssysteme zur Verfügung. Gehen Sie zu http://arduino.cc/en/Main/Software und downloaden Sie die entsprechende Version.
      For Windows '

      Schritt-2 - Entpacken Sie die Software
        Entpacken Sie das Programm. (Wir empfehlen, es in c: \ Programme \)
        Schritt-3 - Shortcut Icon
          Goto C: \ Program Files \ Arduino-00 ** Rechtsklick auf Arduino.exe die goto "Senden an> Desktop"
          Schritt 4 - Schließen Sie Ihren Arduino
            Schließen Sie Ihren Arduino-Board in einen freien USB-Port mit einem USB-Kabel AB Warten Sie einen Kasten um Pop-up
            Step-5 Hardware-
              Im Dialogfenster Neue Hardware hinzufügen, klicken Sie auf "Überspringen der Suche im Internet" Wählen Sie "Software von einer bestimmten Quelle installieren" Wählen Sie die Position "C: \ Programme \ Arduino-00 ** \ drivers \ FTDI_USB_Drivers \ FINISHED
              Für Mac OSX "

              Schritt 2 - Entpacken Sie die Software
                Tun Sie dies mit einem Doppelklick Bewegen Sie den Ordner "// Programme /"
                Schritt 3 - Alias ​​Icon
                  Öffnen // Anwendungen / Arduino-00 ** / Befehl klicken Arduino Alias ​​Ziehen Sie den Alias ​​auf den Desktop
                  Schritt 4 - Installieren von Treibern
                    Goto // Anwendungen / arduino00 ** / drivers Klicken Sie doppelt und installieren FTDIUSBSerialDriver_V2_2_9_Intel.dmg
                    Schritt 5: Schließen Sie Ihren Arduino

Schritt 2:.: Ein paar Grundlagen:.

  1. Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)
    Bevor wir anfangen gibt es zwei Bereiche, in denen auffrischen kann hilfreich sein. Hier ist ein kurzer Überblick über einige elektronische Bauteile und der C-Programmierung.

    (Sie können diesen Schritt überspringen, wenn Sie möchten, da die meisten es kann bis auf dem Weg abgeholt werden)

    Arduino-Halter
    Während es einfach ist, Prototyp-Schaltungen mit einem Arduino und Breadboard daneben finden wir es schwierig ist, letztere zu bewegen. Um dies zu bekämpfen verwenden wir ein Stück lasergeschnittenen Acryl, mit dem Sie die Arduino und Breadboard zu befestigen. Dies wird in den Voll Kits enthalten, oder wenn Sie möchten, dass Ihre eigenen zu machen, können die Designdateien finden Sie hier (auf Thingiverse) .

    Elektronische Bauteile
    Hier ist eine kurze Zusammenfassung der einzelnen Komponenten werden wir verwenden,

      LED (Light Emitting Diode) - Es wird ein Licht, wenn ein kleiner Strom durchflossen wird. Sie neigen dazu, wie Miniatur-Glühlampen aussehen. Sie müssen im Hinterkopf behalten, dass sie polarisiert und wird nur in einer Richtung arbeiten (die längere Vorlauf zeigt an der Kathode oder positive Blei). Für weitere Informationen: http://tinyurl.com/zhpyv Diode - Das elektronische Äquivalent eines Einwegventil. Ermöglicht, dass Strom in einer Richtung fließen kann, aber nicht die anderen. In der Regel erkennbar, da sie ein Zylinder mit Drähten aus jedem Ende und eine aus der Mitte Linie, die Polarität. Für weitere Informationen: http://www.tinyurl.com/ysz57b Widerstand - Beschränkt die Menge an Strom, die durch einen Stromkreis fließen. Auch ein Zylinder mit Drähten aus beiden Enden. Der Widerstandswert wird mit einem Farbleitsystem angezeigt. Für weitere Informationen: http://www.tinyurl.com/cmeqw5 Transistor - Verwendet einen kleinen Strom zu schalten oder zu verstärken einen viel größeren Strom. Sie kommen in einer Vielzahl von verschiedenen Paketen. Für weitere Informationen: http://tinyurl.com/eazkn Hobby Servo - Ein kleiner Motor, Getriebe und Steuerschaltungen. Es dauert eine Zeitimpuls und wandelt sie in eine Winkelposition. Für weitere Informationen: http://tinyurl.com/4zo4he DC Motor - Ein kleiner Motor, der natürlich dreht, wenn ein Strom durchflossen wird. Für weitere Informationen: http://tinyurl.com/d826yh Piezoelement - Wird emittieren ein Klicken, wenn sie gepulst wird, wenn Sie es einen Strom von Impulsen wird ein Signalton ausgegeben wird, zu senden. Für weitere Informationen: http://tinyurl.com/38crmu Integrated Circuit - Pauschal jede Reihe von komplizierten Elektronik im Inneren eine einfach zu bedien Fall. Für weitere Informationen: http://tinyurl.com/87k4d Druckschalter - einen Stromkreis, wenn sie gedrückt: Für weitere Informationen: http://tinyurl.com/cmts7d Potentiometer (Variable Resistor) - Erzeugt einen variablen Widerstand in Abhängigkeit von der Winkelposition die Welle. Für weitere Informationen: http://tinyurl.com/28pbhd Photo-Widerstand - Erzeugt einen variablen Widerstand abhängig von der Menge des einfallenden Lichts. Für weitere Informationen: http://tinyurl.com/c2wdkw
      Programmierung des Arduino
      Das Arduino ist in einem C ähnliche Sprache programmiert. Ausführliche Informationen finden Sie in der Online-Referenz.
      http://arduino.cc/en/Reference/HomePage

Schritt 3:.: Erste Schritte :. (Blinkt LED) - CIRC01

  1. Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Alle 7 Artikel anzeigen

    Was wir tun:
    LEDs (Light Emitting Diodes) sind in allerlei kluge Dinge verwendet, weshalb wir sie in diesem Intro enthalten. Wir beginnen mit etwas sehr einfach, drehen ein und aus, wiederholt, wodurch ein angenehmes Blinkeffekt. Um begonnen zu greifen die unten angeführten Teile, stecken Sie das Layout, um Ihr Steckbrett und stecken alles in. Wenn die Schaltung zusammengebaut Sie benötigen, um das Programm zu laden bekommen. Um dieses Plug das Arduino-Board in Ihren USB-Anschluss zu tun. Wählen Sie dann den richtigen Anschluss in Tools> Serial Port> (der COM-Port Ihres Arduino). Weiter das Programm laden, indem Sie auf Datei> Hochladen, um I / O-Board (Strg + U). Schließlich aalen sich in der Herrlichkeit und die Möglichkeit, dass Steuerung von Licht bietet.

    Wenn Sie Probleme beim Hochladen werden, kann eine vollständige Fehlersuchplan finden Sie hier :
    (Sie können auch die Steckbrett Layout Blatt von der Unterseite dieser Schritt)

    Die Teile:
      CIRC-01 (Erste Schritte) Breadboard Sheet (x1) 2 Pin Header (x4) 10 mm LED (x1) 560 Ohm Widerstand (grün-blau-braun) (x1) Draht
      Der Circuit und Plugging Alles In:
      Ein kleines Video von Alles eingesteckt


      Der Code:
      goto die Arduino IDE (Programm) und gehen Sie Datei> Beispiele> Digital> Blink oder kopieren Sie den nachfolgenden Code und fügen Sie ihn in eine leere Zeichendatei
        / * * * * Blink Die Grund Arduino Beispiel.  Schaltet eine LED für eine Sekunde auf, * dann für eine Sekunde und so weiter ... Wir verwenden Stift 13, weil, * je nach Ihren Arduino Board, entweder es hat eine eingebaute LED * oder einem eingebauten Widerstand so dass Sie nur eine LED.  * * Http://www.arduino.cc/en/Tutorial/Blink * / int ledPin = 13;  // Zum digitalen Stift LED verbunden 13void setup () // einmal ausgeführt, wenn die Skizze beginnt {pinMode (ledPin, OUTPUT);  // Setzt den digitalen Stift als Ausgang} void loop () // immer und immer wieder ausführen {digital (ledPin, HIGH);  // Setzt die LED an Verzögerung (1000);  // Wartet auf eine zweite digital (ledPin, LOW);  // Setzt die LED ausschaltet (1000);  // Wartet auf eine zweite} 

      Funktioniert Nicht?
        LED-Beleuchtung Not Up - LEDs wird nur in eine Richtung funktionieren. Versuchen Sie es heraus und drehen ihn um 180 Grad. (Keine Sorge, es installieren rückwärts tut keinen dauerhaften Schaden) Programm Unbekannt hochladen - Dies geschieht manchmal, die wahrscheinlichste Ursache ist ein verwirrt serielle Schnittstelle, können Sie dies in Werkzeugwechsel> serielle Schnittstelle> noch keinen Erfolg - Eine Unterbrechung des Kreises ist kein Spaß, senden Sie uns eine E-Mail und wir werden so schnell wie möglich bei Ihnen melden. [email protected]
        So dass es besser:

        PIN ändern:
        Die LED ist mit dem Stift 13, aber wir können jede der Arduino Pins zu nutzen. So ändern Sie es, den Draht in Stift 13 eingesteckt und verschieben Sie es an einem Stift Ihrer Wahl (0-13) (Sie können auch analoge 0-5 analog 0 verwenden, ist 14 ...)

        Dann im Code ändern Sie die Zeile:
          int ledPin = 13;  -> Int ledPin = newpin; 

        Dann laden Sie die Skizze: (Strg-U)

        Ändern Sie die Blink-Zeit:
        Mit eine Sekunde eine Sekunde aus unzufrieden?

        In dem Code ändern Sie die Zeilen:
          digital (ledPin, HIGH);  Verzögerung (Zeit);  // (Sekunden * 1000) digital (ledPin, LOW);  Verzögerung (Freistellung);  // (Sekunden * 1000) 

        Steuern Sie die Helligkeit:
        Zusammen mit digitalen (on / off) steuern die Arduino kann einige Pins in einem analogen (Helligkeit) Weise zu steuern. (Näheres dazu in späteren Schaltungen). Zu spielen, um mit ihm.

        Ändern Sie die LED auf Pin 9: (auch den Draht zu ändern)
          ledPin = 13;  -> Int ledPin = 9; 
        Ersetzen Sie den Code in den {} s der Schleife () mit diesem:
          analogWrite (ledPin, neue Nummer); 
        (Neu number) = eine beliebige Zahl zwischen 0 und 255.
        0 = Aus, 255 = ein, zwischen verschiedenen Helligkeits =

        Fading:
        Wir werden ein anderes enthalten Beispiel-Programm verwenden. Zu öffnen, um zu gehen.

        Datei> Sketchbook> Beispiele> Analog> Fade

        Dann laden Sie jetzt, um das Board und zusehen, wie die LED eingeblendet und dann aus.

        Links:
        Auf der Suche nach mehr Informationen oder vielleicht die Konzepte erklärt in einer anderen Art und Weise, das Internet hat viele Arduino Referenzen hier sind ein paar für diese Schaltung

Schritt 4:.: 8 LED-Fun :. (Mehrere LEDs) - CIRC02

  1. Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Alle 7 Artikel anzeigen

    Was wir tun:
    Wir haben seine Zeit, bis die Einsätze verursacht eine LED an zu blinken, jetzt. Lets verbinden acht. Wir haben auch die Möglichkeit, den Arduino, indem verschiedene Lichtsequenzen strecken ein wenig. Diese Schaltung ist auch eine schöne Einrichtung mit Schreiben eigener Programme und bekommen ein Gefühl dafür, wie die Arduino arbeitet experimentieren.

    Zusammen mit Ansteuerung der LEDs wir beginnen, in ein paar einfachen Programmiermethoden, um Ihre Programme klein zu halten.

    for () Schleifen - verwendet, wenn Sie ein Stück Code mehrmals ausgeführt werden soll.
    Arrays [] - verwendet, um die Verwaltung einfacher Variablen (dessen eine Gruppe von Variablen)

    (Sie können auch die Steckbrett Layout Blatt von der Unterseite dieser Schritt)

    Die Teile:
      CIRC-02 Breadboard Blatt 2 Pin Header (x4) 5mm grüne LED (x8) 560-Ohm-Widerstand (grün-blau-braun) (x8)

      Der Circuit und Plugging Alles In:
      Ein kleines Video von Alles eingesteckt


      Der Code:

        / * ------------------------------------------------ --------- * | Arduino Experimentation Kit Beispiel Code | * | CIRC-02: 8. LED-Fun:.  (Mehrere LEDs) | * -------------------------------------------- ------------- * * Ein paar einfache LED-Animationen * * Für weitere Informationen zu dieser Schaltung http://tinyurl.com/d2hrud * * /// LED Pin Variablesint ledPins [] = { 2,3,4,5,6,7,8,9};  // Ein Array, um den Stift jede LED ist mit dem // dh LED # 0 an Pin 2, halten LED # 1, 3 und so weiter, um ein Array // Verwendung ledPins [0] würde dies 2 gleich ansprechen // und ledPins [7] würde gleich 9 / * * setup () - Diese Funktion wird einmal, wenn Sie Ihren Arduino auf * Wir sind die drei Steuerstifte * / void setup (den Ausgängen) {// Stellen Sie jeden Stift auf ein LED angeschlossen Ausgabe-Modus (Hochziehen (on) oder niedrig (off) for (int i = 0; i <8; i ++) {// Das ist eine Schleife und wird wiederholt achtmal pinMode (ledPins [i], output); // Wir verwenden sie, um jede LED Pin auf Ausgang gestellt} // der Code ersetzt diese unter / * (kommentierten Code wird nicht ausgeführt) * das sind die durch das ersetzt for-Schleife über sie das oben nur tun, genau die gleiche Sache Linien * verbraucht weniger Tipp pinMode (ledPins [0], output); pinMode (ledPins [1], OUTPUT); pinMode (ledPins [2], OUTPUT); pinMode (ledPins [3], OUTPUT); pinMode (ledPins [4], OUTPUT); pinMode (ledPins [5], output); pinMode (ledPins [6], output); pinMode (ledPins [7], OUTPUT) (Ende der kommentierte Code) * /} / * * loop () - diese Funktion wird nach Abschluss der Installation zu starten, und wiederholen * wir eine Funktion namens oneAfterAnother (Anruf).  wenn Sie möchten, ein anderes Verhalten * Kommentarzeichen entfernen (löschen Sie die beiden Schrägstriche) eine der anderen Zeilen * / void loop () // immer und immer wieder ausführen {oneAfterAnotherNoLoop ();  // Dies wird auf jeder Runde LED eine nach der anderen drehen Sie dann jeweils off // oneAfterAnotherLoop ();  // Macht das gleiche wie oneAfterAnotherNoLoop aber mit viel weniger Tipp // oneOnAtATime ();  // Dies eine LED einzuschalten und drehen Sie dann das nächste beim Drehen des ehemaligen // off (ein LED schauen, wie es ist entlang der Linie // Inandout () Scrollen; // leuchtet die beiden mittleren LEDs dann bewegt sie sich dann wieder ein} / * * oneAfterAnotherNoLoop () - leuchtet eine LED, dann verzögern für Verzögerungszeit dann der nächste Licht * LED, bis alle LEDs leuchten sie dann schalten Sie sie ab einer nach dem anderen * * dies tut es, ohne eine Schleife, die macht für eine Menge Tipparbeit * oneOnAtATimeLoop () wird genau das Gleiche mit weniger Tipp * / void oneAfterAnotherNoLoop () {int Delaytime = 100;. // die Zeit (in Millisekunden) zwischen LEDs Pause machen // kleiner für schnelleres Schalten und größer für langsamere digital (ledPins [0], HIGH); // Schaltet LED # 0 (verbunden mit 2 Pin) Verzögerung (Verzögerungszeit); // wartet Delaytime Millisekunden digital (ledPins [1], HIGH); // Schaltet auf LED # 1 (angeschlossen an 3-polig) Verzögerung (Verzögerungszeit); // wartet Delaytime Millisekunden digital (ledPins [2], HIGH); // Schaltet LED # 2 (verbunden, 4-polig) Verzögerung (Verzögerungszeit);  // wartet Delaytime Millisekunden digital (ledPins [3], HIGH);  // Schaltet LED # 3 (angeschlossen an 5-polig) Verzögerung (Verzögerungszeit);  // wartet Delaytime Millisekunden digital (ledPins [4], HIGH);  // Schaltet LED # 4 (verbunden zu 6 Pin) Verzögerung (Verzögerungszeit);  // wartet Delaytime Millisekunden digital (ledPins [5], HIGH);  // Schaltet LED # 5 (verbunden mit 7-polig) Verzögerung (Verzögerungszeit);  // wartet Delaytime Millisekunden digital (ledPins [6], HIGH);  // Schaltet LED # 6 (verbunden zu 8 Pin) Verzögerung (Verzögerungszeit);  // wartet Delaytime Millisekunden digital (ledPins [7], HIGH);  // Schaltet LED # 7 (verbunden mit 9-polig) Verzögerung (Verzögerungszeit);  // wartet Delaytime Millisekunden // Schaltet Jede LED Aus digital (ledPins [7], LOW);  // Schaltet LED # 0 (verbunden mit 2 Pin) Verzögerung (Verzögerungszeit);  // Delaytime Millisekunden wartet digital (ledPins [6], LOW);  // Schaltet LED # 1 (angeschlossen an 3-polig) Verzögerung (Verzögerungszeit);  // Delaytime Millisekunden wartet digital (ledPins [5], LOW);  // Schaltet LED # 2 (verbunden, 4-polig) Verzögerung (Verzögerungszeit);  // Delaytime Millisekunden wartet digital (ledPins [4], LOW);  // Schaltet LED # 3 (angeschlossen an 5-polig) Verzögerung (Verzögerungszeit);  // Delaytime Millisekunden wartet digital (ledPins [3], LOW);  // Schaltet LED # 4 (verbunden zu 6 Pin) Verzögerung (Verzögerungszeit);  // Delaytime Millisekunden wartet digital (ledPins [2], LOW);  // Schaltet LED # 5 (verbunden mit 7-polig) Verzögerung (Verzögerungszeit);  // Delaytime Millisekunden wartet digital (ledPins [1], LOW);  // Schaltet LED # 6 (verbunden zu 8 Pin) Verzögerung (Verzögerungszeit);  // Delaytime Millisekunden wartet digital (ledPins [0], LOW);  // Schaltet LED # 7 (verbunden mit 9-polig) Verzögerung (Verzögerungszeit);  // Wartet Delaytime Millisekunden} / * * oneAfterAnotherLoop () - leuchtet eine LED, dann verzögern für Verzögerungszeit dann der nächste Licht * LED, bis alle LEDs leuchten sie dann schalten Sie sie ab einer nach dem anderen * * dies tut es mit einer Schleife, macht für viel weniger Tipparbeit.  * Als oneOnAtATimeNoLoop () tut genau das Gleiche mit weniger Tipp * / void oneAfterAnotherLoop () {int Delaytime = 100;  // Die Zeit (in Millisekunden) zwischen LEDs Pause machen // kleiner für schnelleres Schalten und größere für langsamere // Drehen Jede LED auf einer nach dem anderen for (int i = 0; i <= 7; i ++) {digital (ledPins [i], HOCH);  // Schaltet LED #i jedes Mal diese läuft i verzögert (Verzögerungszeit);  // Bekommt man hinzugefügt, so wird dies} // 8 Mal das erste Mal werde ich = 0 die endgültige // Mal werde ich gleich 7 wiederholen; // Drehen Jedes nacheinander für LED aus (int i = 7; i > = 0; i -) {// Wie oben, aber anstatt beginnend bei 0 und Zählen // beginnen wir um sieben und Countdown digital (ledPins [i], LOW);  // Schaltet LED #i jedes Mal diese läuft i verzögert (Verzögerungszeit);  // Bekommt man subtrahiert es so wird dies} // 8 Mal das erste Mal wiederholen i = 7 wird die endgültige // Mal werde ich gleich 0;  } / * * OneOnAtATime () - leuchtet eine LED wird der nächste Ausschalten alle anderen * / void oneOnAtATime () {int Delaytime = 100;  // Die Zeit (in Millisekunden) zwischen LEDs Pause machen // kleiner für schnelleres Schalten und größere für langsamere for (int i = 0; i <= 7; i ++) {int i = offLED - 1;  // Berechnen, die wir am letzten Mal eingeschaltet wird, wenn durch (i == 0) {// für i = 1 bis 7 ist dies i minus 1 (dh LED, wenn i = 2 werden wir offLED = 7; // einschalten LED 2 und aus LED 1)} // jedoch, wenn i = 0 Wir wollen nicht von LED -1 (existiert nicht) // anstatt biegen wir LED 7 drehen, (Umschlingung) digital (ledPins [i], HIGH);  // Einschalten LED #i digital (ledPins [offLED], LOW);  // Ausschalten der LED wir eingeschaltet letzten Zeitverzögerung (Verzögerungszeit);  }} / * * Inandout () - Dies wird auf den beiden mittleren LEDs schalten Sie dann den nächsten zwei * sie ein und aus Blick * / void Inandout () {int Delaytime = 100;  // Die Zeit (in Millisekunden) zwischen LEDs Pause machen // kleiner für schnelleres Schalten und größere für langsamere // führt die LEDs von der Mitte for (int i = 0; i <= 3; i ++) {int offLED = i - 1;  // Berechnen, die wir am letzten Mal eingeschaltet wird, wenn durch (i == 0) {// für i = 1 bis 7 ist dies i minus 1 (dh LED, wenn i = 2 werden wir offLED = 3; // einschalten LED 2 und aus LED 1)} // jedoch, wenn i = 0 Wir wollen nicht der wiederum führte -1 (existiert nicht) // anstatt biegen wir LED 7, (Umschlingung) int onLED1 = 3 - i;  // Dies ist der erste LED auf, dh zu gehen.  LED # 3, wenn i = 0 und LED # 0, wenn i = 3 int onLED2 = 4 + i;  // Dies ist der erste LED auf, dh zu gehen.  LED # 4, wenn i = 0 und LED # 7, wenn i = 3 int offLED1 = 3 - offLED;  // Schaltet die LED eingeschaltet wir letztes Mal int offLED2 = 4 + offLED;  // Schaltet die LED eingeschaltet wir letztes Mal digital (ledPins [onLED1], HIGH);  digital (ledPins [onLED2], HIGH);  digital (ledPins [offLED1], LOW);  digital (ledPins [offLED2], LOW);  Verzögerung (Verzögerungszeit);  } // Führt die LEDs in der Mitte for (int i = 3; i> = 0; i -) {int offLED = i + 1;  // Berechnen, die wir am letzten Mal eingeschaltet wird, wenn durch (i == 3) {// für i = 1 bis 7 ist dies i minus 1 (dh LED, wenn i = 2 werden wir offLED = 0; // einschalten LED 2 und aus LED 1)} // jedoch, wenn i = 0 Wir wollen nicht der wiederum führte -1 (existiert nicht) // anstatt biegen wir LED 7, (Umschlingung) int onLED1 = 3 - i;  // Dies ist der erste LED auf, dh zu gehen.  LED # 3, wenn i = 0 und LED # 0, wenn i = 3 int onLED2 = 4 + i;  // Dies ist der erste LED auf, dh zu gehen.  LED # 4, wenn i = 0 und LED # 7, wenn i = 3 int offLED1 = 3 - offLED;  // Schaltet die LED eingeschaltet wir letztes Mal int offLED2 = 4 + offLED;  // Schaltet die LED eingeschaltet wir letztes Mal digital (ledPins [onLED1], HIGH);  digital (ledPins [onLED2], HIGH);  digital (ledPins [offLED1], LOW);  digital (ledPins [offLED2], LOW);  Verzögerung (Verzögerungszeit);  }} 

      Funktioniert Nicht?
        Einige LEDs nicht leuchten - Es ist leicht zu legen eine LED nach hinten. Überprüfen Sie die LEDs, die nicht arbeiten und sicherzustellen, dass sie richtig herum Bedienung außer der Reihe -. Mit acht Adern ist es einfach, ein paar zu überqueren. Überprüfen Sie, dass die erste LED in Pin 2 jeder Stift dort nach Neubeginn gesteckt und -. Es ist einfach, einen Draht versehentlich verlegt ohne es zu merken. Ziehen alles aus und mit einem frischen Schiefer ist oft einfacher als zu versuchen, die Spur des Problems.

        So dass es besser:
        Die Umstellung auf Loops:
        in der Schleife () Funktion gibt es 4 Zeilen. Die letzten drei alle beginnen mit "//" das bedeutet, wird die Linie als Kommentar behandelt (nicht ausgeführt). Um das Programm zu bedienen Schleifen die Leere Schleife () Code ändern zu wechseln:
          // OneAfterAnotherNoLoop ();  oneAfterAnotherLoop ();  // OneOnAtATime ();  // Rein und raus (); 
        Laden Sie das Programm, und bemerken, dass sich nichts geändert hat. Sie können einen Blick auf die zwei Funktionen übernehmen, jeder macht das Gleiche, aber benutzen verschiedene Ansätze (Hinweis der zweite verwendet eine for-Schleife)

        Zusätzliche Animationen:
        Müde von dieser Animation? Dann versuchen die anderen beiden Probe-Animationen. Kommentieren Sie die Zeilen und laden Sie das Programm, um Ihre Bord und genießen Sie die neuen Licht-Animationen. (Löschen Sie die Schrägstriche vor Zeile 3 und 4)

        Testen Sie Ihre eigenen Animationen:
        Springen Sie in den enthaltenen Code und starten Sie die Dinge zu verändern. Die Hauptsache ist, schalten eine LED auf Nutzung digital (Pin-Nummer, HIGH); dann, um sie auszuschalten Verwendung digital (Pin-Nummer, LOW); . Geben entfernt, unabhängig davon, was Sie verändern Sie nichts zu brechen.

Schritt 5:.: Spin Motor Spin :. (Transistor & Motor) - CIRC03

  1. Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Alle 7 Artikel anzeigen

    Was wir tun:
    Die Arduino Pins sind für die direkte Steuerung kleiner elektrischer Elemente wie LEDs. Jedoch, wenn es um größere Gegenstände (wie eine Spielzeugmotor oder Waschmaschine), wird ein externer Transistor erforderlich. Ein Transistor ist unglaublich nützlich. Er schaltet die viel Strom unter Verwendung eines viel kleineren Strom. Ein Transistor hat 3 Pins. Für eine negative Typ (NPN-Transistor) Sie Ihre Ladung zu Kollektor und Emitter mit Masse zu verbinden. Wenn dann fließt ein kleiner Strom von der Basis zu dem Emitter ein Strom durch den Transistor fließen und Ihr Motor zu drehen (dies geschieht, wenn wir unsere Arduino Pin HIGH). Es gibt buchstäblich Tausende von verschiedenen Arten von Transistoren, so dass jede Situation perfekt aufeinander abgestimmt sein. Wir haben eine gewählte P2N2222AG eine ziemlich gemeinsame Universal Transistor. Zu den wichtigen Faktoren sind in unserem Fall, dass seine maximale Spannung (40 V) und dessen Maximalstrom (600 mA) sind beide hoch genug für unsere Spielzeugmotor (Einzelheiten finden Sie auf seiner Datenblatt finden http://tinyurl.com/o2cm93 )
    Achtung: der Transistor nutzen wir über ein, um: Basis Kollektor-Emitter-Pinbelegung (die sich von einigen anderen beliebten Transistoren)
    (Die 1N4001 Diode als Freilaufdiode für Details, warum es seinen Besuch handeln: http://tinyurl.com/b559mx)

    (Sie können auch die Steckbrett Layout Blatt von der Unterseite dieser Schritt)

    Die Teile:
      CIRC-03 Breadboard Blatt 2 Pin Header (x4) Transistor (P2N2222AG) (TO92) (x1) 2,2 k-Ohm-Widerstand (rot-rot-rot) (x1) Toy Motor (x1) Diode (1N4001) (x1)

      Der Circuit und Plugging Alles In:
      Ein kleines Video von Alles eingesteckt


      Der Code: - http://tinyurl.com/dagyrb
        int motorPin = 9;  // Pin der Motor verbunden ist, um das Setup (void) // wird einmal {pinMode (motorPin, OUTPUT);  } Void loop () // immer und immer wieder ausführen {motorOnThenOff ();  // MotorOnThenOffWithSpeed ​​();  // MotorAcceleration ();} / * * motorOnThenOff () - schaltet Motor dann ab * (beachten Sie diesen Code ist identisch mit dem Code, den wir für * die blinkende LED verwendet) * / void motorOnThenOff () {int onTime = 2500;  // Pünktlich int OFFTIME = 1000;  // Ausschaltzeit digital (motorPin, HIGH);  // Schaltet den Motor On Delay (onTime);  // Wartet onTime Millisekunden digital (motorPin, LOW);  // Schaltet den Motor ausschaltet (OFFTIME); // wartet OFFTIME Millisekunden} void motorOnThenOffWithSpeed ​​() {int ONSPEED = 200; // eine Zahl zwischen // 0 (angehalten) und 255 (volle Geschwindigkeit) int onTime = 2500;  int Außer-Geschwindigkeit = 50; // eine Zahl zwischen // 0 (angehalten) und 255 (volle Geschwindigkeit) int OFFTIME = 1000;  analogWrite (motorPin, ONSPEED);  // Schaltet den Motor On Delay (onTime);  // Wartet onTime Millisekunden analogWrite (motorPin, Außer-Geschwindigkeit);  // Schaltet den Motor ausschaltet (OFFTIME);  // Wartet OFFTIME Millisekunden} void motorAcceleration () {int Delaytime = 50;  // Zeit zwischen den einzelnen Fahrstufen for (int i = 0; i <256; i ++) {// durch jede Geschwindigkeit von 0 bis 255 analogWrite (motorPin, i) geht;  // Setzt den neuen Geschwindigkeitsverzögerung (Verzögerungszeit); // wartet Delaytime Millisekunden} for (int i = 255; i> = 0; i -) {// geht durch jede Geschwindigkeit 255-0 analogWrite (motorPin, i );  // Setzt den neuen Geschwindigkeitsverzögerung (Verzögerungszeit); // wartet Delaytime Millisekunden}} 


      Funktioniert Nicht?
        Motor dreht sich nicht -? Wenn Sie eine eigene Transistor, doppelte Überprüfung mit dem Merkblatt, dass die Pinbelegung ist mit einem P2N2222A (viele sind umgekehrt) immer noch kein Glück kompatibel sourced - Wenn Sie Ihr eigenes sourced Motor, doppelte Überprüfung, dass es mit der Arbeit 5 Volt und dass es nicht zu viel Strom ziehen immer noch nicht funktioniert.? - Manchmal ist das Arduino-Board wird vom Computer trennen. Versuchen Sie un-Plugging und dann wieder Einstecken in den USB-Port.

        So dass es besser:
        Controlling Speed:
        Wir spielten mit dem Arduino die Fähigkeit, um die Helligkeit einer LED bereits jetzt werden wir die gleiche Funktion zu verwenden, um die Geschwindigkeit unserer Motor zu steuern. Das Arduino tut dies mit so genannten Pulsweitenmodulation (PWM). Dies beruht auf der Arduino Fähigkeit, wirklich sehr schnell arbeiten. Anstatt direkt die Steuerung der Spannung, die von dem Stift die Arduino den Stift an und aus sehr schnell zu wechseln. In der Computer-Welt, das wird von 0 bis 5 Volt viele Male pro Sekunde, aber in der Welt der Menschen sehen wir es als eine Spannung. Zum Beispiel, wenn der Arduino wird bei 50% PWM'ing sehen wir das Licht gedimmt 50%, weil unsere Augen sind nicht schnell genug, um zu sehen, es an zu blinken. Die gleiche Funktion kann mit Transistoren. Glaube mir nicht? Versuch es.

        Im Abschnitt loop () ändern, um diese
          // MotorOnThenOff ();  motorOnThenOffWithSpeed ​​();  // MotorAcceleration (); 
        Dann laden Sie das Programm. Sie können die Geschwindigkeit, indem Sie die Variablen ONSPEED und Außer-Geschwindigkeit ändern

        Beschleunigung und Verzögerung:
        Warum mit zwei Geschwindigkeiten zu stoppen, warum nicht beschleunigen und zu verzögern den Motor. Um dies zu tun Sie einfach die Schleife () Code ändern, um zu lesen
          // MotorOnThenOff (); // motorOnThenOffWithSpeed ​​();  motorAcceleration (); 
        Dann laden Sie das Programm und beobachten Sie, wie Sie Ihren Motor langsam beschleunigt die volle Drehzahl dann verlangsamt sich wieder. Wenn Sie möchten, ändern die Geschwindigkeit der Beschleunigung ändern Sie die variable Verzögerungszeit (größer bedeutet eine längere Beschleunigungszeit)

Schritt 6:.: A Single Servo :. (Servos) - CIRC04

  1. Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Alle 7 Artikel anzeigen

    Was wir tun:
    Spinnen eines Motors macht Spaß, aber wenn es um Projekte, bei denen Bewegungssteuerung erforderlich ist kommt sie neigen dazu, uns zu lassen, die mehr wollen. Die Antwort? Hobby Servos. Sie sind Massenware, allgemein verfügbar und kostet alles von ein paar Dollar, um Hunderte. Im Inneren ist ein kleines Getriebe (die Bewegung stärker zu machen) und einige Elektronik (um es leichter zu kontrollieren). Ein Standard-Servo positionierbar 0-180 Grad. Die Positionierung wird durch einen zeitgesteuerten Impuls zwischen 1,25 Millisekunden (0 Grad) und 1,75 Millisekunden (180 Grad) (1,5 Millisekunden für 90 Grad) gesteuert. Timing variiert zwischen Hersteller. Wenn der Puls wird alle 25-50 Millisekunden schickte der Servo einen reibungslosen Ablauf. Eines der herausragenden Merkmale des Arduino ist es eine Software-Bibliothek, die Sie zwei Servos steuern (mit Pin 9 oder 10 verbunden ist) mit einer einzigen Codezeile ermöglicht.

    (Sie können auch die Steckbrett Layout Blatt von der Unterseite dieser Schritt)

    Die Teile:
      CIRC-04 Breadboard Blatt 2 Pin Header (x4) 3 Pin Header (x1) Mini Servo (x1) Draht

      Der Circuit und Plugging Alles In:
      Ein kleines Video von Alles eingesteckt


      Der Code: - Datei> Sketchbook> Beispiele> Bibliothek-Servo> Sweep
        // // Sweep durch BARRAGAN <http://barraganstudio.com> #include <Servo.h> Servo myservo;  // Erstellen Servo Aufgabe, ein servoint pos = 0 zu steuern;  // Variable, um die Servoposition ungültig Setup speichern () {myservo.attach (9);  // Misst der Servo auf Pin 9 an den Servo Objekt} void loop () {for (pos = 0; pos <180; pos + = 1) // geht von 0 Grad bis 180 Grad {// in Schritten von 1 Grad myservo.write (POS);  // Sagen Servo um zur Position in der Variable 'pos' Verzögerung (15) zu gehen;  // Wartet 15 ms für den Servo, um die Position zu erreichen} (pos = 180; pos> = 1; mög- = 1) // geht von 180 Grad auf 0 Grad {myservo.write (pos);  // Sagen Servo um zur Position in der Variable 'pos' Verzögerung (15) zu gehen;  // Wartet 15 ms für den Servo, um die Position zu erreichen}} 


      Funktioniert Nicht?
        Servo Nicht Twisting - Auch mit farbigen Drähte ist es immer noch erschreckend einfach, eine Servo-in nach hinten stecken. Dies könnte der Fall sein, immer noch nicht funktioniert -. Ein Fehler gemacht wir ein oder zwei Mal war einfach zu vergessen, die Macht (rot und braun Drähte) mit +5 Volt und Masse Frustration zu verbinden.? - Schießen Sie uns eine E-Mail, diese Schaltung ist einfacher und komplexer gleichzeitig. Wir wollen über Probleme, die Sie haben, damit wir sie in künftigen Ausgaben adressieren zu hören. [email protected]

        So dass es besser:
        Potentiometer-Steuerung:
        Wir haben noch mit Eingängen zu experimentieren, aber wenn Sie möchten, um voraus zu lesen, gibt es ein Beispiel-Programm Datei> Sketchbook> Beispiele> Bibliothek-Servo> Knob ###. Diese verwendet ein Potentiometer (CIRC08), um die Servosteuerung. Sie können Online-Anweisungen finden Sie hier: http://tinyurl.com/dymsk2

        Self Timing:
        Während es einfach ist, eine Servo mit der Arduino einbezogen Bibliothek steuern manchmal macht es Spaß, herauszufinden, wie man etwas selbst programmieren. Versuche es. We're controlling the pulse directly so you could use this method to control servos on any of the Arduino's 20 available pins (you need to highly optimize this code before doing that).
         int servoPin = 9;void setup(){ pinMode(servoPin,OUTPUT);}void loop() { int pulseTime = 2100; //(the number of microseconds //to pause for (1500 90 degrees // 900 0 degrees 2100 180 degrees) digitalWrite(servoPin, HIGH); delayMicroseconds(pulseTime); digitalWrite(servoPin, LOW); delay(25);} 
        Great Ideas:
        Servos can be used to do all sorts of great things, here are a few of our favorites.

        Xmas Hit Counter
        http://tinyurl.com/37djhq

        Open Source Robotic Arm (uses a servo controller as well as the Arduino)
        http://tinyurl.com/ckm3wd

        Servo Walker
        http://tinyurl.com/da5jfe

Step 7: .:8 More Leds:. (74HC595 Shift Register) - CIRC05

  1. Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Alle 7 Artikel anzeigen

    What We're Doing:
    Time to start playing with chips. Or integrated circuits (ICs) as they like to be called. The external packaging of a chip can be very deceptive for example the chip on the Arduino board (a micro controller) and the one we will use in this circuit (a shift register) look very similar but are in fact rather different, for example the price of the Atmega chip on the arduino board is a few dollars while the 74hc595 is a couple dozen cents. It's a good introductory chip, and once your comfortable playing around with it and its datasheet (available online http://tinyurl.com/pr42xe ) the world of chips will be your oyster. The shift register (also called a serial to parallel converter), will give you an additional 8 outputs (to control LEDs and the like) using only three arduino pins. They can also be linked together to give you a nearly unlimited number of outputs using the same four pins. To use it you clock in the data and then latch lock it in (latch it). To do this you set the data pin to either HIGH or LOW, pulse the clock, then set the data pin again and pulse the clock repeating until you have shifted out 8 bits of data. Then you pulse the latch and the 8 bits are transferred to the shift registers pins. It sounds complicated but is really simple once you get the hang of it.
    (for a more in depth look at how a shift register works visit: http://tinyurl.com/56uvv7 )
    (you can also download the breadboard layout sheet from the bottom of this step)

    The Parts:
      CIRC-05 Breadboard sheet 2 Pin Header (x40 Shift Register (74HC595) (x1) 560 ohm Resistor (green-blue-brown) (x8) 5mm Red LED (x8) Wire
      The Circuit and Plugging Everything In:
      A Small Video of Everything Being Plugged in

      The Code: - http://tinyurl.com/cv4fjt
       /* --------------------------------------------------------- * | Arduino Experimentation Kit Example Code | * | CIRC-05 .: 8 More LEDs :. (74HC595 Shift Register) | * --------------------------------------------------------- * * We have already controlled 8 LEDs however this does it in a slightly * different manner. Rather than using 8 pins we will use just three * and an additional chip. * * For more information on this circuit http://tinyurl.com/111111/ * *///Pin Definitions//The 74HC595 using a protocol called SPI (for more details http://www.arduino.cc/en/Tutorial/ShiftOut)//Which has three pinsint data = 2; int clock = 3;int latch = 4;//Used for single LED manipulationint ledState = 0;const int ON = HIGH;const int OFF = LOW; /* * setup() - this function runs once when you turn your Arduino on * We set the three control pins to outputs */void setup(){ pinMode(data, OUTPUT); pinMode(clock, OUTPUT); pinMode(latch, OUTPUT); }/* * loop() - this function will start after setup finishes and then repeat * we set which LEDs we want on then call a routine which sends the states to the 74HC595 */void loop() // run over and over again{ int delayTime = 100; //the number of milliseconds to delay between LED updates for(int i = 0; i < 256; i++){ updateLEDs(i); delay(delayTime); }}/* * updateLEDs() - sends the LED states set in ledStates to the 74HC595 * sequence */void updateLEDs(int value){ digitalWrite(latch, LOW); //Pulls the chips latch low shiftOut(data, clock, MSBFIRST, value); //Shifts out the 8 bits to the shift register digitalWrite(latch, HIGH); //Pulls the latch high displaying the data}/* * updateLEDsLong() - sends the LED states set in ledStates to the 74HC595 * sequence. Same as updateLEDs except the shifting out is done in software * so you can see what is happening. */ void updateLEDsLong(int value){ digitalWrite(latch, LOW); //Pulls the chips latch low for(int i = 0; i < 8; i++){ //Will repeat 8 times (once for each bit) int bit = value & B10000000; //We use a "bitmask" to select only the eighth //bit in our number (the one we are addressing this time through value = value << 1; //we move our number up one bit value so next time bit 7 will be //bit 8 and we will do our math on it if(bit == 128){digitalWrite(data, HIGH);} //if bit 8 is set then set our data pin high else{digitalWrite(data, LOW);} //if bit 8 is unset then set the data pin low digitalWrite(clock, HIGH); //the next three lines pulse the clock pin delay(1); digitalWrite(clock, LOW); } digitalWrite(latch, HIGH); //pulls the latch high shifting our data into being displayed}//These are used in the bitwise math that we use to change individual LEDs//For more details http://en.wikipedia.org/wiki/Bitwise_operationint bits[] = {B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000};int masks[] = {B11111110, B11111101, B11111011, B11110111, B11101111, B11011111, B10111111, B01111111};/* * changeLED(int led, int state) - changes an individual LED * LEDs are 0 to 7 and state is either 0 - OFF or 1 - ON */ void changeLED(int led, int state){ ledState = ledState & masks[led]; //clears ledState of the bit we are addressing if(state == ON){ledState = ledState | bits[led];} //if the bit is on we will add it to ledState updateLEDs(ledState); //send the new LED state to the shift register } 
      And upload this will cause the lights to light up one after another and then off in a similar manner. Check the code and wikipedia to see how it works, or shoot us an e-mail if you have questions.
      More Animations:
      Now things get more interesting. If you look back to the code from CIRC02 (8 LED Fun) you see we change the LEDs using digitalWrite(led, state), this is the same format as the routine we wrote changeLED(led, state). You can use the animations you wrote for CIRC02 by copying the code into this sketch and changing all the digitalWrite()'s to changeLED()'s. Powerful? Very. (you'll also need to change a few other things but follow the compile errors and it works itself out)

Step 8: .:Music:. - (Pieze Element) - CIRC06

  1. Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)


    What We're Doing:
    To this point we have controlled light, motion, and electrons, Lets tackle sound next. But sound is an analog phenomena, how will our digital Arduino cope? We will once again rely on its incredible speed which will let it mimic analog behavior. To do this, we will attach a piezo element to one of the Arduino's digital pins. A piezo element makes a clicking sound each time it is pulsed with current. If we pulse it at the right frequency (for example 440 times a second to make the note middle A) these clicks will run together to produce notes. Lets get to experimenting with it and get your Arduino playing 'Twinkle Twinkle Little Star'.

    (you can also download the breadboard layout sheet from the bottom of this step)

    The Parts:
      CIRC-06 Breadboard Sheet 2 Pin Header (x4) Piezo Element (x1) Wire

      The Circuit and Plugging Everything In:
      A Small Video of Everything Being Plugged in


      The Code: - File > Sketchbook > Examples > Digital > Melody
       /* Melody * (cleft) 2005 D. Cuartielles for K3 * * This example uses a piezo speaker to play melodies. It sends * a square wave of the appropriate frequency to the piezo, * generating the corresponding tone. * * The calculation of the tones is made following the * mathematical operation: * * timeHigh = period / 2 = 1 / (2 * toneFrequency) * * where the different tones are described as in the table: * * note frequency period timeHigh * c 261 Hz 3830 1915 * d 294 Hz 3400 1700 * e 329 Hz 3038 1519 * f 349 Hz 2864 1432 * g 392 Hz 2550 1275 * a 440 Hz 2272 1136 * b 493 Hz 2028 1014 * C 523 Hz 1912 956 * * http://www.arduino.cc/en/Tutorial/Melody */ int speakerPin = 9;int length = 15; // the number of noteschar notes[] = "ccggaagffeeddc "; // a space represents a restint beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };int tempo = 300;void playTone(int tone, int duration) { for (long i = 0; i < duration * 1000L; i += tone * 2) { digitalWrite(speakerPin, HIGH); delayMicroseconds(tone); digitalWrite(speakerPin, LOW); delayMicroseconds(tone); }}void playNote(char note, int duration) { char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' }; int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 }; // play the tone corresponding to the note name for (int i = 0; i < 8; i++) { if (names[i] == note) { playTone(tones[i], duration); } }}void setup() { pinMode(speakerPin, OUTPUT);}void loop() { for (int i = 0; i < length; i++) { if (notes[i] == ' ') { delay(beats[i] * tempo); // rest } else { playNote(notes[i], beats[i] * tempo); } // pause between notes delay(tempo / 2); }} 


      Not Working?
        No Sound - Given the size and shape of the piezo element it is easy to miss the right holes on the breadboard. Try double checking its placement. Can't Think While the Melody is Playing. - Just pull up the piezo element whilst you think, upload your program then plug it back in. Tired of Twinkle Twinkle Little Star? - The code is written so you can easily add your own songs, check out the code below to get started.

        Making it Better:
        Playing with the speed:
        The timing for each note is calculated based on variables, as such we can tweak the sound of each note or the timing. To change the speed of the melody you need to change only one line.
         int tempo = 300; ---> int tempo = (new #) 
        Change it to a larger number to slow the melody down, or a smaller number to speed it up.
        Tuning the notes:
        If you are worried about the notes being a little out of tune this can be fixed as well. The notes have been calculated based on a formula in the comment block at the top of the program. But to tune individual notes just adjust their values in the tones[] array up or down until they sound right. (each note is matched by its name in the names[] (array ie. c = 1915 )
         char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 }; 
        Composing your own melodies:
        The program is pre-set to play 'Twinkle Twinkle Little Star' however the way it is programmed makes changing the song easy. Each song is defined in one int and two arrays, the int length defines the number of notes, the first array notes[] defines each note, and the second beats[] defines how long each note is played. Some Examples:
        Twinkle Twinkle Little Star
         int length = 15; char notes[] = "ccggaagffeeddc "; int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 }; 
        Happy Birthday (first line)
         int length = 13; char notes[] = "ccdcfeccdcgf "; int beats[] = {1,1,1,1,1,2,1,1,1,1,1,2,4}; 


Step 9: .:Button Pressing:. (Pushbuttons) - CIRC07

  1. Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Alle 7 Artikel anzeigen

    What We're Doing:
    Up to this point we have focused entirely on outputs, time to get our Arduino to listen, watch and feel. We'll start with a simple pushbutton. Wiring up the pushbutton is simple. There is one component, the pull up resistor, that might seem out of place. This is included because an Arduino doesn't sense the same way we do (ie button pressed, button unpressed). Instead it looks at the voltage on the pin and decides whether it is HIGH or LOW. The button is set up to pull the Arduino's pin LOW when it is pressed, however, when the button is unpressed the voltage of the pin will float (causing occasional errors). To get the Arduino to reliably read the pin as HIGH when the button is unpressed, we add the pull up resistor.
    (note: the first example program uses only one of the two buttons)

    (you can also download the breadboard layout sheet from the bottom of this step)

    The Parts:
      CIRC-07 Breadboard Sheet 2 Pin Header (x4) Pushbutton (x2) 10k ohm Resistor (brown-black-red) (x2) 560 ohm Resistor (green-blue-brown) (x2) 5mm Red LED (x1)

      The Circuit and Plugging Everything In:
      A Small Video of Everything Being Plugged in


      The Code: - File > Sketchbook > Examples > Digital > Button
       /* * Button * by DojoDave <http://www.0j0.org> * * Turns on and off a light emitting diode(LED) connected to digital * pin 13, when pressing a pushbutton attached to pin 7. * * http://www.arduino.cc/en/Tutorial/Button */ int ledPin = 13; // choose the pin for the LEDint inputPin = 2; // choose the input pin (for a pushbutton)int val = 0; // variable for reading the pin statusvoid setup() { pinMode(ledPin, OUTPUT); // declare LED as output pinMode(inputPin, INPUT); // declare pushbutton as input}void loop(){ val = digitalRead(inputPin); // read input value if (val == HIGH) { // check if the input is HIGH digitalWrite(ledPin, LOW); // turn LED OFF } else { digitalWrite(ledPin, HIGH); // turn LED ON }} 


      Not Working?
        Light Not Turning On - The pushbutton is square and because of this it is easy to put it in the wrong way. Give it a 90 degree twist and see if it starts working. Light Not Fading - A bit of a silly mistake we constantly made, when you switch from simple on off to fading remember to move the LED wire from pin 13 to pin 9 Underwhelmed? - No worries these circuits are all super stripped down to make playing with the components easy, but once you throw them together the sky is the limit.

        Making it Better:
        On button off button:
        The initial example may be a little underwhelming (ie. I don't really need an Arduino to do this), lets make it a little more complicated. One button will turn the LED on the other will turn the LED off. Change the code to.
         int ledPin = 13; // choose the pin for the LEDint inputPin1 = 3; // button 1int inputPin2 = 2; // button 2void setup() { pinMode(ledPin, OUTPUT); // declare LED as output pinMode(inputPin1, INPUT); // make button 1 an input pinMode(inputPin2, INPUT); // make button 2 an input}void loop(){ if (digitalRead(inputPin1) == LOW) { digitalWrite(ledPin, LOW); // turn LED OFF } else if (digitalRead(inputPin2) == LOW) { digitalWrite(ledPin, HIGH); // turn LED ON }} 
        Upload the program to your board, and start toggling the LED on and off.

        Fading up and down:
        Lets use the buttons to control an analog signal. To do this you will need to change the wire connecting the LED from pin 13 to pin 9, also change this in code.
         int ledPin = 13; ----> int ledPin = 9; 
        Next change the loop() code to read.
         int value = 0;void loop(){ if (digitalRead(inputPin1) == LOW) { value--; } else if (digitalRead(inputPin2) == LOW) { value++; } value = constrain(value, 0, 255); analogWrite(ledPin, value); delay(10);} 
        Changing Fade Speed:
        If you would like the LED to fade faster or slower, there is only one line of code that needs changing;
         delay(10); ----> delay(new #); 
        To fade faster make the number smaller, slower requires a larger number.

Step 10: .:Twisting:. (Potentiometers) - CIRC08

  1. Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Alle 7 Artikel anzeigen

    What We're Doing:
    Along with the digital pins the Arduino has it also has 6 pins which can be used for analog input. These inputs take a voltage (from 0 to 5 volts) and convert it to a digital number between 0 (0 volts) and 1024 (5 volts) (10 bits of resolution). A very useful device that exploits these inputs is a potentiometer (also called a variable resistor). When it is connected with 5 volts across its outer pins the middle pin will read some value between 0 and 5 volts dependent on the angle to which it is turned (ie. 2.5 volts in the middle). We can then use the returned values as a variable in our program.

    (you can also download the breadboard layout sheet from the bottom of this step)

    The Parts:
      CIRC-08 Breadboard Sheet 2 Pin Header (x4) Potentiometer (10k ohm) (x1) 5mm Green LED (x1) 560 ohm Resistor (green-blue-brown) (x1) Wire

      The Circuit and Plugging Everything In:
      A Small Video of Everything Being Plugged in


      The Code: - File > Sketchbook > Examples > Analog > AnalogInput
       /* * AnalogInput * by DojoDave <http://www.0j0.org> * * Turns on and off a light emitting diode(LED) connected to digital * pin 13. The amount of time the LED will be on and off depends on * the value obtained by analogRead(). In the easiest case we connect * a potentiometer to analog pin 2. * * http://www.arduino.cc/en/Tutorial/AnalogInput */int potPin = 2; // select the input pin for the potentiometerint ledPin = 13; // select the pin for the LEDint val = 0; // variable to store the value coming from the sensorvoid setup() { pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT}void loop() { val = analogRead(potPin); // read the value from the sensor digitalWrite(ledPin, HIGH); // turn the ledPin on delay(val); // stop the program for some time digitalWrite(ledPin, LOW); // turn the ledPin off delay(val); // stop the program for some time} 


      Not Working?
        Sporadically Working -This is most likely due to a slightly dodgy connection with the potentiometer's pins. This can usually be conquered by taping the potentiometer down. The Control is Backward - There are two ways to fix this, either switch the red and black wires connected to the potentiometer, or turn the potentiometer around. (sorry sometimes the factory ships us a backwards potentiometer) Still Backward - You can try operating the circuit upside down. Sometimes this helps.

        Making it Better:
        Threshold Switching:
        Sometimes you will want to switch an output when a value exceeds a certain threshold. To do this with a potentiometer change the loop() code to.
         void loop() { int threshold = 512; if(analogRead(potPin) > threshold){ digitalWrite(ledPin, HIGH);} else{ digitalWrite(ledPin, LOW);}} 
        This will cause the LED to turn on when the value is above 512 (about halfway), you can adjust the sensitivity by changing the threshold value.

        Fading:
        Lets control the brightness of an LED directly from the potentiometer. To do this we need to first change the pin the LED is connected to. Move the wire from pin 13 to pin 9 and change one line in the code.
         int ledPin = 13; ----> int ledPin = 9; 
        Then change the loop code to.
         void loop() { int value = analogRead(potPin) / 4; analogWrite(ledPin, value);  } 
        Upload the code and watch as your LED fades in relation to your potentiometer spinning. (Note: the reason we divide the value by 4 is the analogRead() function returns a value from 0 to 1024 (10 bits), and analogWrite() takes a value from 0 to 255 (8 bits) )

        Controlling a Servo:
        This is a really neat example and brings a couple of circuits together. Wire up the servo like you did in CIRC-04, then open the example program Knob ( File > Sketchbook > Examples > Library-Servo > Knob ), then change one line of code.
         int potpin = 0; ----> int potpin = 2; 
        Upload to your Arduino and then watch as the servo shaft turns as you turn the potentiometer.

Step 11: .:Light:. (Photo Resistors) - CIRC09

  1. Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Alle 7 Artikel anzeigen

    What We're Doing:
    Whilst getting input from a potentiometer can be useful for human controlled experiments, what do we use when we want an environmentally controlled experiment? We use exactly the same principles but instead of a potentiometer (twist based resistance) we use a photo resistor (light based resistance). The Arduino cannot directly sense resistance (it senses voltage) so we set up a voltage divider ( http://tinyurl.com/2sunta ). The exact voltage at the sensing pin is calculable, but for our purposes (just sensing relative light) we can experiment with the values and see what works for us. A low value will occur when the sensor is well lit while a high value will occur when it is in darkness.

    (you can also download the breadboard layout sheet from the bottom of this step)

    The Parts:
      CIRC-09 Breadboard Sheet 2 Pin Header (x4) Photo-Resistor (x1) 5mm Green LED (x1) 10k ohm Resistor (brown-black-orange) (x1) 560 ohm Resistor (green-blue-brown) (x1) Wire

      The Circuit and Plugging Everything In:
      A Small Video of Everything Being Plugged in


      The Code: - http://tinyurl.com/crdum6''
       /* * A simple programme that will change the * intensity of an LED based on the amount of * light incident on the photo resistor. * *///PhotoResistor Pinint lightPin = 0; //the analog pin the //photoresistor is //connected to //the photoresistor is not //calibrated to any units so //this is simply a raw sensor value (relative light)//LED Pinint ledPin = 9;//the pin the LED is connected to //we are controlling brightness so //we use one of the PWM (pulse //width modulation pins)void setup(){ pinMode(ledPin, OUTPUT); //sets the led pin to //output} /* * loop() - this function will start after setup * finishes and then repeat */void loop(){ int lightLevel = analogRead(lightPin); //Read the // lightlevel lightLevel = map(lightLevel, 0, 900, 0, 255); //adjust the value 0 to 900 to lightLevel = constrain(lightLevel, 0, 255); //make sure the value is betwween 0 and 255 analogWrite(ledPin, lightLevel); //write the value} 


      Not Working?
        LED is Remaining Dark - This is a mistake we continue to make time and time again, if only they could make an LED that worked both ways. Pull it up and give it a twist. It Isn't Responding to Changes in Light. - Given that the spacing of the wires on the photo-resistor is not standad, it is easy to misplace it. Double check its in the right place Still not quite working? - You may be in a room which is either too bright or dark. Try turning the lights on or off to see if this helps. Or if you have a flashlight near by give that a try.

        Making it Better:
        Reverse the response:
        Perhaps you would like the opposite response. Don't worry we can easily reverse this response just change.
         analogWrite(ledPin, lightLevel); ----> analogWrite(ledPin, 255 - lightLevel); 
        Upload and watch the response change.

        Night light:
        Rather than controlling the brightness of the LED in response to light, lets instead turn it on or off based on a threshold value. Change the loop() code with.
         void loop(){ int threshold = 300; if(analogRead(lightPin) > threshold){ digitalWrite(ledPin, HIGH); }else{ digitalWrite(ledPin, LOW); }} 

        Light controlled servo:
        Lets use our newly found light sensing skills to control a servo (and at the same time engage in a little bit of Arduino code hacking). Wire up a servo connected to pin 9 (like in CIRC-04). Then open the Knob example program (the same one we used in CIRC-08) File > Sketchbook > Examples > Library-Servo > Knob . Upload the code to your board and watch as it works unmodified.
        Using the full range of your servo:
        You'll notice that the servo will only operate over a limited portion of its range. This is because with the voltage dividing circuit we use the voltage on analog pin 0 will not range from 0 to 5 volts but instead between two lesser values (these values will change based on your setup). To fix this play with the val = map(val, 0, 1023, 0, 179); line. For hints on what to do visit http://arduino.cc/en/Reference/Map .

Step 12: .:Temperature:. (TMP36 Precision Temperature Sensor) - CIRC10

  1. Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Alle 7 Artikel anzeigen

    What We're Doing:
    What's the next phenomena we will measure with our Arduino? Temperature. To do this we'll use a rather complicated IC (integrated circuit) hidden in a package identical to our P2N2222AG transistors. It has three pins ground, signal and +5 volts, and is easy to use. It outputs 10 millivolts per degree centigrade on the signal pin (to allow measuring temperatures below freezing there is a 500 mV offset eg. 25 degrees C = 750 mV, 0degrees C = 500mV). To convert this from the digital value to degrees we will use some of the Arduino's maths abilities. Then to display it we'll use one of the IDE's rather powerful features, the debug window. We'll output the value over a serial connection to display on the screen. Let's get to it.

    One extra note, this circuit uses the Arduino IDE's serial monitor. To open this, first upload the program then click the button which looks like a square with an antennae.

    The TMP36 Ddatasheet:
    http://tinyurl.com/plbx38

    (you can also download the breadboard layout sheet from the bottom of this step)

    The Parts:
      CIRC-10 Breadboard Sheet 2 Pin Header (x4) Temperature Sensor (TMP36) (x1) Wire

      The Circuit and Plugging Everything In:
      A Small Video of Everything Being Plugged in


      The Code: - http://tinyurl.com/dfj8rs
       /* --------------------------------------------- * | Arduino Experimentation Kit Example Code | * | CIRC-10 .: Temperature :. | * --------------------------------------------- * * A simple program to output the current temperature * to the IDE's debug window * For more details on this circuit: * http://tinyurl.com/c89tvd *///TMP36 Pin Variablesint temperaturePin = 0;//the analog pin the TMP36's //Vout pin is connected to //the resolution is //10 mV / degree centigrade //(500 mV offset) to make //negative temperatures an optionvoid setup(){ Serial.begin(9600); //Start the serial connection //with the copmuter //to view the result open the //serial monitor //last button beneath the file //bar (looks like a box with an //antenae)} void loop() // run over and over again{ float temperature = getVoltage(temperaturePin); //getting the voltage reading from the //temperature sensortemperature = (temperature - .5) * 100;//converting from 10 mv //per degree wit 500 mV offset to //degrees ((volatge - 500mV) times 100) Serial.println(temperature); //printing the result delay(1000); //waiting a second}/* * getVoltage() - returns the voltage on the analog input * defined by pin */float getVoltage(int pin){ return (analogRead(pin) * .004882814);//converting from a 0 //to 1024 digital range // to 0 to 5 volts //(each 1 reading equals ~ 5 millivolts} 


      Not Working?
        Nothing Seems to Happen - This program has no outward indication it is working. To see the results you must open the Arduino IDE's serial monitor. Gibberish is Displayed - This happens because the serial monitor is receiving data at a different speed than expected. To fix this, click the pull-down box that reads "*** baud" and change it to "9600 baud". Temperature Value is Unchanging. - Try pinching the sensor with your fingers to heat it up or pressing a bag of ice against it to cool it down.(instructions on previous page)

        Making it Better:
        Outputting voltage:
        This is a simple matter of changing one line. Our sensor outputs 10mv per degree centigrade so to get voltage we simply display the result of getVoltage().

        delete the line temperature = (temperature - .5) * 100;

        Outputting degrees Fahrenheit:
        Again this is a simple change requiring only math. to go degrees C ----> degrees F we use the formula.
        ( F = C * 1.8) + 32 )
        add the line
         temperature = (((temperature - .5) * 100)*1.8) + 32; before Serial.println(temperature); 
        More informative output:
        Lets add a message to the serial output to make what is appearing in the Serial Monitor more informative. To do this first revert to the original code then change:
         Serial.println(temperature); ----> Serial.print(temperature); Serial.println(" degrees centigrade"); 
        The change to the first line means when we next output it will appear on the same line, then we add the informative text and a new line.
        Changing the serial speed:
        If you ever wish to output a lot of data over the serial line time is of the essence. We are currently transmitting at 9600 baud but much faster speeds are possible. To change this change the line:
         Serial.begin(9600); ----> Serial.begin(115200); 
        Upload the sketch turn on the serial monitor, then change the speed from 9600 baud to 115200 baud in the pull down menu. You are now transmitting data 12 times faster.

Step 13: .:Larger Loads:. (Relays) - CIRC11

  1. Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Arduino Tutorial Bundle:. Arduino Experimentation Kit :.  (ARDX)

    Alle 7 Artikel anzeigen

    What We're Doing:
    The final circuit is a bit of a test. We combine what we learned about using transistors in CIRC03 to control a relay. A relay is an electrically controlled mechanical switch. Inside the little plastic box is an electromagnet that, when energized, causes a switch to trip (often with a very satisfying clicking sound). You can buy relays that vary in size from a quarter of the size of the one in this kit up to as big as a fridge, each capable of switching a certain amount of current. They are immensely fun because there is an element of the physical to them. While all the silicon we've played with to this point is fun sometimes you just want to wire up a hundred switches to control something magnificent. Relays give you the ability to dream it up then control it with your Arduino. Now to using todays technology to control the past. (The 1N4001 diode is acting as a flyback diode for details on why its there visit: http://tinyurl.com/b559mx)

    (you can also download the breadboard layout sheet from the bottom of this step)

    The Parts:
      CIRC-11 Breadboard Sheet 2 Pin Header (x4) Transistor (P2N2222AG) (x1) Relay (DPDT) (x1) 2.2k ohm Resistor (red-red-red) (x1) 560 ohm Resistor (red-red-red) (x2) 5mm Red LED (x1) 5mm Green LED (x1) Diode (1n4001) (x1)

      The Circuit and Plugging Everything In:
      A Small Video of Everything Being Plugged in


      The Code: - File > Sketchbook > Examples > Digital > Blink
       /* * Blink * * The basic Arduino example. Turns on an LED on for one second, * then off for one second, and so on... We use pin 13 because, * depending on your Arduino board, it has either a built-in LED * or a built-in resistor so that you need only an LED. * * http://www.arduino.cc/en/Tutorial/Blink */int ledPin = 2; // *********** CHANGE TO PIN 2 ************void setup() // run once, when the sketch starts{ pinMode(ledPin, OUTPUT); // sets the digital pin as output}void loop() // run over and over again{ digitalWrite(ledPin, HIGH); // sets the LED on delay(1000); // waits for a second digitalWrite(ledPin, LOW); // sets the LED off delay(1000); // waits for a second} 


      Not Working?
        Nothing Happens - The example code uses pin 13 and we have the relay connected to pin 2. Make sure you made this change in the code. No Clicking Sound - The transistor or coil portion of the circuit isn't quite working. Check the transistor is plugged in the right way. Not Quite Working - The included relays are designed to be soldered rather than used in a breadboard. As such you may need to press it in to ensure it works. (and it may pop out occasionally)

        Making it Better:
        Controlling a Motor
        In CIRC-03 we controlled a motor using a transistor. However if you want to control a larger motor a relay is a good option. To do this simply remove the red LED, and connect the motor in its place (remember to bypass the 560 Ohm resistor)

        Controlling Motor Direction
        A bit of a complicated improvement to finish. To control the direction of spin of a DC motor we must be able to reverse the direction of current flow through it. To do this manually we reverse the leads. To do it electrically we require something called an h-bridge. This can be done using a DPDT relay to control the motor's direction, wire up the circuit below (DPDT Relay H-Bridge).
        It looks complicated but can be accomplished using only a few extra wires. Give it a try.