预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

目录: TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc381975424"1串口控制LED灯。 PAGEREF_Toc381975424\h1 HYPERLINK\l"_Toc381975425"2数码管骰子 PAGEREF_Toc381975425\h3 HYPERLINK\l"_Toc381975426"3滚珠开关 PAGEREF_Toc381975426\h6 HYPERLINK\l"_Toc381975427"4以正弦波亮度渐变 PAGEREF_Toc381975427\h7 HYPERLINK\l"_Toc381975428"5LED跑马灯 PAGEREF_Toc381975428\h8 HYPERLINK\l"_Toc381975429"总结 PAGEREF_Toc381975429\h9 1串口控制LED灯。 1功能:通过串口控制哪个灯发光及发光亮度 2程序代码: charbuffer[18]; intred,green,blue; intRedPin=11; intYellowPin=10; intBluePin=9; voidsetup() { Serial.begin(9600); Serial.flush(); pinMode(RedPin,OUTPUT); pinMode(YellowPin,OUTPUT); pinMode(BluePin,OUTPUT); } voidloop() { if(Serial.available()>0) { intindex=0; delay(100); intnumChar=Serial.available(); if(numChar>15) { numChar=15; } while(numChar--) { buffer[index++]=Serial.read(); } splitString(buffer); } } voidsplitString(char*data) { Serial.print("Dataentered:"); Serial.println(data); char*parameter; parameter=strtok(data,","); while(parameter!=NULL) { setLED(parameter); parameter=strtok(NULL,","); } for(intx=0;x<16;x++) { buffer[x]='\0'; } Serial.flush(); } voidsetLED(char*data) { if((data[0]=='r')||(data[0]=='R')) { intAns=strtol(data+1,NULL,10); Ans=constrain(Ans,0,255); analogWrite(RedPin,Ans); Serial.print("Redissetto:"); Serial.println(Ans); } if((data[0]=='y')||(data[0]=='Y')) { intAns=strtol(data+1,NULL,10); Ans=constrain(Ans,0,255); analogWrite(YellowPin,Ans); Serial.print("Yellowissetto:"); Serial.println(Ans); } if((data[0]=='b')||(data[0]=='B')) { intAns=strtol(data+1,NULL,10); Ans=constrain(Ans,0,255); analogWrite(BluePin,Ans); Serial.print("Blueissetto:"); Serial.println(Ans); } } 3程序截图: 设置:黄灯亮度1,红灯亮度50,绿灯亮度100, 输入:r1b50g100 可以观察到。绿灯最亮,红灯次之,黄灯最暗 4动态效果:见视频: 2数码管骰子 1功能介绍:当按下一个按钮时候,数码管数字渐变,频率由快而慢,并最后随机的停在一个数字上。 2程序代码: voidclearNum() { for(inti=4;i<=10;i++) { digitalWrite(i,LOW); } } voidshowNum1() { clearNum(); digitalWrite(9,HIGH); digitalWrite(10,HIGH); } voidshowNum2() { clearNum(); digitalWrite(5,HIGH); digital