【用Proteus仿真Arduino】 01 - 创建Arduino UNO原理图

1 - 创建可以添加外围设备的Arduino UNO原理图

protues提供了arduino的开发板和编程界面,只需加载设置好编译器后,就能直接仿真。

使用VSM Studio IDE的Proteus VSM for Arduino的摘要工作流程
在这里插入图片描述

1.1 新建项目

打开Proteus Professional,新建项目。
在这里插入图片描述

1.2 开始

点击上图中“New Project”,首先选择保存工程的文件夹"01",Name文本块中输入工程名“lesson.pdsprj”,点击“next”
在这里插入图片描述

1.3 原理图设计

选中“Create a schematic from the selected template",并选择“default”作为模板,下一步

在这里插入图片描述

1.4 pcb布局

因为,我不需要印刷电路板,因此,此处选择“Do not create a PCB layout”,下一步。
在这里插入图片描述

1.5 固件

请选中屏幕顶部的“Create Firmware Project”框,然后选择控制器(Controller)和编译器(Compliler)。如果选中快速启动文件复选框,将为您生成一个框架固件项目,并配置要编译的项目。这里一定选择Create Peripherals复选框。这将引入Labcenter外设驱动程序,用于Proteus直接支持的屏蔽和分线板。

在这里插入图片描述

重要选项是确保同时选择了“创建快速入门文件”和“创建外围设备”选项。该组合框是具有许可证,如果您无法为控制器创建固件项目,那就无法在Proteus中进行仿真。

1.6 完成

您将在VSM Studio中看到一个源代码项目,其中包括大量的预生成代码。
在这里插入图片描述
使用MFC或类似工具的人会发现这很熟悉,一定不要更改或移动生成的代码。它由Labcenter驱动程序使用,并在您添加外围设备时进行更新,因此它们由Proteus软件进行管理。您应该忽略这些代码,并像往常一样在setup()和loop()例程中编写代码。在原理图上,您将找到一个预先放置的Arduino Uno。

1.7 添加外围设备

  1. 我们通过在“项目”菜单和项目树上的右键单击上下文菜单中添加“Add Peripgheral”命令来操作。
    在这里插入图片描述
  2. 这里展示了一些外围设备种类,比如:Adafruit shields, breakout boards, grove peripherals and motor control shields.
    在这里插入图片描述
  3. 可以通过选择它们并单击“添加”按钮或双击将它们添加到项目中。为了进行简单测试,我们将添加一个瞬时动作按钮和一个来自Breakout外设类别的LED。
    在这里插入图片描述
  4. 这些将同时出现在VSM Studio的项目树中,并放置在原理图上。
    在这里插入图片描述
  5. 因为相同标签名称的端子在原理图上是连通的,因此在这里,按钮已连接到IO2,而LED已连接到IO10。

在这里插入图片描述

  1. 在我们的固件中,我们可以看到许多控制LED的方法,但是按钮只有一种方法。我们可以将这些方法拖放到源代码上,以帮助我们控制外围设备。假设我们要在按钮按下时打开LED。我们开始while循环,然后只需将其从项目树中的按钮拖动到源代码上即可。

在这里插入图片描述

  1. 在我们的程序中,我们想打开LED。这次按住CTRL键并拖放LED的on方法。请注意,插入符号随鼠标移动而移动,您可以将其放置在任意位置。

在这里插入图片描述
8. 最后,我们需要在while循环外关闭LED。同样,我们可以将off方法拖放到程序中的正确位置。

在这里插入图片描述

摘要:

  • 不要在文件顶部更改或移动生成的代码。
  • 如果正常拖放,则代码片段将插入文件中鼠标插入符号处的任何位置。
  • 如果在拖动时按住CTRL键,则鼠标插入符将随拖动而移动,并且释放鼠标时,代码段将插入到插入符的位置。

1.8 在没有Labcenter驱动程序的情况下工作

  1. 您可能会决定不想使用Labcenter外围设备驱动程序,或者想要创建自己的原理图中添加电子设备。在这种情况下,应在“新建项目向导”中取消选择“创建外围设备”按钮。
    在这里插入图片描述

  2. 您将得到一个空白草图(没有预生成的代码),并且必须从原理图上“文件”菜单上的“导入项目剪辑”命令中添加任何屏蔽等。
    在这里插入图片描述

  3. 当您执行此操作时,您将不会同时导入用于该屏蔽/外设的Labcenter驱动程序,而必须在Arduino C ++级别上编写程序。这可以提供额外的灵活性,但不太简单。

1.0 帮助

官方帮助文档位置:

  • pds/Dialogues/New_Project_Wizard.htm
  • VsmStudio/Content/Working_With_Arduino.htm

2. 利用模板创建原理图

1.1 开始

打开Proteus Professional,新建项目。
在这里插入图片描述

1.2 新建项目

