标题:
Arduino串口控制led程序
[打印本页]
作者:
kdy1
时间:
2018-12-26 16:57
标题:
Arduino串口控制led程序
#include <TimerOne.h>
volatile int i=1 ;
volatile int state=LOW ;
void setup() {
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
attachInterrupt(0,light,LOW);
Timer1.initialize(1000000); //单位微秒,中断时间为1秒
Timer1.attachInterrupt( timerIsr ); //开启定时中断,中断时执行timerIsr函数
}
void loop() {
}
void light()
{i=-i;//按钮切换哪个灯执行timerIsr函数
switch(i){
case -1:
digitalWrite(5, LOW);
timerIsr();
break;
case 1:
digitalWrite(6, LOW);
timerIsr();
break;
default:
digitalWrite(5,LOW);
digitalWrite(6, LOW);
break;
}
}
void timerIsr()//对某个灯执行闪烁
{
state = ! state;
if(i==1)
{
digitalWrite(5, state);
}
Else
{
digitalWrite(6, state);
}
}
复制代码
const int greenPin = 5;
const int bluePin = 6;
const int redPin = 7;//定义针脚
void setup() {
Serial.begin(9600);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(redPin, OUTPUT);
}
void loop() {
while (Serial.available() > 0) {
int green = Serial.parseInt();
int blue = Serial.parseInt();
int red = Serial.parseInt();
Serial.println(green);
Serial.println(blue);
Serial.println(red);
int g = 4 + green;
int b = 4 + blue;
int r = 4 + red;
digitalWrite(g,HIGH); //依次点亮的灯的号码
delay(2000);
digitalWrite(g,LOW);
digitalWrite(b,HIGH);
delay(2000);
digitalWrite(b,LOW);
digitalWrite(r,HIGH);
delay(2000);
digitalWrite(r,LOW);
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1