用 bit 的方式來表示每排燈(也恰好為8個)的亮滅
#define PIN_TOTAL 8
int PIN_ARRAY[8] = {4, 5, 6, 7, 8, 9, 10, 11};
void setup()
{
for(int i=0; i<PIN_TOTAL; i++)
{
pinMode(PIN_ARRAY[i], OUTPUT);
}
}
void led_bar(byte data)
{
for(int b=0; b<8; b++)
{
digitalWrite(PIN_ARRAY[b], data & (B10000000>>b));
}
}
void loop()
{
led_bar(B10101010);
delay(500);
led_bar(B01010101);
delay(500);
}
參考下列範例,可檢查 serial monitor 的值。
#define PIN_TOTAL 8
int PIN_ARRAY[8] = {4, 5, 6, 7, 8, 9, 10, 11};
void setup()
{
for(int i=0; i<PIN_TOTAL; i++)
{
pinMode(PIN_ARRAY[i], OUTPUT);
}
Serial.begin(9600);
}
void led_bar(byte data)
{
Serial.println("");
Serial.print(data);
Serial.print("-->");
Serial.print(data, BIN);
Serial.print(": ");
// 逐一取得各個位元
digitalWrite(PIN_ARRAY[0], data & B10000000);
digitalWrite(PIN_ARRAY[1], data & B01000000);
digitalWrite(PIN_ARRAY[2], data & B00100000);
digitalWrite(PIN_ARRAY[3], data & B00010000);
digitalWrite(PIN_ARRAY[4], data & B00001000);
digitalWrite(PIN_ARRAY[5], data & B00000100);
digitalWrite(PIN_ARRAY[6], data & B00000010);
digitalWrite(PIN_ARRAY[7], data & B00000001);
// 由低位元往高位元
/*
for(int b=0; b<8; b++)
{
// digitalWrite(PIN_ARRAY[b], data & (B10000000>>b));
if(data & (B10000000>>b))
{
Serial.print('1');
digitalWrite(PIN_ARRAY[b], HIGH);
}
else
{
Serial.print('0');
digitalWrite(PIN_ARRAY[b], LOW);
}
}
*/
}
void loop()
{
int u= 200;
led_bar(B10000000); delay(u);
led_bar(B01000000); delay(u);
led_bar(B00100000); delay(u);
led_bar(B00010000); delay(u);
led_bar(B00001000); delay(u);
led_bar(B00000100); delay(u);
led_bar(B00000010); delay(u);
led_bar(B00000001); delay(u);
}
#define PIN_TOTAL 8
int PIN_ARRAY[8] = {4, 5, 6, 7, 8, 9, 10, 11};
int u = 100;
void setup()
{
for(int i=0; i<PIN_TOTAL; i++)
{
pinMode(PIN_ARRAY[i], OUTPUT);
}
}
void led_bar(byte data)
{
for(int b=0; b<8; b++)
{
digitalWrite(PIN_ARRAY[b], data & (B10000000>>b));
}
}
void loop()
{
for(int i=0; i<10; i++) { type1(); }
for(int i=0; i<3 ; i++) { type2(); }
for(int i=0; i<5 ; i++) { type3(); }
for(int i=0; i<5 ; i++) { type4(); }
for(int i=0; i<8 ; i++) { type5(); }
for(int i=0; i<5 ; i++) { type6(); }
for(int i=0; i<10; i++) { type7(); }
for(int i=0; i<10; i++) { type8(); }
for(int i=0; i<10; i++) { type9(); }
}
void type1()
{
led_bar(B10101010); delay(u);
led_bar(B01010101); delay(u);
}
void type2()
{
led_bar(B10000000); delay(u);
led_bar(B01000000); delay(u);
led_bar(B00100000); delay(u);
led_bar(B00010000); delay(u);
led_bar(B00001000); delay(u);
led_bar(B00000100); delay(u);
led_bar(B00000010); delay(u);
led_bar(B00000001); delay(u);
led_bar(B00000010); delay(u);
led_bar(B00000100); delay(u);
led_bar(B00001000); delay(u);
led_bar(B00010000); delay(u);
led_bar(B00100000); delay(u);
led_bar(B01000000); delay(u);
led_bar(B10000000); delay(u);
}
void type3()
{
led_bar(B11111111); delay(u);
led_bar(B00000000); delay(u);
}
void type4()
{
led_bar(B11100000); delay(u);
led_bar(B01110000); delay(u);
led_bar(B00111000); delay(u);
led_bar(B00011100); delay(u);
led_bar(B00001110); delay(u);
led_bar(B00000111); delay(u);
led_bar(B10000011); delay(u);
led_bar(B11000001); delay(u);
}
void type5()
{
led_bar(B10000001); delay(u);
led_bar(B01000010); delay(u);
led_bar(B00100100); delay(u);
led_bar(B00011000); delay(u);
led_bar(B00100100); delay(u);
led_bar(B01000010); delay(u);
}
void type6()
{
led_bar(B00000000); delay(u);
led_bar(B10000001); delay(u);
led_bar(B11000011); delay(u);
led_bar(B11100111); delay(u);
led_bar(B11111111); delay(u);
led_bar(B01111110); delay(u);
led_bar(B00111100); delay(u);
led_bar(B00011000); delay(u);
}
void type7()
{
led_bar(B00000000); delay(u);
led_bar(B11111111); delay(u);
}
void type8()
{
led_bar(B11001100); delay(u);
led_bar(B00110011); delay(u);
}
void type9()
{
led_bar(B11110000); delay(u);
led_bar(B00001111); delay(u);
}
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing