เป็นการนำ LED สีแดงมาเรียงต่อกันเป็นลูกบาศ์ก 3x3 แล้วมีการเขียนโค้ด arduino กำหนดแสงติดตับของ LED แต่ละตัว หลักๆงานนี้ได้ฝึกทักษะการบัดกรีซะเป็นส่วนใหญ่
อุปกรณ์ที่ใช้
1. LED สีแดง จำนวน 27
2. Transister 2N222 จำนวน 3
3. ตัวต้านทาน 330 โอห์ม จำนวน 9
4. ขาก้างปลา จำนวน 13
5. Arduino uno
6. wire (สายไฟจั้มป์ ผู้-เมีย)
7. สายไฟ
8. แผ่นปริ้นอเนกประสงค์ แบบจุดไข่ปลา
8. หัวแร้ง
9. ตะกั่วบัดกรี
10. ฟิวเจอร์บอร์ดหรือแผ่นกล่องกระดาษ
วิธีการทำ
1. เจาะฟิวเจอร์บอร์ดเป็นจุด 3x3 แต่ละจุดห่างกัน 2.5 เซนติเมตร ขนาดของจุดใส่หลอด LED ได้พอดี ดังรูปด้านล่าง
2. งอขา LED ฝั่งขาแคโทด(ขาสั้น) เป็นดังรูปด้านล่าง จากนั้นนำมาใส่ในแผ่นฟิวเจอร์บอร์ด ทำการจัดเรียงขาแคโทดให้บัดกรีเชื่อมต่อกันได้
3. ทำการต่อ LED ตามแบบข้อ 2 จนครบ 3 ชุด จากนั้นให้ทำการทดสอบ LED แต่ละตัวว่าใช้งานได้หรือไม่โดยการจ่ายไฟและดูว่า LED ติดหรือไม่
4. บัดกรีชุด LED แต่ละชั้นโดยเชื่อมต่อขาแอโนดเข้าด้วยกันระหว่างชั้น(ขาแนวตั้ง) อาจใช้สก็อตเทปพันเพื่อให้ขาติดกันดังรูปด้านล่างในกรณีที่ไม่มีอุปกรณ์สำหรับหนีบขา
5. ออกแบบวงจรสำหรับการวางสายไฟบนแผ่นปริ้น ดังรูปด้านล่าง
6. ต่อวงจรบนแผ่นปริ้นกับบอร์ด arduino ดังรูปด้านล่าง
void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); } void allLayer() { digitalWrite(11, HIGH); digitalWrite(12, HIGH); digitalWrite(13, HIGH); } void noLayer() { digitalWrite(11, LOW); digitalWrite(12, LOW); digitalWrite(13, LOW); } void rotate() { allLayer(); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); delay(100); empty(); digitalWrite(2, HIGH); digitalWrite(6, HIGH); digitalWrite(10, HIGH); delay(100); empty(); digitalWrite(3, HIGH); digitalWrite(6, HIGH); digitalWrite(9, HIGH); delay(100); empty(); digitalWrite(4, HIGH); digitalWrite(6, HIGH); digitalWrite(8, HIGH); delay(100); empty(); noLayer(); } void fill() { digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(8, HIGH); digitalWrite(9, HIGH); digitalWrite(10, HIGH); } void swirl() { digitalWrite(2, HIGH); delay(50); digitalWrite(3, HIGH); delay(50); digitalWrite(4, HIGH); delay(50); digitalWrite(7, HIGH); delay(50); digitalWrite(10, HIGH); delay(50); digitalWrite(9, HIGH); delay(50); digitalWrite(8, HIGH); delay(50); digitalWrite(5, HIGH); delay(50); digitalWrite(6, HIGH); delay(50); } void myName() { //P digitalWrite(11, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(9, HIGH); delay(100); noLayer(); digitalWrite(12, HIGH); delay(100); noLayer(); digitalWrite(13, HIGH); delay(200); noLayer(); digitalWrite(12, HIGH); delay(100); noLayer(); digitalWrite(11, HIGH); delay(100); noLayer(); empty(); //N digitalWrite(11, HIGH); digitalWrite(2, HIGH); digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(8, HIGH); digitalWrite(10, HIGH); delay(100); noLayer(); digitalWrite(12, HIGH); delay(100); noLayer(); digitalWrite(13, HIGH); delay(200); noLayer(); digitalWrite(12, HIGH); delay(100); noLayer(); digitalWrite(11, HIGH); delay(100); noLayer(); empty(); //Y digitalWrite(11, HIGH); digitalWrite(2, HIGH); digitalWrite(4, HIGH); digitalWrite(6, HIGH); digitalWrite(9, HIGH); delay(100); noLayer(); digitalWrite(12, HIGH); delay(100); noLayer(); digitalWrite(13, HIGH); delay(200); noLayer(); digitalWrite(12, HIGH); delay(100); noLayer(); digitalWrite(11, HIGH); delay(100); noLayer(); empty(); //. digitalWrite(11, HIGH); digitalWrite(6, HIGH); delay(100); noLayer(); digitalWrite(12, HIGH); delay(100); noLayer(); digitalWrite(13, HIGH); delay(200); noLayer(); digitalWrite(12, HIGH); delay(100); noLayer(); digitalWrite(11, HIGH); delay(100); noLayer(); empty(); } void empty() { digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, LOW); } void createX() { digitalWrite(2, HIGH); digitalWrite(4, HIGH); digitalWrite(6, HIGH); digitalWrite(8, HIGH); digitalWrite(10, HIGH); delay(1000); digitalWrite(2, LOW); digitalWrite(4, LOW); digitalWrite(6, LOW); digitalWrite(8, LOW); digitalWrite(10, LOW); delay(200); digitalWrite(2, HIGH); digitalWrite(4, HIGH); digitalWrite(6, HIGH); digitalWrite(8, HIGH); digitalWrite(10, HIGH); delay(200); digitalWrite(2, LOW); digitalWrite(4, LOW); digitalWrite(6, LOW); digitalWrite(8, LOW); digitalWrite(10, LOW); delay(200); digitalWrite(2, HIGH); digitalWrite(4, HIGH); digitalWrite(6, HIGH); digitalWrite(8, HIGH); digitalWrite(10, HIGH); delay(200); digitalWrite(2, LOW); digitalWrite(4, LOW); digitalWrite(6, LOW); digitalWrite(8, LOW); digitalWrite(10, LOW); delay(200); digitalWrite(2, HIGH); digitalWrite(4, HIGH); digitalWrite(6, HIGH); digitalWrite(8, HIGH); digitalWrite(10, HIGH); delay(200); digitalWrite(2, LOW); digitalWrite(4, LOW); digitalWrite(6, LOW); digitalWrite(8, LOW); digitalWrite(10, LOW); delay(200); digitalWrite(2, HIGH); digitalWrite(4, HIGH); digitalWrite(6, HIGH); digitalWrite(8, HIGH); digitalWrite(10, HIGH); delay(200); digitalWrite(2, LOW); digitalWrite(4, LOW); digitalWrite(6, LOW); digitalWrite(8, LOW); digitalWrite(10, LOW); delay(500); } void loop() { //FILL - UP AND DOWN digitalWrite(13, HIGH); fill(); delay(200); empty(); noLayer(); digitalWrite(12, HIGH); fill(); delay(100); empty(); noLayer(); digitalWrite(11, HIGH); fill(); delay(200); empty(); noLayer(); digitalWrite(12, HIGH); fill(); delay(100); empty(); noLayer(); digitalWrite(13, HIGH); fill(); delay(200); empty(); noLayer(); digitalWrite(12, HIGH); fill(); delay(100); empty(); noLayer(); digitalWrite(11, HIGH); fill(); delay(200); empty(); noLayer(); digitalWrite(12, HIGH); fill(); delay(100); empty(); noLayer(); digitalWrite(13, HIGH); fill(); delay(200); empty(); noLayer(); digitalWrite(12, HIGH); fill(); delay(100); empty(); noLayer(); digitalWrite(11, HIGH); fill(); delay(200); empty(); noLayer(); digitalWrite(12, HIGH); fill(); delay(100); empty(); noLayer(); digitalWrite(13, HIGH); fill(); delay(200); empty(); noLayer(); delay(1000); //SWIRL - 1 LAYER EACH TIME digitalWrite(13, HIGH); swirl(); delay(10); empty(); noLayer(); digitalWrite(12, HIGH); swirl(); delay(10); empty(); noLayer(); digitalWrite(11, HIGH); swirl(); delay(10); delay(400); empty(); noLayer(); //SWIRL - ALL LAYERS AT ONCE allLayer(); swirl(); delay(400); empty(); noLayer(); delay(1000); //NAME COMES UP myName(); delay(1000); //ROTATING PANE - ALL LAYERS rotate(); rotate(); rotate(); rotate(); rotate(); rotate(); rotate(); rotate(); delay(1000); }
จบการนำเสนอ
Emoticon Emoticon