Arduino单片机的Proteus仿真项目实例

下面给大家介绍一个Arduino单片机的Proteus仿真项目实例:

操作方法

  • 01

    这个仿真项目实例的任务是:分别按下K1(正转)按钮、K2(反转)按钮和K3(停止)按钮,直流电机会分别产生相应的动作,而且当调节电位计时,电机的转速也随之发生变化。

  • 02

    电气符号用到了芯片元件、电源终端、虚拟仪器和连线标号,它们分别从各自的模式库中提取出来。

  • 03

    仿真图中,电源终端用到了VCC电源与接地符号,虚拟仪器用到了四通道示波器和直流电压表,连线标号的作用是相同连线标号的两根线在电气意义上是相连的,如图8中的标号A、B和PWM。至于芯片元件,仿真图里用到了电阻、电容、CPU、晶振、直流电机、稳压管、L298N驱动等等,芯片元件的提取通常有两种方法,父、子类别检索方法和关键字查询法。    父、子类别检索方法是:先选择元件模式库,再点击“P”按钮,打开元件查询提取对话框,如图10所示,例如提取的元件是单片机芯片ATMEGA328P,先在类别里找到Microprocessor ICs,在子类别里找到AVR Family,再在制造商里找到Atmel,然后在缩小了寻找范围的结果中找到这个单片机芯片ATMEGA328P,找到后双击芯片,就可以把芯片提取到ISIS界面左侧的DEVICES栏中,供原理图绘制时随时选用

  • 04

    关键字查询法是:如果事先知道要提取的元件名称,可以在元件查询提取对话框左上方的关键字输入栏里输入元件名称,如搜寻motor元件,直接输入motor,回车后,在结果中可以很容易地找到所需元件。

  • 05

    把硬件线路绘制完成,剩下的事就是编写程序,编译仿真了,我设计的这个仿真项目正好把数字量和模拟量输入输出都涉及到了,按钮输入和驱动芯片L298N的电机转向控制端A、B是数字量输入输出,电位计输入和L298N的转速调节控制端PWM是模拟量输入输出。数字量输入输出的Arduino命令分别是digitalRead(数字端口号)和digitalWrite(数字端口号,LOW或HIGH);模拟量输入输出的Arduino命令是analogRead(模拟端口号)和analogWrite(数字端口号, 0~255)。模拟端口只有输入模式,没有输出模式,Arduino模拟量输出是以PWM信号形式从具有PWM输出功能的数字端口输出的。Arduino微控制器的数字端口和模拟端口与ATMEGA 328芯片引脚的对应关系图如下。标有0~13标号的引脚对应的是数字端口,在0~13前面有符号“~”的引脚对应的端口具有PWM输出功能。标有A0~A5标号的是模拟端口。

  • 06

    Arduino UNO端口与Atmega328P引脚对应图有了Arduino UNO端口与Atmega328P引脚对应图,就可以方便地利用Proteus硬件仿真图,有针对性地编写Arduino程序了。由于以下程序中有详细的注释,所以对每行Arduino程序的作用就不再累述了。Arduino程序: //任务:通过按钮控制电机启停和正反转,通过电位计调节电机转速。 int K1=5;  //把K1(正转)按钮连在数字端口5int K2=6;  //把K2(反转)按钮连在数字端口6int K3=7;  //把K3(停止)按钮连在数字端口7int potpin = 3; // 把电位计连在模拟端口3int A=2;   //数字端口2、3控制电机启停和转向int B=3;  int PWMpin = 9; // 数字端口9输出PWM信号,控制电机转速//初始化void setup() {   pinMode(K1,INPUT);//把数字端口5、6、7设置输入模式   pinMode(K2,INPUT);   pinMode(K2,INPUT);   pinMode(A,OUTPUT);//把数字端口2、3设置输入模式   pinMode(B,OUTPUT);}//主程序void loop() {   //如果按下K1(正转)按钮  if(digitalRead(K1)==LOW)  {    //电机正转    digitalWrite(A,HIGH);    digitalWrite(B,LOW);  }  //如果按下K2(反转)按钮  if(digitalRead(K2)==LOW)  {    //电机反转    digitalWrite(A,LOW);    digitalWrite(B,HIGH);  }  //如果按下K3(停止)按钮  if(digitalRead(K3)==LOW)  {    //电机停止    digitalWrite(A,LOW);    digitalWrite(B,LOW);  }  int sensorValue = analogRead(potpin); //读取电位计采样值       sensorValue = sensorValue/4; // 采样值 0-1024 转换为 0-255  analogWrite(PWMpin, sensorValue);//把处理后的转换值以PWM信号形式输出  delay(20);//延时}

(0)

相关推荐

  • 利用Proteus和keil仿真51单片机流水灯

    流水灯可以说是单片机里面的Hello World,也就是最基础的部分. 这里我们利用Proteus绘制单片机流水灯的电路图,keil c51编写流水灯的程序. 仿真既可以帮助我们学习,也可以检验电路是 ...

  • Proteus8.4的Arduino仿真

    Arduino 是现在比较流行的一款开源硬件,相信也有不少人都玩儿过Arduino控制器,这里分享的是不需要硬件就可以学习Arduino的方法,就是使用Proteus8.4进行仿真 操作方法 01 打 ...

  • 怎么使用proteus进行简单仿真?

    这里教大家超简单的proteus仿真的一般流程,希望对大家了解这个软件有一些帮助. 操作方法 01 双击proteus图标打开软件后,在左边工具栏中点击下图按钮.component mode代表元器件 ...

  • keil c51 5.14.2如何进行软件仿真调试

    我们这里是使用的keil软件默认的软件调试系统,也就是说它虽然可以调试,但不如硬件调试那样可以实现百分百功能的调试.软件调试仅可用于查看变量值是否计算错误,死循环等常规调试.需要用到串口中断定时器等等 ...

  • proteus电源设置详解

    在使用proteus仿真电路时经常要用到电源,本文介绍怎么在proteus加入各种大小的电源. 操作方法 01 proteus中放置电源有两种方法: 1.直接从右侧"专用工具菜单" ...

  • 如何使用Proteus做单片机仿真

    Proteus是一款非常强大的集仿真.原理图设计及PCB设计于一体的软件.对于单片机初学者来说,该软件非常实用,不需要你有硬件电路即可通过仿真学习单片机的编程,下面将对仿真的使用进行介绍. 操作方法 ...

  • 如何利用Proteus和keil做动态数码管的仿真

    操作方法 01 我们首先打开Proteus,搜索*seg* 找到动态数码管 单片机是80c51,电阻res 02 电路仿真图如下 注意:仿真图和原理图还是有区别的:实际电路中连线不能按照仿真图来连接 ...

  • proteus软件中如何下载单片机程序

    本篇为大家介绍单片机开发中经常使用的仿真软件proteus使用中如何加载单片机程序,这是仿真的基本操作,为大家快速掌握这款软件提供参考. 操作方法 01 如图所示,打开proteus仿真软件,本篇经验 ...

  • 51单片机仿真电路点亮第一个LED灯代码怎么写?

    大家单片机的入门一般都是从51单片机开始的...下面详细介绍如何点亮第一个LED的仿真电路和C语言代码. 操作方法 01 编译程序是   Keil uVision2   语言选择基础的 C  语言. ...