极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7912|回复: 3

求助啊

[复制链接]
发表于 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);
  
   
  }
}
}

回复

使用道具 举报

发表于 2015-12-10 18:35:52 | 显示全部楼层
做 key input, 為什麼要用 A0 A1?
"这里n1==0 灯1灭就是按下按钮一电一灭怎么不行" - 有什麼不行? 怎麼不說出來?
程式中大部份時間都在 for(int a=0; a<256; a++) 之內, 應該不可以有即時回應.  
每一分鐘才有一刻的機會.  長按 A1 等 一分鐘, 燈也不灭嗎?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-10 19:05:06 来自手机 | 显示全部楼层
Super169 发表于 2015-12-10 18:35
做 key input, 為什麼要用 A0 A1?
"这里n1==0 灯1灭就是按下按钮一电一灭怎么不行" - 有什麼不行? 怎麼不說 ...

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

使用道具 举报

发表于 2015-12-10 22:46:43 | 显示全部楼层
gthrtg 发表于 2015-12-10 19:05
就是没反应 我想要按钮即使回应 就是按一下灯灭 不要延时 该怎么改

先想想自己的流程吧.   
在什麼時候按下去才有反應, 為什麼長按 1 分鐘才可以.
再想想如何把原本的 for loop 用 loop() 去完成, 又或簡單一點次 delay(230) 前或後 去檢查一下按鏻的狀況吧.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 05:32 , Processed in 0.040727 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表