Project LED ลูกบาศก์
Block Diagram
Part Of Project
1. Arduino uno R3
LED
3. ตัวต้านทาน
Link youtube
Code
int layer[4]={A3,A2,A1,A0}; // ก็ประกาศตัวแปรชื่อ layer เป็นตัวแปรอาร์เรย์ ที่มีขา A3 A2 A 1 A0
int column[16]={13,12,11,10,9,8,7,6,5,4,3,2,1,0,A5,A4}; // ค่าตัวแปรชื่อว่าคอลัมน์เป็นตัวแปรอาร์เรย์เก็บได้ 16 ค่า
int time = 250;
// ในเวลา 250
void setup() //
{
for(int i = 0; i<16; i++) // คำสั่งวน ในถ้า ไอมีค่าน้อยกว่า 16 II บวกไปเรื่อยๆ
{
pinMode(column[i], OUTPUT); //กำหนด pin ที่ต้องการใช้งาน
}
for(int i = 0; i<4; i++)
{
pinMode(layer[i], OUTPUT); //ตั้งค่าชั้นเพื่อส่งออก
}
void loop()
{
turnEverythingOff(); // เปิดปิดทุกอย่าง
flicker On();;// กะพริบบน
turn Everything On();// เปิดทุกอย่างบน delay(time);//เวลาล่าช้า
layerstompUpAndDown();//ชั้นlayerขึ้นและลง
delay(time);เวลาล่าช้า
turnEverythingOff();//เปิดปิดทุกอย่าง
randomflicker();// สุ่มกะพริบ
randomRain();//สุ่มฝน
diagonalRectangle();//สี่เหลี่ยมทแยงมุม
goThroughAllLedsOneAtATime();
flickerOff();//กะพริบปิด
turnEverythingOff();//เปิดทุกอย่างปิด
delay(2000);//เป็นการสั่งทำงานตามที่กำหนดแต่ยังคงแสดงผล ตามคำสั่งก่อนหน้า ต้องการให้หยุดทำงาน 2 วิ } //turn all off void turnEverythingOff() { for(int i = 0; i<16; i++) { digitalWrite(column[i], 1); } for(int i = 0; i<4; i++) { digitalWrite(layer[i], 0); } } //turn all on void turnEverythingOn() { for(int i = 0; i<16; i++) { digitalWrite(column[i], 0); } //turning on layers for(int i = 0; i<4; i++) { digitalWrite(layer[i], 1); } } //turn columns off void turnColumnsOff() { for(int i = 0; i<16; i++) { digitalWrite(column[i], 1); } } //flicker on void flickerOn() { int i = 150; while(i != 0) { turnEverythingOn(); delay(i); turnEverythingOff(); delay(i); i-= 5; } } //up and down single layer stomp void layerstompUpAndDown() { int x = 75; for(int i = 0; i<4; i++) { digitalWrite(layer[i], 0); } for(int y = 0; y<5; y++) { for(int count = 0; count<1; count++) { for(int i = 0; i<4; i++) { digitalWrite(layer[i], 1); delay(x); digitalWrite(layer[i], 0); } for(int i = 4; i !=0; i--) { digitalWrite(layer[i-1], 1); delay(x); digitalWrite(layer[i-1], 0); } } for(int i = 0; i<4; i++) { digitalWrite(layer[i], 1); delay(x); } for(int i = 4; i!=0; i--) { digitalWrite(layer[i-1], 0); delay(x); } } } //flicker off void flickerOff() { turnEverythingOn(); for(int i = 0; i!= 150; i+=5) { turnEverythingOff(); delay(i+50); turnEverythingOn(); delay(i); } } //random flicker void randomflicker() { turnEverythingOff(); int x = 10; for(int i = 0; i !=750; i+=2) { int randomLayer = random(0,4); int randomColumn = random(0,16); digitalWrite(layer[randomLayer], 1); digitalWrite(column[randomColumn], 0); delay(x); digitalWrite(layer[randomLayer], 0); digitalWrite(column[randomColumn], 1); delay(x); } } //random rain void randomRain() { turnEverythingOff(); int x = 100; for(int i = 0; i!=60; i+=2) { int randomColumn = random(0,16); digitalWrite(column[randomColumn], 0); digitalWrite(layer[0], 1); delay(x+50); digitalWrite(layer[0], 0); digitalWrite(layer[1], 1); delay(x); digitalWrite(layer[1], 0); digitalWrite(layer[2], 1); delay(x); digitalWrite(layer[2], 0); digitalWrite(layer[3], 1); delay(x+50); digitalWrite(layer[3], 0); digitalWrite(column[randomColumn], 1); } } //diagonal rectangle void diagonalRectangle() { int x = 350; turnEverythingOff(); for(int count = 0; count<5; count++) { //top left for(int i = 0; i<8; i++) { digitalWrite(column[i], 0); } digitalWrite(layer[3], 1); digitalWrite(layer[2], 1); delay(x); turnEverythingOff(); //middle middle for(int i = 4; i<12; i++) { digitalWrite(column[i], 0); } digitalWrite(layer[1], 1); digitalWrite(layer[2], 1); delay(x); turnEverythingOff(); //bottom right for(int i = 8; i<16; i++) { digitalWrite(column[i], 0); } digitalWrite(layer[0], 1); digitalWrite(layer[1], 1); delay(x); turnEverythingOff(); //bottom middle for(int i = 4; i<12; i++) { digitalWrite(column[i], 0); } digitalWrite(layer[0], 1); digitalWrite(layer[1], 1); delay(x); turnEverythingOff(); //bottom left for(int i = 0; i<8; i++) { digitalWrite(column[i], 0); } digitalWrite(layer[0], 1); digitalWrite(layer[1], 1); delay(x); turnEverythingOff(); //middle middle for(int i = 4; i<12; i++) { digitalWrite(column[i], 0); } digitalWrite(layer[1], 1); digitalWrite(layer[2], 1); delay(x); turnEverythingOff(); //top right for(int i = 8; i<16; i++) { digitalWrite(column[i], 0); } digitalWrite(layer[2], 1); digitalWrite(layer[3], 1); delay(x); turnEverythingOff(); //top middle for(int i = 4; i<12; i++) { digitalWrite(column[i], 0); } digitalWrite(layer[2], 1); digitalWrite(layer[3], 1); delay(x); turnEverythingOff(); } //top left for(int i = 0; i<8; i++) { digitalWrite(column[i], 0); } digitalWrite(layer[3], 1); digitalWrite(layer[2], 1); delay(x); turnEverythingOff(); }
ไม่มีความคิดเห็น:
แสดงความคิดเห็น