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

本文介绍了如何使用E18-D80NK光电传感器结合单片机实现实训室中机电自动化设备的产品计数功能。通过中断处理消除干扰,确保准确计数,并使用四位数码管显示结果。程序中设置了适当的延时来区分真实产品和短暂扰动,实现了稳定可靠的计数系统。
摘要由CSDN通过智能技术生成

       学校实训室中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.运行效果(如视频所示)

传送带产品计数器

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值