极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: 蓝色骨骨头

求大神指导按键控制三色灯的问题

[复制链接]
 楼主| 发表于 2015-4-24 12:55:03 | 显示全部楼层
逝去の唯一 发表于 2015-4-23 22:40
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
const int RED=2;
const int BLUE=3;
const int GREEN=4;

非常感谢 谢谢大神指点
回复 支持 反对

使用道具 举报

发表于 2015-4-26 19:02:17 | 显示全部楼层
本帖最后由 tsaiwn 于 2015-4-26 19:07 编辑
蓝色骨骨头 发表于 2015-4-26 15:04
非常感谢 谢谢大神指点


改短一些, 功能一样
测试后自己稍微研究一下 ..
  1. const int redPin=9;//定义数字9 接口
  2. const int greenPin=10;//定义数字10 接口
  3. const int bluePin=11;//定义数字11 接口
  4. const int buttonPin=7;//定义数字7 接口
  5. int state = 0;
  6. void setup(){
  7.   pinMode(redPin,OUTPUT);//定义小灯接口为输出接口
  8.   pinMode(greenPin,OUTPUT);//定义小灯接口为输出接口
  9.   pinMode(bluePin,OUTPUT);//定义小灯接口为输出接口
  10.   pinMode(buttonPin,INPUT_PULLUP);//定义按键接口为输入接口
  11.   offALL( );
  12. } // setup(
  13. void loop(){
  14.   while(digitalRead(buttonPin)==HIGH){}  // wait for Button
  15.   offALL( );  // 灭灯, 全部
  16.   switch(state) {
  17.     case 0: state = redPin; break;    // 0 ==> 9  (redPin)
  18.     case 9: state = greenPin; break;   // 9 ==> 10
  19.     case greenPin: state = bluePin; break;  // 10 ==> 11
  20.     case bluePin: state = 0; break;  // 11 ==> 0
  21.   } // switch(
  22.   if(state != 0 ) digitalWrite(state, HIGH);  // 9, 10, 11
  23.   // 如果 state 是 0 就不亮灯 !
  24.   delay(258);  //避免按钮按下有抖动影响
  25. }//loop(
  26. void offALL( ) {
  27.   digitalWrite(redPin,LOW);digitalWrite(greenPin,0);digitalWrite(bluePin,0);
  28. } // offALL(
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-29 11:04:02 | 显示全部楼层
tsaiwn 发表于 2015-4-26 19:02
改短一些, 功能一样
测试后自己稍微研究一下 ..

谢谢大神指点
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 12:53 , Processed in 0.038026 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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