西电A测 | 基于Arduino uno的电子密码锁仿真系统 | 使用Proteus仿真 | Arduino IDE编写

西电A测 | 基于Arduino uno的电子密码锁仿真系统 | 使用Proteus仿真 | Arduino IDE编写 | ATMEGA328P

电子密码锁系统

功能要求:通过4*4薄膜键盘输入密码,LCD 上显示输入密码,Arduino UNO(Atmega328P)判断密码是否正确。如果密码正确,LCD 上显示开锁成功,绿灯亮,连接继电器的黄灯亮。LCD 第一行显示PASSWORD,第二行显示输入的密码。如果输入密码正确,第二行显示OPEN,如果输入密码错误,第二行显示INVALID。

Arduino UNO

Arduino是一个开源电子原型平台,拥有灵活、易用的硬件(Arduino开发板)和软件(Arduino IDE)。其中,Arduino UNO是一款最基础的Arduino开发板,采用的芯片是ATMEGA328P。这款开发板(芯片)包含14个数字引脚(带~的数字引脚具有PMW脉冲宽度调制功能),6个模拟引脚;即图片中的0-13以及A0-A5引脚。
Arduino Uno开发板

Arduino IDE的下载及配置

Arduino IDE是一款针对Arduino开发板的集成开发环境,可以免费在官网上下载。由于本实验需要用到4*4键盘输入,还需要下载keypad库。首次打开IDE,选择File,preferences,可以将语言修改成英文,同时勾选编译显示详细输出,后续需要。此外,IDE还会自动下载安装一些程序包,如果下载失败可以通过连接手机热点解决。点击项目,选择添加.zip库,将刚才下载的keypad压缩文件添加,后续仿真程序需要用到。

IDE配置
请添加图片描述

Proteus的说明

Proteus需要破解下载,可以参考一些微信公众号,如:蓝朋友啊。由于Arduino IDE编写的程序是直接烧写到开发板的,如果没有开发板,就需要使用Proteus并基于Arduino UNO的芯片(ATMEGA328P)搭建电路来模拟开发板进行仿真。本实验提供的Proteus仿真电路如下图所示。
仿真电路

Proteus仿真电路

Arduino微控制器电路如下图。IO0~IO13相当UNO的14个数字引脚,在程序中以数字0-13代表。IO14-IO19连接到AD0-AD5,代表6个模拟引脚,在程序中可以以A0-A5代表,也可以以数字14-19代表。IO0和IO1分别与RX和TX相连接,如果要用到串口通信,那么数字引脚0和1不能用于输入输出功能。Arduino下载程序也是通过串口完成的,所以此时USB将占用0和1脚,此时0和1脚不能接任何东西,否则会产生冲突。
微控制器
继电器电路如下图所示。当IO12输出高电平时,黄灯亮,否则黄灯灭。其余电路不再提及。

继电器

仿真程序

Arduino的程序主体包含void函数和loop函数。void函数是对Arduino UNO的初始化,每次复位后执行且只执行一次。loop函数则在void函数执行完毕后重复执行。

//KEYPAD的初始程序,实例化一个4*4的键盘
#include<Keypad.h>//引入库
const byte rows =4;//行数
const byte cols =4;//列数
char akeypad[rows][cols] ={
   
  {
   '7','8','9','/'},
  {
   
  • 30
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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仿真,我们可以验证烟雾报警器的工作原理和代码逻辑是否正确,以及根据需要进行调试和改进。这有助于提升系统的稳定性和可靠性,确保烟雾报警器在实际应用中能够准确和及时地发出警报,保障人们的生命财产安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值