使用按键(PUSHBUTTON)控制LED灯号的开关,当按键被按下时打开LED灯号,按键放开时关闭LED灯号。
材料
Arduino的主板×1
LED×1
按钮或开关开关×1
10K电阻×1
面包板×1
单心线X N
接线
把LED接到PIN13,长脚(阳极)接到PIN13,短脚(阴极)接到GND;
按钮一支脚接到+5 V;
PIN2接到按钮的另一支脚,同一支脚位接一个10K的电阻连到GND;
源码如下:
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
说明:
L01〜L02:定义按键与LED的脚位,按键接在PIN2码,而LED接在PIN13;
L16:读取按键的状态并保存到buttonState变数里;
L20〜L26:这支程式的目的是按下按键时要打开LED灯号,放开按键时要关闭的LED灯号,因此,假如buttonState为高,代表按键状态是按下(压制)的,此时要打开LED,反之,假如buttonState为低,代表按键状态是放开的,此时要关闭LED。
注:这支是Arduino的内建的程序,点选
File > Examples > 2Digital > Button
就可以找到。
int num=10;//定义LED闪烁次数
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serialbegin(9600);
}
void loop() {
Led_Blink();//LED闪烁子程序
Serialprintln(num);//串口输出监视num的数值
}
void Led_Blink()//LED闪烁子程序
{
if(num>0)
{
num--;
digitalWrite(LED_BUILTIN, HIGH);
delay(300);
digitalWrite(LED_BUILTIN, LOW);
delay(300);
}
else
{
digitalWrite(LED_BUILTIN, LOW);
}
}
#include <MsTimer2h>
// 定义LED的引脚
#define LED_PIN_A 1
#define LED_PIN_B 2
// 时间定义宏
#define TM_MS(n) (n)
static uint16_t timerCntA;
static uint16_t timerCntB;
void TimerCbk (void);
void setup()
{
pinMode(LED_PIN_A , OUTPUT);
pinMode(LED_PIN_B , OUTPUT);
// 设置为每1ms调用一次TimerCbk函数。
MsTimer2::set(1, TimerCbk);
MsTimer2::start();
}
void loop()
{
if (timerCntA >= TM_MS(1000))
{
digitalWrite(LED_PIN_A, !digitalRead(LED_PIN_A));
timerCntA = 0;
}
if (timerCntB >= TM_MS(3000))
{
digitalWrite(LED_PIN_B, !digitalRead(LED_PIN_B));
timerCntB = 0;
}
}
void TimerCbk (void)
{
(timerCntA < UINT16_MAX) (timerCntA++) : (timerCntA = 0);
(timerCntB < UINT16_MAX) (timerCntB++) : (timerCntB = 0);
}
位于loop
int vol= analogRead(A0);
vol = map(sensorValue, 0, 1023, 0, 5);
if (vol==1)
以上就是关于arduino怎么用按钮控制小灯全部的内容,包括:arduino怎么用按钮控制小灯、arduino 怎么让灯闪烁之后停下、arduino编程单片机 控制让两盏led灯各自闪烁,一盏灯亮1秒然后灭1秒,并保持此频率闪烁。另等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)