基于51单片机的传送带产品计数器

       学校实训室中8台机电自动化实训设备,模拟工业生产制造现场的,真实再现了工业生产线中的供料、检测、搬运、切削加工、装配、输送和分拣过程,是典型的自动化生产线。设备有很多光电传感器用于检测物料产品等,于是就想光电传感器做一个单片机的小应用,利用光电传感器检测传送带上的产品的数量。

      说做咱就做,正好手头有一个小车的避障红外光电传感器E18-D80NK 

如下图所示。E18-D80NK-N这是一种集发射与接收于一体的光电传感器,发射光经过调制后发出,接收头对反射光进行解调输出。有效的避免了可见光的干扰。透镜的使用,也使得这款传感器最远可以检测80厘米距离的问题(由于红外光的特性,不同颜色的物体,能探测的最大距离也有不同;白色物体最远,黑色物体最近)。检测障碍物的距离可以根据要求通过尾部的电位器旋钮进行调节。该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场合。其主要参数如下:工作电压5V,工作电流10-15mA,驱动电流100mA,感应距离3-80cm。其中棕色线为VCC,蓝色线为GND,黑色线为out即传感器输出,正常状态是高电平输出,当检测到物体目标之后输出低电平。由于该传感器是NPN型开漏输出,所以连接在单片机上的时候需要接上拉电阻,上拉电阻选择1K的即可。

  1. 电路连接

      黑线即E18-D80NK的输出接单片机的P3.2口,通过外部中断实现产品技术处理。黑线要接1K电阻的到VCC,这里直接接到了棕色VCC线上,棕色VCC线接5V单片机电源输出。显示的话采用四位数码管实现。

    2.主要程序

    主要程序为中断处理和结果显示。

中断处理代码如下所示。当中断响应之后,首先要是延时一段时间再去判断传感器的状态。确定是否真的检测传送带上的物品,以消除扰动对测量测结果的影响。产品经过传感器大概//需要700-1000ms左右的时间,这段时间传感器一直输出低电平。而扰动持//续时间比较短,20-150ms左右,所以这里选择延时200ms左右,消除扰动影响。 

  void Exit0Int() interrupt 0
{
  EX0 = 0;        //关中断
  Delay_ms(200);    
  if(!key1)
  {  
     count++;
   TR0=1;
   LEDdisplay(count);
  }
    else EX0=1;
}
/*******************************************************************************
* 函 数 名 :LEDdisplay
* 函数功能 :循环显示各个位上的数据
* 输    入 :num要显示的数据
* 输    出 :无
*******************************************************************************/
void LEDdisplay(unsigned int num)
{
    unsigned char qian,bai,shi,ge;
    qian=num/1000;
    bai=num%1000/100;
    shi=num%100/10;
    ge=num%10;
    
    wela_1 = 1;      //关闭所有数码管
    wela_2 = 1;
    wela_3 = 1;
    wela_4 = 1;    

    wela_4=0;  //显示千位
    LED_PORT=table[qian];
    Delay_ms(1);
    LED_PORT = 0xff;
    wela_4=1;
    
    wela_3=0;  //显示百位
    LED_PORT=table[bai];
    Delay_ms(1);
    LED_PORT = 0xff;
    wela_3=1;
    
    wela_2=0;  //显示十位
    LED_PORT=table[shi];
    Delay_ms(1);
    LED_PORT = 0xff;
    wela_2=1;
    
    wela_1=0;  //显示个位
    LED_PORT=table[ge];
    Delay_ms(1);
    LED_PORT = 0xff;
}

    3.运行效果(如视频所示)

传送带产品计数器

完成代码,请公众号后台回复产品计数器五个字获取下载链接。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值