gthrtg 发表于 2015-12-10 17:59:58

求助啊

这里n1==0 灯1灭就是按下按钮一电一灭怎么不行 求助该写在哪里或者怎么改

#define KEY A0
#define KEY1 A1

int LED1 = 10;
int LED2 = 2;
int LED3 = 3;
int LED4 = 4;
int LED5 = 5;
int LED6 = 6;
int LED7 = 7;
int LED8 = 8;


int latchPin = 13;
int clockPin = 12;
int dataPin = 11;

int KEY_NUM = 0;
int KEY1_NUM = 0;

long randNumber;

void setup ()
{
Serial.begin(9600);
pinMode(latchPin,OUTPUT);digitalWrite(latchPin,HIGH);
pinMode(clockPin,OUTPUT);digitalWrite(clockPin,HIGH);
pinMode(dataPin,OUTPUT);digitalWrite(dataPin,HIGH);
pinMode(KEY,INPUT_PULLUP);
pinMode(KEY1,INPUT_PULLUP);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(LED5,OUTPUT);
pinMode(LED6,OUTPUT);
pinMode(LED7,OUTPUT);
pinMode(LED8,OUTPUT);
randomSeed(analogRead(A5));
}
void loop()
{
int n1 =digitalRead(A1);
int n =digitalRead(A0);

   if(n1==0){
digitalWrite(LED1,LOW);
}

if(n==0)
{
    delay(1000);
for(int a=0; a<256; a++)

{
    digitalWrite(latchPin,LOW);
    shiftOut(dataPin,clockPin,MSBFIRST,a);
    digitalWrite(latchPin,HIGH);
   
randNumber = random(1,9);
Serial.println(randNumber);

if(randNumber==1 ){
digitalWrite(LED1,HIGH);
}

if(randNumber==2 ){
digitalWrite(LED2,HIGH);
}

if(randNumber==3 ){
digitalWrite(LED3,HIGH);
}

if(randNumber==4 ){
digitalWrite(LED4,HIGH);
}

if(randNumber==5 ){
digitalWrite(LED5,HIGH);
}

if(randNumber==6 ){
digitalWrite(LED6,HIGH);
}

if(randNumber==7 ){
digitalWrite(LED7,HIGH);
}

if(randNumber==8 ){
digitalWrite(LED8,HIGH);
}


delay(230);

   
}
}
}

Super169 发表于 2015-12-10 18:35:52

做 key input, 為什麼要用 A0 A1?
"这里n1==0 灯1灭就是按下按钮一电一灭怎么不行" - 有什麼不行? 怎麼不說出來?
程式中大部份時間都在 for(int a=0; a<256; a++) 之內, 應該不可以有即時回應.
每一分鐘才有一刻的機會.長按 A1 等 一分鐘, 燈也不灭嗎?

gthrtg 发表于 2015-12-10 19:05:06

Super169 发表于 2015-12-10 18:35
做 key input, 為什麼要用 A0 A1?
"这里n1==0 灯1灭就是按下按钮一电一灭怎么不行" - 有什麼不行? 怎麼不說 ...

就是没反应 我想要按钮即使回应 就是按一下灯灭 不要延时 该怎么改

Super169 发表于 2015-12-10 22:46:43

gthrtg 发表于 2015-12-10 19:05 static/image/common/back.gif
就是没反应 我想要按钮即使回应 就是按一下灯灭 不要延时 该怎么改

先想想自己的流程吧.   
在什麼時候按下去才有反應, 為什麼長按 1 分鐘才可以.
再想想如何把原本的 for loop 用 loop() 去完成, 又或簡單一點次 delay(230) 前或後 去檢查一下按鏻的狀況吧.
页: [1]
查看完整版本: 求助啊