版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、试验一程序#define pwm 6unsigned char led6=*, *,*,*,*,*;void setup() for(int i=0;i<6;i+) pinmode(ledi,output); pinmode(pwm,output);void loop() for(int i=0;i<6;i+) /正循环点亮 digitalwrite(ledi,high); delay(100); digitalwrite(ledi,low); for(int i=5;i>-1;i-) /反循环点亮 digitalwrite(ledi,high); delay(100); d
2、igitalwrite(ledi,low); for(int j=0;j<3;j+) /全部灯闪烁三次 for(int i=0;i<6;i+) digitalwrite(ledi,low); delay(500); for(int i=0;i<6;i+) digitalwrite(ledi,high); delay(500); for(int k=0;k<256;k+) / 全部灯逐渐熄灭 analogwrite(pwm,k); delay(20); for(int k=255;k>-1;k-) /全部灯慢慢点亮 analogwrite(pwm,k); delay
3、(20); for(int i=0;i<6;i+) / 全部灯熄灭 digitalwrite(ledi,low); while(1);样例2:#define pina 2 /中断0unsigned char led8=38,39,40,41,42,43,44,45;volatile unsigned char j;void setup() for(int i=0;i<8;i+) pinmode(ledi,output); pinmode(pina,input); /d2脚为输入 attachinterrupt(0,count,rising);void loop() while(1)
4、 digitalwrite(ledj,high); if(j>=8) j=0; for(int i=0;i<8;i+) digitalwrite(ledi,low); void count() j+;试验二程序const int encoderpina = 3;const int encoderpinb = 6;olean encoderalast = low; / remembers the previous pin state unsigned long time = 0; long encoderpos=0; / hold
5、s temp valsint val;int pini1=42;/定义i1接口int pini2=44;/定义i2接口int speedpin=46;/定义ea(pwm调速)接口 int pini3=31;/定义i1接口int pini4=33;/定义i2接口int speedpin2=35;/定义ea(pwm调速)接口 / initializevoid setup() pinmode(pini1,output);/定义该接口为输出接口 pinmode(pini2,output); pinmode(
6、speedpin,output); pinmode(pini3,output);/定义该接口为输出接口 pinmode(pini4,output); pinmode(speedpin2,output); analogwrite(speedpin,100);/输入模拟值进行设定速度 digitalwrite(pini2,low);/使直流电机顺时针转 digitalwrite(pini1,high); analogwrite(spee
7、dpin2,130);/输入模拟值进行设定速度 digitalwrite(pini3,low);/使直流电机顺时针转 digitalwrite(pini4,high); pinmode(encoderpina, input); pinmode(encoderpinb, input); digitalwrite(encoderpina, high); digitalwrite(encoderpinb, high); serial.begin (9600
8、); time = millis(); /时间初值 void loop() if (millis() - time) > 500) serial.println (encoderpos); time = millis(); boolean encodera = digitalread(encoderpina); if (
9、encoderalast = high) && (encodera = low) if (digitalread(encoderpinb) = low) encoderpos-; else encoderpos+; encoderalast = encodera;试验三程序
10、#include <liquidcrystal.h>#include <flexitimer2.h> liquidcrystal lcd(36,37,30,31,32,33);unsigned char keyvalue44=0,0,0,0;unsigned char key;volatile unsigned long tt;unsigned int aa;unsigned char i,j,k,l;unsigned int table13=51,68,85,102,119,136,153,170,187,204,221,238,255;/对应不同的占空比#defin
11、e pina 2 /中断0#define in3 42#define in4 43#define duty 6void keyscan() / 扫描按键 for(int i=22;i<26;i+) digitalwrite(i,low); for(int j=26;j<30;j+) keyvaluei-22j-26=digitalread(j); digitalwrite(i,high); void keyprocess() / 键值处理 for(int m=0;m<4;m+) for(int l=0;l<4;l+) if(keyvalueml=0) key=m*4+l
12、+1; void setup() key=0; pinmode(pina,input); /d2脚为输入 pinmode(in3,output); pinmode(in4,output); pinmode(duty,output); lcd.begin(16,2); flexitimer2:set(500,flas); for(int i=22;i<30;i+) pinmode(i,output); for(int i=22;i<30;i+) digitalwrite(i,high); for(int i=26;i<30;i+) pinmode(i,input); attac
13、hinterrupt(0,count,rising); flexitimer2:start();void loop() while(1) keyscan(); keyprocess(); lcd.setcursor(0,0); switch(key) /通过按键改变占空比来调节速度 case 1: lcd.print(" forward "); lcd.setcursor(2,1); lcd.print(" "); digitalwrite(in4,high); /正转 digitalwrite(in3,low);break; case 2: lcd.p
14、rint(" reversion "); lcd.setcursor(2,1); lcd.print(" "); digitalwrite(in4,low); /反转 digitalwrite(in3,high);break; case 3:analogwrite(duty,table0); lcd.setcursor(8,0); lcd.print(" 20.00"); lcd.setcursor(8,1); lcd.print(i); lcd.print(j); lcd.print(k); lcd.print(l);break;
15、case 4:analogwrite(duty,table1); lcd.setcursor(8,0); lcd.print(" 26.67"); lcd.setcursor(8,1); lcd.print(i); lcd.print(j); lcd.print(k); lcd.print(l);break; case 5:analogwrite(duty,table2); lcd.setcursor(8,0); lcd.print(" 33.33"); lcd.setcursor(8,1); lcd.print(i); lcd.print(j); lc
16、d.print(k); lcd.print(l);break; case 6: analogwrite(duty,table3); lcd.setcursor(8,0); lcd.print(" 40.00"); lcd.setcursor(8,1); lcd.print(i); lcd.print(j); lcd.print(k); lcd.print(l);break; case 7:analogwrite(duty,table4); lcd.setcursor(8,0); lcd.print(" 46.67"); lcd.setcursor(8,1
17、); lcd.print(i); lcd.print(j); lcd.print(k); lcd.print(l);break; case 8:analogwrite(duty,table5); lcd.setcursor(8,0); lcd.print(" 53.33"); lcd.setcursor(8,1); lcd.print(i); lcd.print(j); lcd.print(k); lcd.print(l);break; case 9:analogwrite(duty,table6); lcd.setcursor(8,0); lcd.print("
18、 60.00"); lcd.setcursor(8,1); lcd.print(i); lcd.print(j); lcd.print(k); lcd.print(l);break; case 10:analogwrite(duty,table7); lcd.setcursor(8,0); lcd.print(" 66.67"); lcd.setcursor(8,1); lcd.print(i); lcd.print(j); lcd.print(k); lcd.print(l);break; case 11:analogwrite(duty,table8); lc
19、d.setcursor(8,0); lcd.print(" 73.33"); lcd.setcursor(8,1); lcd.print(i); lcd.print(j); lcd.print(k); lcd.print(l);break; case 12:analogwrite(duty,table9); lcd.setcursor(8,0); lcd.print(" 80.00"); lcd.setcursor(8,1); lcd.print(i); lcd.print(j); lcd.print(k); lcd.print(l);break; ca
20、se 13:analogwrite(duty,table10); lcd.setcursor(8,0); lcd.print(" 86.67"); lcd.setcursor(8,1); lcd.print(i); lcd.print(j); lcd.print(k); lcd.print(l);break; case 14:analogwrite(duty,table11); lcd.setcursor(8,0); lcd.print(" 93.33"); lcd.setcursor(8,1); lcd.print(i); lcd.print(j);
21、lcd.print(k); lcd.print(l);break; case 15:analogwrite(duty,table12); lcd.setcursor(8,0); lcd.print(" 100"); lcd.setcursor(8,1); lcd.print(i); lcd.print(j); lcd.print(k); lcd.print(l);break; case 16:analogwrite(duty,0); lcd.print(" stop "); lcd.setcursor(2,1); lcd.print(" &qu
22、ot;);break; if(key>2&&key<16) lcd.setcursor(3,0); lcd.print("duty:"); lcd.setcursor(14,0); lcd.print("%"); lcd.setcursor(2,1); lcd.print("speed:"); lcd.setcursor(12,1); lcd.print("r/m"); void count() tt+;void flas() /每隔500ms读一次脉冲 /nointerrupts(); /关闭总中断 aa=(tt*120)/334;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年八年级人教消息二则说课稿
- 2025-2026学年发现春天中班说课稿
- 2025-2026学年大学广告说课稿
- 2025-2026学年动感中队少先队说课稿
- 2025-2026学年出行讲礼貌说课稿
- 2025-2026学年一分钱小班说课稿
- 货运检查员变更管理水平考核试卷含答案
- 石作文物修复师岗前技术管理考核试卷含答案
- 2025-2026学年对数概念 说课稿
- 光学数控磨工安全专项评优考核试卷含答案
- 河北省石家庄市第四十三中学2025-2026学年上学期期中考试九年级数学试题(含答案)
- 2026年新疆中考语文真题及答案解析
- 简析量子定位技术及应用前景
- 2026年中医内科医师高频面试题包含详细解答
- 2026年全国两会解读:基层治理能力提升
- 装配错装漏装考核制度
- 感染性心内膜炎课件
- 2025年绿色农业农业资源保护与利用研究报告
- 浙江精诚联盟2025-2026学年高二上学期10月联考物理(含答案)
- 人工肝护士进修学习汇报
- 第二单元混合运算单元测试卷(含答案) 2025-2026学年人教版三年级数学上册
评论
0/150
提交评论