蓝色骨骨头 发表于 2015-4-24 12:55:03

逝去の唯一 发表于 2015-4-23 22:40 static/image/common/back.gif
int redPin = 8;
int greenPin = 9;
int bluePin = 10;


我试了一下 为什么是颜色一直在变 按下按键是那个颜色就停在那个颜色 额 什么情况

死磕单片机 发表于 2015-4-26 13:20:56

本帖最后由 死磕单片机 于 2015-4-26 13:22 编辑

const int RED=2;
const int BLUE=3;
const int GREEN=4;
const int BUTTON=5;
int num=0;
void setup()
{
pinMode(RED,OUTPUT);
pinMode(BLUE,OUTPUT);
pinMode(GREEN,OUTPUT);
pinMode(BUTTON,INPUT);
digitalWrite(BUTTON,HIGH);
digitalWrite(RED,1);
digitalWrite(BLUE,1);
digitalWrite(GREEN,1);
// Serial.begin(9600);
}

void loop()
{
    int val=digitalRead(BUTTON);
   
    if(val==0)
    {
      delay(100);
      if(val==0)
      {
         num++;//
         delay(100);
      }
    }
   if(num==1)
      {
      digitalWrite(RED,0);
      digitalWrite(BLUE,1);
      digitalWrite(GREEN,1);
      }
      if(num==2)
      {
      digitalWrite(RED,1);
      digitalWrite(BLUE,0);
      digitalWrite(GREEN,1);
      }
      if(num==3)
      {
      digitalWrite(RED,1);
      digitalWrite(BLUE,1);
      digitalWrite(GREEN,0);
      }
      if(num==4)
      {
      num=0;
      digitalWrite(RED,1);
      digitalWrite(BLUE,1);
      digitalWrite(GREEN,1);
      }
    // Serial.println(num);
}

蓝色骨骨头 发表于 2015-4-26 15:04:38

死磕单片机 发表于 2015-4-26 13:20 static/image/common/back.gif
const int RED=2;
const int BLUE=3;
const int GREEN=4;


非常感谢 谢谢大神指点

tsaiwn 发表于 2015-4-26 19:02:17

本帖最后由 tsaiwn 于 2015-4-26 19:07 编辑

蓝色骨骨头 发表于 2015-4-26 15:04 static/image/common/back.gif
非常感谢 谢谢大神指点

改短一些, 功能一样
测试后自己稍微研究一下 ..const int redPin=9;//定义数字9 接口
const int greenPin=10;//定义数字10 接口
const int bluePin=11;//定义数字11 接口
const int buttonPin=7;//定义数字7 接口
int state = 0;
void setup(){
pinMode(redPin,OUTPUT);//定义小灯接口为输出接口
pinMode(greenPin,OUTPUT);//定义小灯接口为输出接口
pinMode(bluePin,OUTPUT);//定义小灯接口为输出接口
pinMode(buttonPin,INPUT_PULLUP);//定义按键接口为输入接口
offALL( );
} // setup(
void loop(){
while(digitalRead(buttonPin)==HIGH){}// wait for Button
offALL( );// 灭灯, 全部
switch(state) {
    case 0: state = redPin; break;    // 0 ==> 9(redPin)
    case 9: state = greenPin; break;   // 9 ==> 10
    case greenPin: state = bluePin; break;// 10 ==> 11
    case bluePin: state = 0; break;// 11 ==> 0
} // switch(
if(state != 0 ) digitalWrite(state, HIGH);// 9, 10, 11
// 如果 state 是 0 就不亮灯 !
delay(258);//避免按钮按下有抖动影响
}//loop(
void offALL( ) {
digitalWrite(redPin,LOW);digitalWrite(greenPin,0);digitalWrite(bluePin,0);
} // offALL(

蓝色骨骨头 发表于 2015-4-29 11:04:02

tsaiwn 发表于 2015-4-26 19:02 static/image/common/back.gif
改短一些, 功能一样
测试后自己稍微研究一下 ..

谢谢大神指点
页: 1 [2]
查看完整版本: 求大神指导按键控制三色灯的问题