# Lab1 LED ## Members: 411085031 劉又瑄 410985004 陳文彥 411085020 林漢昕 ## Principle: Use high and low signal to control a LED. ## Program: ```c= byte n = 8; byte LED[][]{{22, 24, 26, 28, 30, 32, 34, 36}, {23, 25, 27, 29, 31, 33, 35, 37}} void setup() { for (int i = 0; i < n; i++) { pinMode(LED[i], OUTPUT); digitalWrite(LED[i], 0); pinMode(LED1[i], OUTPUT); digitalWrite(LED1[i], 1); } } void toDigit(int num, int indexOfLight) { int index = 0; while (num) { digitalWrite(LED[indexOfLight][index++], (num + indexOfLight) & 1); num /= 2; } } void loop() { for (int i = 0; i < 10000; i++) { toDigit(i % 100, 0); toDigit(i / 100, 1); delay(5); for (int i = 0; i < n; i++) { digitalWrite(LED[0][i], 0); digitalWrite(LED[1][i], 1); } } } ``` ## Description ### ``setup()`` Set up the output pin. ### ``toDigit(int num, int indexOfLight)`` Transform num to LED digit, use indexOfLight to select LED we want to control. ### ``loop()`` From 0 to 1, use``toDigit()``to light the LED. ## Result ### [影片連結](https://drive.google.com/drive/folders/1lTCeihTz7mRnRrKLgFJRyaz3LuA85ZoF) ![](https://i.imgur.com/36zspQE.png =600x) ![](https://i.imgur.com/foKl9PA.png =600x)