使用proteus仿真arduino的确为我们省去了每次搭建硬件电路的麻烦,但我们渐渐地发现,利用arduino板可以直接通过串口调试的便利却失去了,有的时候还真是怀念通过串口调试窗口发送出来的调试信息,否则有的时候真的两眼一抹黑。
许多东西都是等到失去了才懂得她的珍贵,记得很多年前用win xp的年代,自带了一个串口助手现在没有了感觉可惜,后面当要用串口调试的时候就只能自己编写一个或者下一个别人编写的来调试,珍惜眼前有用吧(废话太多了,下面进入正题)。
其实在proteus中我们一样是可以借助arduino中的调试助手的,只不过我们要事先完成两个准备步骤:
第一、安装串口虚拟软件(这里推荐virtual serials Ports)
安装很简单,就是要注意**,文后我会给出打包下载(包含proteus仿真工程文件和虚拟串口软件及**包)。
虚拟串口安装之后,不要立刻运行它。将压缩包内附的用vspdctl.dll文件放到C:\Program Files\Eltima Software\Virtual Serial Port Driver 7.2目录下面,覆盖原来的文件即可**。
启动以后没有提示试用时间限制,那就表示成功了,我这建立了一对串口:
打开电脑的设备管理器,可以找到他们
第二,proteus工程文件中添加一个串口元件compim,如下图:
这里,我们编写一个简单的读写变阻器变量值的程序,如下:
void setup() {
// put your setup code here, to run once:
pinMode(0,INPUT);
Serial.begin(9600);
Serial.println("hello my friend!");
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println(analogRead(0));
delay(100);
}
编写玩代码千万别忘记一件事,那就是设置好我们的串口号及波特率,否则你收到的可能就是空白或者乱码(一般设置和arduino的串口调试窗口的波特率一致9600),双击串口元件,弹出设置窗口:
这样,我们就能够在调试助手上收到变阻器发送过来的数值了。
接下来,我们测试一下由arduino调试窗口来控制我们工程中的led的亮灭,首先我们添加8个LED灯:
然后,我们来给程序添加几行:
int led=0;
void setup() {
// put your setup code here, to run once:
pinMode(0,INPUT);
Serial.begin(9600);
Serial.println("hello my friend!");
for(int i=13;i>5; i--)
pinMode(i,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int rslt=Serial.read;
Serial.println(rslt);
switch(rslt){
case 0:
digitalWrite(led+6,HIGH);
break;
case 1:
digitalWrite(led+7,HIGH);
break;
case 2:
digitalWrite(led+8,HIGH);
break;
case 3:
digitalWrite(led+9,HIGH);
break;
case 4:
digitalWrite(led+10,HIGH);
break;
case 5:
digitalWrite(led+11,HIGH);
break;
case 6:
digitalWrite(led+12,HIGH);
break;
case 7:
digitalWrite(led+13,HIGH);
break;
default:
delay(200);
break;
}
}
当我们按下2和4时,效果如下:
一下是工程包以及虚拟串口软件和**包
虚拟软件下载