首页 > 编程知识 正文

arduino两个个开关控制多个灯程序_两个按钮控制LED灯

时间:2023-05-05 13:23:24 阅读:216466 作者:4172

Repost it use

[mw_shl_code=cpp,true]// Handle the Button 抖动

// by tsaiwn@ydu.edu.tw 育达科大 多媒体与游戏系; 苗栗; 台湾

int btA = 3;  // 5 ?   压下开灯  pin 3 ?  pin 5 ?  change it by yourself; 0.168 second should be enough

int btB = 4;  //  压下熄灭灯

int led = 13;

int bounce = 168;   // bounce time for 抖动判断; you can change it to test it

void setup( ) {

pinMode (btA,INPUT_PULLUP);

pinMode (btB,INPUT_PULLUP);

pinMode (led,OUTPUT);

}

int aStat = HIGH; //没按下是 HIGH (因INPUT_PULLUP)

int bStat = HIGH;

void loop( ) {

if( clickA( ) ) digitalWrite(led,HIGH);

if( clickB( ) ) digitalWrite(led, LOW);

} // loop(

long lastHitAA = 0;

long lastHitBB = 0;

bool clickCheck(int btn, int& status, long& lastTime); // declare

bool clickA( ) {

return clickCheck(btA, aStat, lastHitAA);

}

bool clickB( ) {

return clickCheck(btB, bStat, lastHitBB);

}

//

bool clickCheck(int bt, int& xxStat, long& lastHit) {

int a = digitalRead(bt);

if(a == xxStat) return false;  // no change

int m = millis( );

if(a == LOW) {   // 压下 !

if(m - lastHit  < bounce) return false; // ignore

lastHit = m;  // record the time

return true;   // Yes, you hit it

}

// released btnA  ( Low --> HIGH)

return false;

}

/// End of the Program

// by tsaiwn@ydu.edu.tw 育达科大 多媒体与游戏系; 苗栗; 台湾

//==========================================================[/mw_shl_code]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。