点击上图中“New Project”,首先选择保存工程的文件夹"01",选择“from Development Board”— “对应所需的开发板”,本文例子基于arduino 328(即arduino uno);
在这里插入图片描述

1.3 设计

进入原理图界面,图中显示为proteus提供的arduino 328开发板。
在这里插入图片描述

1.4 编码

选择源代码标签,就可以直接编写程序了,但在编写程序之前需要检查编译环境是否支持,需要先检查并安装编译环境。
在这里插入图片描述

1.5 设置编译环境

  1. 在源代码标签,菜单栏上选择“系统”-“编译器选择”,跳出编译器界面,如下图所示:
    在这里插入图片描述
  2. 先点击下面的“check All”,系统会自动检查已经安装的编译器,如图中显示“arduino AVR”已经安装,如果没有安装,需要点击“download”,那将会自动下载编译器并安装配置编译环境。
    在这里插入图片描述
    至此,开始我们的proteus仿真arduino的旅程吧。
  • 22
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Arduino Uno是一款开源的微控制器板,广泛应用于电子制作和原型开发。Proteus是一款虚拟电路仿真软件,可以用来模拟和测试各种电子电路。 要在Proteus仿真Arduino Uno的烟雾报警器,首先需要建立一个合适的电路图。我们需要连接Arduino Uno的数字引脚和模拟引脚来控制和检测烟雾传感器的输出。 首先,将烟雾传感器的输出引脚连接到Arduino Uno的模拟引脚A0。然后,将Arduino Uno的数字引脚连接到蜂鸣器,用于触发报警。同时,将Arduino Uno的数字引脚连接到LED灯,用于指示报警状态。 在Proteus中,打开Arduino Uno仿真模块,并添加烟雾传感器、蜂鸣器和LED灯的模拟组件。然后,将这些模拟组件与Arduino Uno的相应引脚进行连接。 接下来,编写Arduino Uno代码,使用analogRead函数读取烟雾传感器的模拟值,并使用digitalWrite函数控制蜂鸣器和LED灯的状态。可以设置一个阈值,当烟雾传感器的模拟值超过阈值时,触发报警。 在Proteus中进行仿真时,可以模拟不同的烟雾值输入,观察蜂鸣器和LED灯的触发情况,以验证烟雾报警器的功能。 综上所述,通过在Proteus中进行Arduino Uno的烟雾报警器仿真,我们可以验证烟雾报警器的正常工作和报警功能。这可以帮助我们在实际制作中更好地优化和调试电路,确保其稳定性和可靠性。 ### 回答2: 烟雾报警器是一种常用于家庭和商店等场所的安全设备,用于监测室内空气中的烟雾浓度,一旦检测到异常浓度的烟雾,会及时发出警报以提醒人们采取相应的措施应对火灾风险。 在Proteus软件中模拟Arduino Uno的烟雾报警器,首先需要准备一个烟雾传感器模块,该模块可通过数字引脚输出高低电平来表示烟雾浓度的变化。 在Proteus中新建一个电路图,将Arduino Uno板子和烟雾传感器模块连接起来。连接时需要注意将传感器的VCC引脚连接到Arduino的5V引脚,GND引脚连接到GND引脚,以及传感器的数字输出引脚连接到Arduino的数字引脚,例如数字引脚2。 在Arduino IDE中编写代码,实现读取烟雾传感器模块的输出,并根据阈值判断是否触发报警。具体代码如下: ```C++ const int smokePin = 2; // 烟雾传感器连接到Arduino的数字引脚2 const int threshold = 500; // 手动设置烟雾阈值,根据实际情况调整 void setup() { pinMode(smokePin, INPUT); // 将烟雾传感器的引脚设置为输入模式 Serial.begin(9600); // 开启串口通信,用于输出烟雾浓度值 } void loop() { int smokeValue = analogRead(smokePin); // 读取烟雾传感器输出的模拟值 Serial.println(smokeValue); // 输出模拟值 if (smokeValue > threshold) { // 判断烟雾浓度是否超过阈值 // 发出报警 Serial.println("Smoke detected! Fire hazard!"); // 这里可以添加触发报警的相关操作,比如声音或灯光的控制等 } delay(1000); // 延时1秒后再次读取传感器值 } ``` 编写完成后,将代码上传到Arduino Uno板子中。然后在Proteus中点击“Simulate(仿真)”按钮,即可开始对烟雾报警器进行仿真。在仿真过程中Proteus会通过串口通信输出烟雾浓度数值,并在烟雾浓度超过阈值时输出报警信息,以模拟实际工作情况。 通过Proteus仿真,我们可以验证烟雾报警器的工作原理和代码逻辑是否正确,以及根据需要进行调试和改进。这有助于提升系统的稳定性和可靠性,确保烟雾报警器在实际应用中能够准确和及时地发出警报,保障人们的生命财产安全。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蔚蓝慕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值