Arduino: For Loop Iteration

From OnnoWiki
Revision as of 09:02, 3 October 2022 by Onnowpurbo (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Sumber: https://www.arduino.cc/en/Tutorial/ForLoopIteration


Seringkali kita ingin mengulangi serangkaian pin dan melakukan sesuatu untuk masing-masing pin. Misalnya, contoh ini mengedipkan 6 LED yang terpasang pada Arduino atau Genuino dengan menggunakan loop for() untuk menggilir bolak-balik melalui pin digital 2-7. LED dinyalakan dan dimatikan, secara berurutan, dengan menggunakan fungsi digitalWrite() dan delay() .

Kita juga menyebut contoh ini "Knight Rider" untuk mengenang serial TV dari tahun 80-an di mana David Hasselhoff memiliki mesin AI bernama KITT yang mengendarai Pontiac-nya. Mobil itu telah ditambah dengan banyak LED dalam semua ukuran yang memungkinkan melakukan efek mencolok. Secara khusus, ia memiliki tampilan yang memindai bolak-balik melintasi garis, seperti yang ditunjukkan dalam pertarungan seru antara KITT dan KARR ini. Contoh ini menduplikasi tampilan KITT.


Hardware Required

  • Arduino / Genuino Board
  • 6 220 ohm resistor
  • 6 LED
  • kabel jumper
  • breadboard


Rangkaian

ForLoop bb.png
ForLoop2 schem.png


Code

/*
  For Loop Iteration

 Demonstrates the use of a for() loop.
 Lights multiple LEDs in sequence, then in reverse.

 The circuit:
 * LEDs from pins 2 through 7 to ground

 created 2006
 by David A. Mellis
 modified 30 Aug 2011
 by Tom Igoe 

This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/ForLoop
 */

int timer = 100;           // The higher the number, the slower the timing. 

void setup() {
  // use a for loop to initialize each pin as an output:
  for (int thisPin = 2; thisPin < 8; thisPin++) {
    pinMode(thisPin, OUTPUT);
  }
}

void loop() {
  // loop from the lowest pin to the highest:
  for (int thisPin = 2; thisPin < 8; thisPin++) {
    // turn the pin on:
    digitalWrite(thisPin, HIGH);
    delay(timer);
    // turn the pin off:
    digitalWrite(thisPin, LOW);
  }

  // loop from the highest pin to the lowest:
  for (int thisPin = 7; thisPin >= 2; thisPin--) {
    // turn the pin on:
    digitalWrite(thisPin, HIGH);
    delay(timer);
    // turn the pin off:
    digitalWrite(thisPin, LOW);
  }
}

Referensi