Arduino开发从入门到实战程序源代码.docx
《Arduino开发从入门到实战程序源代码.docx》由会员分享,可在线阅读,更多相关《Arduino开发从入门到实战程序源代码.docx(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Arduino开发从入门到实战程序源代码程序源码 第五章炫酷 D LED 灯5.4.2 程序源码 /项目一LED 闪耀灯 int LEDPin=13; void setup() pinMode(LEDPin,OUTPUT);/13 脚设置为输出 void loop() digitalWrite(LEDPin,HIGH);/设定 PIN13 脚为 HIGH = 5V 左右 delay(1000); /设定延时时间,1000 = 1s digitalWrite(LEDPin,LOW);/设定 PIN13 脚为 LOW = 0Vdelay(1000); /设定延时时间,1000 = 1s 5.7 拓
2、展试验 广告灯拓展试验参考程序为:/设置限制 LED 的数字 I/O 脚 int LED1 = 1;int LED2 = 2;int LED3 = 3;int LED4 = 4;int LED5 = 5;int LED6 = 6;/LED 灯花样显示样式 1 子程序 void style_1(void)unsigned char j;for(j=1;j=6;j+) /每隔 200ms 依次点亮 16 引脚相连的 LED 灯 digitalWrite(j,HIGH);/点亮与 j 引脚相连的 LED 灯 delay(200); /延时 200msfor(j=6;j=1;j-)/每隔 200ms
3、依次熄灭与 61 引脚相连的 LED 灯 digitalWrite(j,LOW); /熄灭与 j 引脚相连的 LED 灯 delay(200);/延时 200ms /灯闪耀子程序 void flash(void) unsigned char j,k;for(k=0;k=1;k+)/闪耀两次 for(j=1;j=6;j+) /点亮与 16 引脚相连的 LED 灯 digitalWrite(j,HIGH); /点亮与 j 引脚相连的 LED 灯 delay(200);/延时 200msfor(j=1;j=6;j+)/熄灭与 16 引脚相连的 LED 灯 digitalWrite(j,LOW);/熄
4、灭与 j 引脚相连的 LED 灯 delay(200); /延时 200ms/LED 灯花样显示样式 2 子程序 void style_2(void)unsigned char j,k;k=1; /设置 k 的初值为 1for(j=3;j=1;j-) digitalWrite(j,HIGH);/点亮灯 digitalWrite(j+k,HIGH);/点亮灯 delay(400); /延时 400msk +=2; /k 值加 2k=5;/设置 k 值为 5for(j=1;j=3;j+)digitalWrite(j,LOW); /熄灭灯 digitalWrite(j+k,LOW); /熄灭灯 de
5、lay(400);/延时 400msk -=2;/k 值减 2/LED 灯花样显示样式 3 子程序 void style_3(void)unsigned char j,k; /LED 灯花样显示样式 3 子程序 k=5; /设置 k 值为 5for(j=1;j=3;j+)digitalWrite(j,HIGH);/点亮灯 digitalWrite(j+k,HIGH);/点亮灯 delay(400); /延时 400msdigitalWrite(j,LOW);/熄灭灯 digitalWrite(j+k,LOW);/熄灭灯 k -=2; /k 值减 2k=3;/设置 k 值为 3for(j=2;j
6、=1;j-) digitalWrite(j,HIGH); /点亮灯 digitalWrite(j+k,HIGH);/点亮灯 delay(400); /延时 400msdigitalWrite(j,LOW);/熄灭灯 digitalWrite(j+k,LOW); /熄灭灯 k +=2;/k 值加 2 void setup() unsigned char i;for(i=1;i=6;i+)/依次设置 16 个数字引脚为输出模式 pinMode(i,OUTPUT); /设置第 i 个引脚为输出模式 void loop() style_1(); /样式 1flash(); /闪耀 style_2();
7、/样式 2flash(); /闪耀 style_3(); /样式 3flash();/闪耀第六章按键开关输入642 程序源码 int LED = 13; /设置限制 LED 的数字 I/O 脚 void setup()pinMode(LED,OUTPUT); /设置数字 I/O 引脚为输出模式 void loop() int i; while(1)i=analogRead(A0); /读取模拟 0 口电压值 if(igt;1000) /假如电压值大于 1000(即 4.88V) digitalWrite(LED,HIGH);/设置第 13 引脚为高电平,点亮 LED 灯 else digita
8、lWrite(LED,LOW); /设置第 13 引脚为低电平,熄灭 LED 灯 66 拓展试验 #define LED 13 #define sw 7 int val=0; int old_val=0; int state=0;/定义状态位 void setup() pinMode(LED,OUTPUT); pinMode(sw,INPUT); void loop() val=digitalRead(sw); if(val=HIGH)amp;amp;(old_val=LOW) state=1-state; /状态位取反 delay(10); old_val=val; if(state=1)
9、digitalWrite(LED,HIGH); else digitalWrite(LED,LOW); 第七章触摸开关742 程序源码#define LED 13/设置限制 LED 的数字 I/O 脚void setup()pinMode(LED,OUTPUT);/设置数字 I/O 引脚为输出模式 void loop() int i; while(1)i=digitalRead(10);/读取电压值 if(i=LOW) /假如为低电平 digitalWrite(LED,HIGH);/设置第 13 引脚为高电平,点亮 LED 灯 elsedigitalWrite(LED,LOW);/设置第 13
10、 引脚为低电平,熄灭 LED 灯 76 拓展试验 #define LED 13/设置限制 LED 的数字 I/O 脚 void setup()pinMode(LED,OUTPUT);/设置数字 I/O 引脚为输出模式 void loop() int i; digitalWrite(LED,LOW); i=digitalRead(10); /读取电压值if(i=LOW)/假如为低电平 while(1) digitalWrite(LED,HIGH); /设置第 13 引脚为高电平,点亮 LED 灯 delay(10000); break; 第 第 8 8 章温度与湿度监测842 程序源码 #def
11、ine DHT11_PIN 0 byte read_dht11_dat()/读取 DHT11 数据(每次获得 8 位) byte i = 0; byte result = 0; for(i=0;ilt;8;i+) while(!(PINCamp;_BV(DHT11_PIN); delayMicroseconds(30); if(PINCamp;_BV(DHT11_PIN) result|=(1lt;lt;(7-i); while(PINCamp;_BV(DHT11_PIN); return result;/返回获得的结果 void setup() DDRC|=_BV(DHT11_PIN); P
12、ORTC|=_BV(DHT11_PIN); Serial.begin(19200); Serial.println(Ready);/串口输出提示信息 void loop() byte dht11_dat5; byte dht11_in;byte i; PORTC amp;=_BV(DHT11_PIN); delay(18); PORTC|=_BV(DHT11_PIN); delayMicroseconds(40); DDRC amp;=_BV(DHT11_PIN); delayMicroseconds(40); dht11_in = PINC amp; _BV(DHT11_PIN); if(d
13、ht11_in) Serial.println(dht11 start condition 1 not met); return; delayMicroseconds(80); dht11_in=PINC amp; _BV(DHT11_PIN); if(!dht11_in) Serial.println(dht11 start condition 2 not met); return; delayMicroseconds(80); for(i=0;ilt;5;i+) dht11_dati=read_dht11_dat(); /获得 40 位温度与湿度数据 DDRC|=_BV(DHT11_PIN
14、); PORTC|=_BV(DHT11_PIN); byte dht11_check_sum = dht11_dat0+dht11_dat1+dht11_dat2+dht11_dat3; if(dht11_dat4!=dht11_check_sum)/校验 Serial.println(DHT11 checksum error); Serial.print(Current humdity= ); Serial.print(dht11_dat0,DEC); /显示湿度整数部分 Serial.print(.); Serial.print(dht11_dat1,DEC); /显示湿度小数部分 Ser
15、ial.print(%); Serial.print(temperature = ); Serial.print(dht11_dat2,DEC);/显示温度整数部分 Serial.print(.); Serial.print(dht11_dat3,DEC); /显示温度小数部分 Serial.println(C); 86 拓展试验 #define DHT11_PIN 0 int LED=8; int Buzzer=7; byte read_dht11_dat() byte i = 0; byte result = 0; for(i=0;ilt;8;i+) while(!(PINCamp;_BV
16、(DHT11_PIN); delayMicroseconds(30); if(PINCamp;_BV(DHT11_PIN) result|=(1lt;lt;(7-i); while(PINCamp;_BV(DHT11_PIN); return result; void setup() DDRC|=_BV(DHT11_PIN); PORTC|=_BV(DHT11_PIN); pinMode(LED,OUTPUT); pinMode(Buzzer,OUTPUT); Serial.begin(19200); Serial.println(Ready); void loop() byte dht11_
17、dat5; byte dht11_in; byte i; PORTC amp;=_BV(DHT11_PIN); delay(18); PORTC|=_BV(DHT11_PIN); delayMicroseconds(40); DDRC amp;=_BV(DHT11_PIN); delayMicroseconds(40); dht11_in = PINC amp; _BV(DHT11_PIN); if(dht11_in) Serial.println(dht11 start condition 1 not met); return; delayMicroseconds(80); dht11_in
18、=PINC amp; _BV(DHT11_PIN);if(!dht11_in) Serial.println(dht11 start condition 2 not met); return; delayMicroseconds(80); for(i=0;ilt;5;i+)/获得 40 位温度与湿度数据 dht11_dati=read_dht11_dat(); DDRC|=_BV(DHT11_PIN); PORTC|=_BV(DHT11_PIN); byte dht11_check_sum = dht11_dat0+dht11_dat1+dht11_dat2+dht11_dat3; if(dh
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Arduino 开发 入门 实战 程序 源代码
限制150内