/*
1.開機led閃三下
2.sw1右移
3.sw2左移
4.sw3內縮外放
5.漸近燈
*/
int ledPin[] = {2, 3, 4, 5, 6, 7, 8, 9};
int bootTable1[] = {0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00,};
int pilliTable1[] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00};
int pilliTable2[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00};
int pilliTable3[] = {0x081, 0x42, 0x24, 0x18, 0x24, 0x42, 0x81, 0x00};
int pilliTable4[] = {0x080, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0x00};
int buttonPin[] = {10, 11, 12, 13};
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;
int num1 = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;
int delaytime = 200;
int i, j;
void setup()
{
for (i = 0; i < 8; i++)
{
pinMode(ledPin[i], OUTPUT);
}
for (j = 0; j < 4; j++)
{
pinMode(buttonPin[j], INPUT);
}
for (num5 = 0; num5 < 6; num5++)
{
out(bootTable1[num5]);
delay(delaytime);
}
}
void loop()
{
buttonState1 = digitalRead(buttonPin[0]);
buttonState2 = digitalRead(buttonPin[1]);
buttonState3 = digitalRead(buttonPin[2]);
buttonState4 = digitalRead(buttonPin[3]);
if (buttonState1 == LOW)
{
for (num1 = 0; num1 < 9; num1++)
{
out(pilliTable1[num1]);
delay(delaytime);
}
}
else if (buttonState2 == LOW)
{
for (num2 = 0; num2 < 9; num2++)
{
out(pilliTable2[num2]);
delay(delaytime);
}
}
else if (buttonState3 == LOW)
{
for (num3 = 0; num3 < 8; num3++)
{
out(pilliTable3[num3]);
delay(delaytime);
}
}
else if (buttonState4 == LOW)
{
for (num4 = 0; num4 < 9; num4++)
{
out(pilliTable4[num4]);
delay(delaytime);
}
}
}
void out(byte data)
{
for (j = 0; j < 7; j++)
{
if (data % 2 == 1)
digitalWrite(ledPin[j], HIGH);//
else
digitalWrite(ledPin[j], LOW);
data = data / 2;
}
}
法二:
int ledPin[] = {2, 3, 4, 5, 6, 7, 8, 9};
int bootTable1[] = {0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00,};
int pilliTable1[] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00};
int pilliTable2[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00};
int pilliTable3[] = {0x081, 0x42, 0x24, 0x18, 0x24, 0x42, 0x81, 0x00};
int pilliTable4[] = {0x080, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0x00};
int buttonPin[] = {10, 11, 12, 13};
int buttonState[] = {0,0,0,0};
int num1 = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;
int delaytime = 200;
int i, j;
void setup()
{
for (i = 0; i < 8; i++)
{
pinMode(ledPin[i], OUTPUT);
}
for (j = 0; j < 4; j++)
{
pinMode(buttonPin[j], INPUT);
}
for (num5 = 0; num5 < 6; num5++)
{
out(bootTable1[num5]);
delay(delaytime);
}
for (i = 0; i < 3; i++)
{
tone(14, 3000, 100); delay(delaytime);
}
}
void loop()
{
buttonState[0] = digitalRead(buttonPin[0]);
buttonState[1] = digitalRead(buttonPin[1]);
buttonState[2] = digitalRead(buttonPin[2]);
buttonState[3] = digitalRead(buttonPin[3]);
if (buttonState[0] == LOW)
{
for (num1 = 0; num1 < 9; num1++)
{
out(pilliTable1[num1]);
delay(delaytime);
}
}
else if (buttonState[1] == LOW)
{
for (num2 = 0; num2 < 9; num2++)
{
out(pilliTable2[num2]);
delay(delaytime);
}
}
else if (buttonState[2] == LOW)
{
for (num3 = 0; num3 < 8; num3++)
{
out(pilliTable3[num3]);
delay(delaytime);
}
}
else if (buttonState[3] == LOW)
{
for (num4 = 0; num4 < 9; num4++)
{
out(pilliTable4[num4]);
delay(delaytime);
}
}
}
void out(byte data)
{
for (j = 0; j < 7; j++)
{
if (data % 2 == 1)
digitalWrite(ledPin[j], HIGH);//
else
digitalWrite(ledPin[j], LOW);
data = data / 2;
}
}
2020年2月2日 星期日
訂閱:
張貼留言 (Atom)
algorithm
#include <iostream> #include <string.h> using namespace std; int main(int argc, char** argv) { for(int j=2;j<=100;j++)//j...
-
本文旨在補充《 超圖解Arduino互動設計入門 》第18章「RFID無線識別裝置與問答遊戲製作」單元,書本採用的RFID讀卡機模組是採用9600bps, TTL序列通訊介面,RFID的通訊頻率為125KHz。這種模組的接線和程式都很簡單,每當感測到RFID卡,讀卡機就把...
-
#include "reg51.h" main() { void delay(int); int i ,j; char seg[10]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x9...
-
setw [C++] 使cout印出格式對齊-setw 設定輸出的欄位長度 85138 0 C/C++ 最近在一些程式,需要用到命令提示字元模式來印出結果,有時候我們會像表格一樣要每一筆資料可能有兩到三個欄位,但這時候,印出時都會因為印出的文字或數字太長而使排版跑掉 但是在...
沒有留言:
張貼留言