欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Arduino开发从入门到实战程序源代码.docx

    • 资源ID:61867334       资源大小:24.34KB        全文页数:56页
    • 资源格式: DOCX        下载积分:9.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Arduino开发从入门到实战程序源代码.docx

    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 拓展试验 广告灯拓展试验参考程序为:/设置限制 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 依次熄灭与 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);/熄灭与 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); /熄灭灯 delay(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=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();/样式 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 digitalWrite(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) 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 引脚为低电平,熄灭 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 程序源码 #define 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); PORTC|=_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(dht11_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); 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); /显示湿度小数部分 Serial.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(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_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=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(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); /显示湿度小数部分 Serial.print(%); Serial.print(temperature = ); Serial.print(dht11_dat2,DEC); /显示温度整数部分 Serial.print(.); Serial.print(dht11_dat3,DEC); /显示温度小数部分 Serial.println(C); if(dht11_dat0=25) digitalWrite(LED,HIGH); else digitalWrite(LED,LOW);if(dht11_dat2=28) digitalWrite(Buzzer,HIGH); else digitalWrite(Buzzer,LOW); delay(2000); 第 第 9 9 章气体监测942 程序源码void setup() Serial.begin(9600); void loop() int val; val=analogRead(0);/获得当前气体浓度 Serial.println(val,DEC); /十进制串口输出 delay(1000); 第十章D LCD 显示104 程序设计 2) 试验程序 LCD 显示试验参考程序源代码为: int DI=12;int RW=11; int DB=3,4,5,6,7,8,9,10; /运用数组来定义总线须要的引脚int Enable=2; void LcdCommandWrite(int value) /定义全部引脚int i = 0; for (i=DB0;i lt;= DI;i+) /总线赋值digitalWrite(i,value amp; 01); /因为1602液晶信号识别是D7D0(不是D0D7),这里是 /用来反转信号 value gt;gt;= 1; digitalWrite(Enable,LOW); delayMicroseconds(1); digitalWrite(Enable,HIGH); delayMicroseconds(1); /延时 1ms digitalWrite(Enable,LOW); delayMicroseconds(1); /延时 1ms void LcdDataWrite(int value) /定义全部引脚int i = 0; digitalWrite(DI,HIGH); digitalWrite(RW,LOW); for (i=DB0;i lt;= DB7;i+) digitalWrite(i,value amp; 01);value gt;gt;= 1; digitalWrite(Enable,LOW); delayMicroseconds(1); digitalWrite(Enable,HIGH); delayMicroseconds(1); digitalWrite(Enable,LOW); delayMicroseconds(1); /延时 1ms void setup (void) int i = 0; for (i=Enable;ilt;= DI;i+) pinMode(i,OUTPUT); delay(100); /短暂的停顿后初始化 LCD 用于 LCD 限制须要LcdCommandWrite(0x38); /设置为 8 位接口,2 行显示,5×7 文字大小delay(64); LcdCommandWrite(0x38); /设置为 8 位接口,2 行显示,5×7 文字大小delay(50); LcdCommandWrite(0x38); /设置为 8 位接口,2 行显示,5×7 文字大小delay(20); LcdCommandWrite(0x06); /输入方式设定/自动增量,没有显示移位delay(20); LcdCommandWrite(0x0E); /显示设置/开启显示屏,光标显示,无闪耀delay(20); LcdCommandWrite(0x01); /屏幕清空,光标位置归零delay(100); LcdCommandWrite(0x80); /显示设置/开启显示屏,光标显示,无闪耀delay(20); void loop (void) LcdCommandWrite(0x01); /屏幕清空,光标位置归零delay(10); LcdCommandWrite(0x80+4); delay(10); /写入欢迎信息LcdDataWrite("W"); LcdDataWrite("e");LcdDataWrite("l"); LcdDataWrite("c"); LcdDataWrite("o"); LcdDataWrite("m"); LcdDataWrite("e");LcdDataWrite("!");delay(10); LcdCommandWrite(0xc0); /定义光标位置为第 2 行第 1 个位置delay(10); LcdDataWrite("I"); LcdDataWrite(" "); LcdDataWrite("L"); LcdDataWrite("o"); LcdDataWrite("v"); LcdDataWrite("e");LcdDataWrite(" "); LcdDataWrite("A"); LcdDataWrite("r"); LcdDataWrite("d"); LcdDataWrite("u"); LcdDataWrite("i"); LcdDataWrite("n"); LcdDataWrite("o"); LcdDataWrite("!");delay(5000);第 第 1 11 章电机控制11.4 2) 步进电机试验程序 #include lt;Stepper.hgt; /这里设置步进电机旋转一圈是多少步 #define STEPS 100 /attached to 设置步进电机的步数和引脚 Stepper stepper(STEPS,8,9,10,11); /定义变量用来存储历史读数 int previous = 0; void setup() /设置电机每分钟的转速为 90 步 stepper.setSpeed(90); void loop() int val = analogRead(0); /移动步数为当前读数减去历史读数 stepper.step(val-previous); /保存历史读数 previous = val; 11.6 void setup() /初始化数字的引脚为输出 pinMode(13,OUTPUT);pinMode(12,OUTPUT);void loop() digitalWrite(13,HIGH); digitalWrite(12,HIGH);delay(50);digitalWrite(13,LOW); digitalWrite(12,LOW);delay(200); 第 第 2 12 章蓝牙通信124 程序设计 void setup() Serial.begin(9600); void loop() while(Serial.available() char c=Serial.read(); if(c="A") Serial.println(HelloI am amarino); 第 第 3 13 章Wi- -i Fi 无线数据传输 134程序设计 void setup() Serial.begin(9600); void loop() Serial.println(Hello World!); delay(1000);第 第 4 14 章e ZigBee 无线数据传输144 程序设计 ZigBee 无线通信试验参考程序源代码分为主机程序和从机程序两部分。1)主机程序 int button_open =4; /开灯按钮连在数字端口 4 int button_close =5; /关灯按钮连在数字端口 5 char flag; /定义向从机发送 LED 灯亮灭标记的变量 void setup() pinMode(button_open,INPUT); /设置按钮为输入模式pinMode(button_close,INPUT);Serial.begin(115200); /启动串口通信,波特率为 115200bpsvoid loop()/假如亮灯按钮按下,同时关灯按钮松开if(digitalRead(button_open)=LOWamp;amp;digitalRead(button_close)=HIGH) flag="a" Serial.print(flag); /向从机发送灯亮标记/假如关灯按钮按下,同时亮灯按钮松开if(digitalRead(button_close)=LOWamp;amp;digitalRead(button_open)=HIGH)flag="b"Serial.print(flag); /向从机发送灯灭标记delay(20); /延时,等待数据发送胜利2)从机程序int LEDpin=9; /LED 灯连在数字端口 9int val;/定义接受主机发来的 LED 灯亮灭标记的变量void setup()pinMode(LEDpin,OUTPUT); /设置 LED 灯为输出模式digitalWrite(LEDpin,HIGH); /初始化使 LED 灯熄灭Serial.begin(115200); /启动串口通信,波特率为 115200bpsvoid loop()if(Serial.available()gt;0) /查询串口有多数据val=Serial.read(); /读取主机发送的数据if(val="a")/假如主机发送字符"a",则点亮 LEDdigitalWrite(LEDpin,LOW); /LED 灯点亮if(val="b")/假如主机发送字符"b",则熄灭 LEDdigitalWrite(LEDpin,HIGH); /LED 灯熄灭第 第 5 15 章基于 o Arduino 的才智农业大棚 1.STC90C5A16S2 单片机程序 . 32 (1)main.c . 32 (2)lcd12864.c . 47 (3)lcd12864.h . 52 2.Arduino 主接收模块 . 53 3.光照强度模块 . 55 4.二氧化碳浓度模块 . 57 5.空气温湿度模块 . 58 6.土壤温湿度模块 . 59 7.pc 端上位机 . 61 8.Android 手机客户端 . 75 (1)MainActivity.java . 75 (2)Second Activity.java . 86 (3)activity_main.xml . 92 (4)second_main.xml . 103 (5)AndroidManifest.xml . 1111.STC90C5A16S2 单片机程序 (1)main.c /*/ / 功能:串口 1 接收来自主 arduino 的串口信息,并送 LCD12864 显示,限制卷帘,浇水,照明灯等外设/ 串口 1 发送数据送 PC 显示,串口 2 接收 PC 发送的指令限制外设和阈值 (bps=9600)/*/ /STC12C5A60S2 单片机资源运用:/ / LCD12864_DATAPORT P0;电机: 喷 水 :P17 / LCD12864_RS=P26;PH1 = P10;照明:P21 / LCD12864_RW=P25;PH2 = P11; /LCD12864_EN=P27;I01 = P16;/ LCD12864_PSB =P32; I11 = P13; /LCD12864_RST =P34;I02 = P14; / 串口 1:RXD:P30; I12 = P15; / TXD: P31; / 串口 2:RXD:P12;(接收 PC 端信息)Arduino TX-gt;P30 J-TXD 盖跳帽左端 J-RXD 的 USB-gt;P12 /*/ /S2 接收来自 arduino 串口信息的格式:0x8e(起先)模块名数据字节数 数据校验码 /2015 年 8 月 12 日,现在改为 0x8e(起先)模块名数据(2 字节)!/S1 发送给 PC 的信息格式:0x9e(起先)模块名数据字节数 数据校验码 /2015 年 8 月 12 日,现在改为0x9e(起先)模块名 数据/其中各模块的名称为: 土壤湿度模块 0x00; 光照强度模块 0x01;空气温湿度 0x02;CO2 浓度模块 0x03 /各模块存储数据的位置:土壤湿度模块 dat0; 光照强度模块 dat1;空气温湿度dat2;CO

    注意事项

    本文(Arduino开发从入门到实战程序源代码.docx)为本站会员(l***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开