Biarkan layout sirkuit pada proyek 09, kita akan menambahkan potentiiometer pada rangkaian tersebut. Dengan potentiometer kita dapat mengubah kecepatan LED saat "berlari".
Komponen yang diperlukan
Skema
Sketch
byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // Create array for LED pins
int ledDelay; // delay between changes
int direction = 1;
int currentLED = 0;
unsigned long changeTime;
int potPin = 2; // select the input pin for the potentiomete
void setup() {
for (int x=0; x<10; x++) { // set all pins to output
pinMode(ledPin[x], OUTPUT);
}
changeTime = millis();
}
void loop() {
ledDelay = analogRead(potPin); // read the value from the pot
if ((millis() - changeTime) > ledDelay) { // if it has been ledDelay ms since last change
changeLED();
changeTime = millis();
}
}
void changeLED() {
for (int x=0; x<10; x++) { // turn off all LED's
digitalWrite(ledPin[x], LOW);
}
digitalWrite(ledPin[currentLED], HIGH); // turn on the current LED
currentLED += direction; // increment by the direction value
// change direction if we reach the end
if (currentLED == 9) {direction = -1;}
if (currentLED == 0) {direction = 1;}
}
Penjelasan Sketch
Sketch kita cukup mirip dengan proyek sebelumnya. Kita hanya menambahkan potentiometer pada sisi hardware dan pada sisi program kita menambahkan perintah untuk membaca input dari potenstiometer dan digunakan untuk mengatur kecepatan LED berlari.
int potPin = 2;
perintah diatas mendeklarasikan variable untuk menampung input dari potentiometer, tipe data adalah integer. Perintah yang digunakan untuk membaca input adalah analogRead.
Analog pin dapat membaca voltage dari 0 - 5 volts, dalam integer dari 0 (0 volts) sampai 1.023 (5 volts). Berarti resolusi 4.9mV per unit (5 volts / 1.024 units).
ledDelay = analogRead(potPin);
Kita membaca input dari potentiometer dan meng-adjust delay diantara 0 dan 1023 millisecond dengan menggunakan nilai dari ledDelay yang diperoleh dari input potentiometer. Perhatikan kita tidak perlu mengatur analog sebagai input atau output seperti juga dengan digital pin
Tantangan Programming
Artikel Terkait
Apa itu poteionsiometer
Artikel sebelumnya Proyek Led Chase Effect
Artikel selanjutnya Proyek Led Dimmer
Komponen yang diperlukan
- 4.7 K.Ohm Rotaray Potentiometer
Skema
Sketch
byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; // Create array for LED pins
int ledDelay; // delay between changes
int direction = 1;
int currentLED = 0;
unsigned long changeTime;
int potPin = 2; // select the input pin for the potentiomete
void setup() {
for (int x=0; x<10; x++) { // set all pins to output
pinMode(ledPin[x], OUTPUT);
}
changeTime = millis();
}
void loop() {
ledDelay = analogRead(potPin); // read the value from the pot
if ((millis() - changeTime) > ledDelay) { // if it has been ledDelay ms since last change
changeLED();
changeTime = millis();
}
}
void changeLED() {
for (int x=0; x<10; x++) { // turn off all LED's
digitalWrite(ledPin[x], LOW);
}
digitalWrite(ledPin[currentLED], HIGH); // turn on the current LED
currentLED += direction; // increment by the direction value
// change direction if we reach the end
if (currentLED == 9) {direction = -1;}
if (currentLED == 0) {direction = 1;}
}
Penjelasan Sketch
Sketch kita cukup mirip dengan proyek sebelumnya. Kita hanya menambahkan potentiometer pada sisi hardware dan pada sisi program kita menambahkan perintah untuk membaca input dari potenstiometer dan digunakan untuk mengatur kecepatan LED berlari.
int potPin = 2;
perintah diatas mendeklarasikan variable untuk menampung input dari potentiometer, tipe data adalah integer. Perintah yang digunakan untuk membaca input adalah analogRead.
Analog pin dapat membaca voltage dari 0 - 5 volts, dalam integer dari 0 (0 volts) sampai 1.023 (5 volts). Berarti resolusi 4.9mV per unit (5 volts / 1.024 units).
ledDelay = analogRead(potPin);
Kita membaca input dari potentiometer dan meng-adjust delay diantara 0 dan 1023 millisecond dengan menggunakan nilai dari ledDelay yang diperoleh dari input potentiometer. Perhatikan kita tidak perlu mengatur analog sebagai input atau output seperti juga dengan digital pin
Tantangan Programming
- Dengan mengubah program, Anda dapat membuat efek bouncing. Led bergerak dari kiri ke kanan, lalu langsung start dari kanan ke kiri.
- Tantangan kedua, ubah juga program Anda untuk efek bouncing bola yang makin lama makin melemah.
Artikel Terkait
Apa itu poteionsiometer
Artikel sebelumnya Proyek Led Chase Effect
Artikel selanjutnya Proyek Led Dimmer
10 - Project LED Chase Advanced
Reviewed by MCH
on
January 25, 2014
Rating:
No comments: