极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11904|回复: 2

简陋版的统计停车场已用车位数

[复制链接]
发表于 2013-10-29 23:14:41 | 显示全部楼层 |阅读模式
本帖最后由 AlfredLanning 于 2013-10-29 23:27 编辑
  1. byte seven_seg_digits[10][8] = {    //设置每个数字所对应的开关数组,本实验所用的是共阳极数码管
  2.   { 0,1,1,1,1,0,1,1 },  // = 0
  3.   { 0,1,1,0,0,0,0,0 },  // = 1
  4.   { 0,0,1,1,0,1,1,1 },  // = 2
  5.   { 0,1,1,1,0,1,0,1 },  // = 3
  6.   { 0,1,1,0,1,1,0,0 },  // = 4
  7.   { 0,1,0,1,1,1,0,1 },  // = 5
  8.   { 0,1,0,1,1,1,1,1 },  // = 6
  9.   { 0,1,1,1,0,0,0,0 },  // = 7
  10.   { 0,1,1,1,1,1,1,1 },  // = 8
  11.   { 0,1,1,1,1,1,0,1 }  // = 9
  12.   };
  13.   
  14. void sevenSegWrite(byte digit) {  //设置通过数组控制引脚开关,顺序为4-11号端口
  15.   byte pin = 4;
  16.   for (byte segCount = 0; segCount < 8; ++segCount) {
  17.     digitalWrite(pin, seven_seg_digits[digit][segCount]);
  18.     ++pin;
  19.   }
  20. }

  21. int count = 0;       // 用来统计已用车位数

  22. void setup(){
  23.   for( int i = 4;i <= 11;i++)     { pinMode(i,OUTPUT); }        //打开数码管用的引脚
  24.   pinMode(2,INPUT);              //   设置D2为红外传感器的输入引脚
  25.   sevenSegWrite(count);
  26. }

  27. void loop(){
  28.   if(digitalRead(3)){
  29.     count++;
  30.     sevenSegWrite(count);
  31.     delay(1400);      //红外热释电检测到动静时会将高电平延时一秒至两秒,加延时防止一次动静导致count多次自加
  32.   }
  33. }
复制代码


该版本还有许多不足,1:由于只有一位数码管,所以只能显示个位数,切所用的数码管程序只适用于一位显示,如果需要四位数码管的显示驱动可以下载以下附件
2:只能检测动的,不能检测车是进入还是出去;应该再加一个红外热释电可以用来使count自减,代表车出库了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-10-30 08:36:38 | 显示全部楼层
应该用两个,这样可以判断进出
回复 支持 反对

使用道具 举报

发表于 2013-10-31 22:29:46 | 显示全部楼层
这个用的应该是测距传感器吧,可以通过检测距离变化判断车的出入
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 00:06 , Processed in 0.035586 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表