使用Arduino做一个简单的光电计数器

先放一张图

initpintu_副本.jpg - 大小: 262.78 KB - 尺寸:  x  - 点击打开新窗口浏览全图
主要功能就是通过光敏二极管的通断,来实现数量累加,并且当数量达到200时开启蜂鸣器报警。程序实现很简答,主要就是在处理数码管的位数计算,其他的就没什么了。

硬件使用的是arduino pro mini 328一块,光敏二极管模块一个,玩具激光头一个,线缆三根,tm1637四位数码管模块一个,有源蜂鸣器一个,万用电路板一块,防水塑料外壳一个,220欧电阻一个。

整套设备使用5V的USB供电,由于激光头长时间使用容易烧坏,所以我这里串联一个220欧电阻。

#include "TM1637.h"
#define CLK 3
#define DIO 2
TM1637 tm1637(CLK,DIO);
int number = 0;
int sta = 0;
int buzzer = 6;
int i = 0;
void setup()
{
  pinMode(4, INPUT);
  pinMode(buzzer,OUTPUT);
  tm1637.init();
  tm1637.set(BRIGHT_TYPICAL);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
}
void loop()
{
  int temp = digitalRead(4);
  if(temp == 1){
    if(sta == 0){
      number += 1;
      if(number<10){
        tm1637.display(3,number);
        normal();
      }
      else if(number>=10 && number <100){
        tm1637.display(3,number%10);
        tm1637.display(2,number/10);
        normal();
      }
      else if(number>=100 && number <1000){
        if(number>=200){
          warning();
        }
        else{
          normal();
        }
        tm1637.display(3,number%10);
        tm1637.display(2,(number/10)%10);
        tm1637.display(1,number/100);
      }
      else if(number>=1000 && number <9999){
        warning();
        tm1637.display(3,number%10);
        tm1637.display(2,(number/10)%10);
        tm1637.display(1,(number/100)%10);
        tm1637.display(0,number/1000);
      }
      else{
        number = 0;
      }
      sta = 1;
    }
  }
  else{
    sta = 0;
  }
}
void normal(){
  for(i=0;i<50;i++){
    digitalWrite(buzzer,HIGH);
    delay(1);
    digitalWrite(buzzer,LOW);
  }
}
void warning(){
  for(i=0;i<150;i++){
    digitalWrite(buzzer,HIGH);
    delay(1);
    digitalWrite(buzzer,LOW);
    delay(1);
  }
}

如果您觉得文章有帮助到您,请到 https://www.92ez.com/index.php?action=show&id=23403 进行打赏/捐赠,谢谢!
如果您觉得文章有帮助到您,请 使劲戳这里 进行打赏/捐赠,谢谢!
本文链接:https://www.92ez.com/?action=show&id=50
提示:技术文章有一定的时效性,请先确认是否适用你当前的系统环境。

关键词: arduino

上一篇: Telnet_WIFI Beta1
下一篇: Cracking and sniffing GSM with a RTL-SDR【翻译】

相关文章
访客评论
#1
回复 witer 2015-04-01, 3:29 PM
这个可以对商场客流量做统计吗
回复 GH05T 2015-04-01, 4:18 PM
@witer: 这个是可以的
发表评论

评论内容 (必填):