نحتاج الى المكونات التالية
Arduino Uno
اردوينو اونو
27x LED's
ثنائي ضوئي عدد 27
9x 220 ohm Resistors
مقاومة 220 اوم عدد 9
3x NPN Transistors (for example: 2N2222, BC547, 2N3904)
ترانستر من نوع npn عدد 3 مثل ( 2N2222,او BC547,او 2N3904)
اولا
نلحم الثنائيات كما موضح في الصوره ثم نربطها بالاردوينو وبقيه المكونات كما موضح في الصورة
ثم نكتب الكود _________________________________________________
void setup() {
for (int i = 1; i <= 13; i++)
pinMode(i, OUTPUT);
for (int i = 10; i <=13; i++)
digitalWrite(i, HIGH);
}
void loop() {
int del = 300;
//flashes LED's from top to bottom
for (int i = 0; i <= 3; i++)
{
for (int i = 0; i <= 10; i++)
digitalWrite(i, HIGH);
for (int i = 11; i <= 13; i++)
{
digitalWrite(i, LOW);
delay(del);
}
for (int i = 11; i <= 13; i++)
{
digitalWrite(i, HIGH);
delay(del);
}
}
//flashes LED's in a downwards spiral
for (int i = 0; i <= 10; i++)
digitalWrite(i, LOW);
for (int i = 0; i < 3; i++)
{
flash(del, 0, 0, i);
flash(del, 1, 0, i);
flash(del, 2, 0, i);
flash(del, 2, 1, i);
flash(del, 2, 2, i);
flash(del, 1, 2, i);
flash(del, 0, 2, i);
flash(del, 0, 1, i);
}
//flashes LED's in one random column from top to bottom
for (int i = 0; i <= 9; i++)
{
int x = random(3);
int y = random(3);
for (int i = 0; i <= 2; i++)
{
flash(del+50, x, y, i);
}
delay(del);
}
//randomly flashes LED's
for (int i = 0; i <= 200; i++)
{
int x = random(3);
int y = random(3);
int z = random(3);
flash(10, x, y, z);
}
//flashes LED's from one corner outwards
for (int i = 0; i <= 3; i++)
{
flash(2*del, 0, 0, 0);
for (int i = 2*(del/7); i >= 0; i--)
{
flash(1, 0, 1, 0);
flash(1, 1, 1, 0);
flash(1, 1, 0, 0);
flash(1, 0, 0, 1);
flash(1, 0, 1, 1);
flash(1, 1, 1, 1);
flash(1, 1, 0, 1);
}
for (int i = 2*(del/19); i >= 0; i--)
{
flash(1, 0, 2, 0);
flash(1, 1, 2, 0);
flash(1, 2, 2, 0);
flash(1, 2, 1, 0);
flash(1, 2, 0, 0);
flash(1, 0, 2, 1);
flash(1, 1, 2, 1);
flash(1, 2, 2, 1);
flash(1, 2, 1, 1);
flash(1, 2, 0, 1);
flash(1, 0, 0, 2);
flash(1, 0, 1, 2);
flash(1, 0, 2, 2);
flash(1, 1, 0, 2);
flash(1, 1, 1, 2);
flash(1, 1, 2, 2);
flash(1, 2, 0, 2);
flash(1, 2, 1, 2);
flash(1, 2, 2, 2);
}
}
}
void onOff(boolean state, int x, int y, int z) { //turns on or off led at (x, y, z)
if (state)
{
digitalWrite(z+11, LOW);
digitalWrite((3*x)+y+2, HIGH);
}
else
{
digitalWrite(z+11, HIGH);
digitalWrite((3*x)+y+2, LOW);
}
}
void flash(int msec, int x, int y, int z) { //flashes led at (x, y, z) on and off for msec
onOff(true, x, y, z); //milliseconds
delay(msec);
onOff(false, x, y, z);
}