How to make Arduino Knight Rider circuit

 How to make Arduino Knight Rider circuit






Knight Rider

We have named this example in memory to a TV-series from the 80's where the famous David Hasselhoff had an AI machine driving his Pontiac. The car had been augmented with plenty of LEDs in all possible sizes performing flashy effects.

Thus we decided that in order to learn more about sequential programming and good programming techniques for the I/O board, it would be interesting to use the Knight Rider as a metaphor.

This example makes use of 6 LEDs connected to the pins 2 - 7 on the board using 220 Ohm resistors. The first code example will make the LEDs blink in a sequence, one by one using only digitalWrite(pinNum,HIGH/LOW) and delay(time). The second example shows how to use a for(;;) construction to perform the very same thing, but in fewer lines. The third and last example concentrates in the visual effect of turning the LEDs on/off in a more softer way.



නයිට් රයිඩර්

80 දශකයේ සිට ජනප්‍රිය ඩේවිඩ් හැසල්හෝෆ් සිය පොන්තියාක් පදවන AI යන්ත්‍රයක් තිබූ රූපවාහිනී කතා මාලාවකට අපි මෙම උදාහරණය මතකයේ තබා ඇත්තෙමු. මෝටර් රථය හැකි තරම් විශාල ප්‍රමාණයේ LED වලින් වැඩි දියුණු කර ඇත.


මේ අනුව අපි තීරණය කළේ අනුක්‍රමික ක්‍රමලේඛන සහ I / O පුවරුව සඳහා හොඳ ක්‍රමලේඛන ශිල්පීය ක්‍රම පිළිබඳ වැඩිදුර දැන ගැනීම සඳහා නයිට් රයිඩරය රූපකයක් ලෙස භාවිතා කිරීම සිත්ගන්නාසුළු වනු ඇති බවයි.


මෙම උදාහරණයෙන් පුවරුවේ 2 - 7 අල්ෙපෙනතිවලට සම්බන්ධ කර ඇති LED 6 ක් ඕම් ප්‍රතිරෝධක 220 ක් භාවිතා කරයි. පළමු කේත උදාහරණය මඟින් ඩිජිටල් වයිට් (pinNum, HIGH / LOW) සහ ප්‍රමාදය (වේලාව) පමණක් භාවිතා කරමින් LED එක අනුපිළිවෙලින් දිලිසෙනු ඇත. දෙවන උදාහරණයෙන් පෙන්වන්නේ එකම දෙයක් සිදු කිරීම සඳහා (;;) ඉදිකිරීමක් භාවිතා කරන්නේ කෙසේද යන්නයි. තෙවන හා අවසාන උදාහරණය වඩාත් මෘදු ආකාරයකින් LED සක්‍රිය / අක්‍රිය කිරීමේ දෘශ්‍ය ආචරණය කෙරෙහි අවධානය යොමු කරයි.



code and diagram











code part 01


int pin2 = 2;
int pin3 = 3;
int pin4 = 4;
int pin5 = 5;
int pin6 = 6;
int pin7 = 7;
int timer = 100;
void setup(){
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
pinMode(pin5, OUTPUT);
pinMode(pin6, OUTPUT);
pinMode(pin7, OUTPUT);
}
void loop() {
digitalWrite(pin2, HIGH);
delay(timer);
digitalWrite(pin2, LOW);
delay(timer);
digitalWrite(pin3, HIGH);
delay(timer);
digitalWrite(pin3, LOW);
delay(timer);
digitalWrite(pin4, HIGH);
delay(timer);
digitalWrite(pin4, LOW);
delay(timer);
digitalWrite(pin5, HIGH);
delay(timer);
digitalWrite(pin5, LOW);
delay(timer);
digitalWrite(pin6, HIGH);
delay(timer);
digitalWrite(pin6, LOW);
delay(timer);
digitalWrite(pin7, HIGH);
delay(timer);
digitalWrite(pin7, LOW);
delay(timer);
digitalWrite(pin6, HIGH);
delay(timer);
digitalWrite(pin6, LOW);
delay(timer);
digitalWrite(pin5, HIGH);
delay(timer);
digitalWrite(pin5, LOW);
delay(timer);
digitalWrite(pin4, HIGH);
delay(timer);
digitalWrite(pin4, LOW);
delay(timer);
digitalWrite(pin3, HIGH);
delay(timer);
digitalWrite(pin3, LOW);
delay(timer);
}

Code part 02


nt pinArray[] = {2, 3, 4, 5, 6, 7};
int count = 0;
int timer = 100;
void setup(){
// we make all the declarations at once
for (count=0;count<6;count++) {
pinMode(pinArray[count], OUTPUT);
}
}
void loop() {
for (count=0;count<6;count++) {
digitalWrite(pinArray[count], HIGH);
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(timer);
}
for (count=5;count>=0;count--) {
digitalWrite(pinArray[count], HIGH);
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(timer);
}
}


1 Comments