网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月11日漏签0天
成都东软学院吧 关注:86,294贴子:3,698,621
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 8回复贴,共1页
<<返回成都东软学院吧
>0< 加载中...

大误●做一个门禁系统

  • 只看楼主
  • 收藏

  • 回复
  • 一尺三的梦魇
  • 恋爱之中
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
宝宝的树莓派被人拿去跑神经网络了,宝宝没有办法,只好拿出积蓄,买了一丢丢Arduino,打算做一个门禁系统.目前整个项目进度为90%,在步进电机(自由度+180)这一块完全卡死,目前还没有比较好的思路,于是闲来无事,发一波帖子.
从各个模块的融合,从Test1到Test7,,
三周的时间见证了我从无到有,从大量代码冗余到目前的精简,在此期间,我跑了西南交大的创客空间进行交流他们免费提供给了我部分的材料,蹭大二学长学姐们的交微机组成原理,找了实时操作系统的老师,有其他的老师们给了我各种建议,有我的好友给我代码优化的建议,也咨询了学校相关领导的意见.
我从来没有想到过做一个这东西会让我投入那么多,开放目前的源代码的下载,二楼放部分实物图.


Test7.zip
大小:8.45KB下载:2次转存:0次
文件已失效
  • 一尺三的梦魇
  • 恋爱之中
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼





2025-12-11 09:45:38
广告
不感兴趣
开通SVIP免广告
  • 旋转大冬瓜
  • 退休年龄
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不明觉厉


  • 一尺三的梦魇
  • 恋爱之中
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
大概思路是这样,但是不全


  • wyhbba007
  • 胎中生物
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
顶楼主。顺带我这里有些arduino相关的材料,本人毕业了,便宜卖给楼主,有兴趣没有


  • 手撕鱿鱼丝丝
  • 步入中年
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
力顶!
 请系上你的安全带,这将是一个颠簸的夜晚。
        --来自帅帅哒的手撕鱿鱼丝丝的座机客户端


  • 兔炖小白菜
  • 退休年龄
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
宽哥,


  • 一尺三的梦魇
  • 恋爱之中
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我多次修改代码,换了几个开发版之后,我猜测我手上的4个舵机全都有问题,现在我是应该寻求物联网实验室的老师的帮助还是应该放弃这个项目从而反思自己从这个项目中的得失呢?
如果我放弃这个项目的话觉着有点不甘心,因为我对它倾注了很多心血,目前只剩下舵机了问题了,我想要在这周完成这个项目,剩下时间拿来复习,如果要完成这个项目的话,对我而言可能复习时间又不够....
罢了罢了,走一步算一步吧,毕竟我才接触Arduino一两个月......
这一楼讲的是RFID读卡模块.
贴代码:
#define RST_PIN 9
#define SS_PIN 10
//因为我用的是MFRC522,在Arduino中有现成的库,直接在项目-加载库-管理库中搜索MFRC522,就可以搜到相关的库,所以我直接拿来用.
MFRC522 mfrc522(SS_PIN, RST_PIN); // 创建一个 MFRC522 实例.
MFRC522::MIFARE_Key key;
//卡号,卡号采用byte存储,
//byte UID[] = {206,147,57,69,};
//206对应0xCE,147对应0x93,57对应0x39,69对应0x45
byte UID[] = {0xCE,0x93,0x39,0x45};
在setup()函数中有以下语句:
setup()
{
......
while (!Serial); // 如果没有打开串口就什么都不做(基于ATMEGA32U4 arduino添加的)
SPI.begin(); //初始化SPI
mfrc522.PCD_Init(); //初始化MFRC522卡
// 使用十六进制的0xFF初始化读取的UID,换成十进制就是255
for (byte i = 0; i < 6; i++)
{
key.keyByte[i] = 0xFF;
}
//显示已经读取出来的UID(此时是已经初始化了,显示的应该全是F)
dump_byte_array(key.keyByte, MFRC522::MF_KEY_SIZE);
Serial.println();
.......
}
在loop函数中有以下语句:
void loop()
{
......
// 寻找是否有卡
if ( ! mfrc522.PICC_IsNewCardPresent())
return;
// 选择一张卡
if ( ! mfrc522.PICC_ReadCardSerial())
return;
Serial.print(F("Card UID:"));
//dump_byte_array函数的作用是把卡号显示出来
dump_byte_array(mfrc522.uid.uidByte,mfrc522.uid.size);
Serial.println();
......
}
显示卡号的函数:
//打印出(十六进制与十进制)读取的非接触式IC卡卡号
void dump_byte_array(byte *buffer, byte bufferSize)
{
for (byte i = 0; i < bufferSize; i++)
{
Serial.print(buffer[i],HEX);//十六进制打印
Serial.print(" ");
}
Serial.println();
buzzer1(4,500);
//十进制打印,我这个只是做测试
for (byte i = 0; i < bufferSize; i++)
{
Serial.print(buffer[i]);
Serial.print(",");
}
Serial.println();
if (equalUID(buffer,bufferSize)) openTheFuckingDoor();//如果卡号和预置的密码相同,就打开门.
return;
}
用到了判断卡号这一个函数,贴出来.
//判断卡号和预置的卡号是否匹配,匹配返回1,不匹配返回0
int equalUID(byte *buffer,byte bufferSize)
{
Serial.print("This is equalUID!,buffersizeis :");
Serial.println(bufferSize);
for (byte i = 0; i < bufferSize; i++)
{
if (buffer[i] != UID[i])
return 0;
}
Serial.println("The UID is available!!!");
return 1;
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 8回复贴,共1页
<<返回成都东软学院吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示