工业控制技术实验程序.doc_第1页
工业控制技术实验程序.doc_第2页
工业控制技术实验程序.doc_第3页
工业控制技术实验程序.doc_第4页
工业控制技术实验程序.doc_第5页
已阅读5页,还剩5页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论