首页 > 其他分享 >stm32 例子 人数统计

stm32 例子 人数统计

时间:2024-04-20 21:14:12浏览次数:23  
标签:RED2 RED1 car oldstate stm32 state 例子 Serial 人数

 

 

1单纯统计进出人数

 

  
    
 
#define pin_RED1 PA0
#define pin_RED2 PA1
int people_useNum=0;
 
int state_RED1=0;// 红外1
int state_RED2=0;// 红外2
int car_state[2]={0,0};
int car_oldstate[2]={0,0};
 
 
 
 
   
void setup(){
  Serial.begin(9600);
  pinMode(pin_RED1, INPUT);
  pinMode(pin_RED2, INPUT);
   
}
  
 
void loop(){
 
 
  String Lightmsg="People Num:"+String(people_useNum);
 
  String Lightmsg1="IN_RED1:"+String(state_RED1);
 
  String Lightmsg2="OUT_RED2:"+String(state_RED2);
 
  
 
  
  
   state_RED1=!digitalRead(pin_RED1);
   state_RED2=!digitalRead(pin_RED2);
   car_state[0]=state_RED1;
   car_state[1]=state_RED2;
    
   
      if( car_state[0]==1){
   
         if(car_oldstate[0]==0){
            
            Serial.println("有人进入入口闸机");
            car_oldstate[0]=1;
       
          }
          else{
            Serial.println("人在入口闸机尚未离开");
             
            }
       
       
      }
      else{
           if(car_oldstate[0]==0){
             Serial.println("入口等待有人进来");
           }
           else{
              Serial.println("人已经离开入口闸机,人数+1");
              people_useNum=people_useNum+1;
              car_oldstate[0]=0;    
            }
           
 
            
        }
        
    
       if( car_state[1]==1){
   
         if(car_oldstate[1]==0){
            
            Serial.println("有人进入出口闸机");
            car_oldstate[1]=1;
       
          }
          else{
            Serial.println("人在出口闸机尚未离开");
             
            }
       
       
      }
      else{
           if(car_oldstate[1]==0){
             //Serial.println("出口闸机等待有人进来");
           }
           else{
              Serial.println("人已经离开出口闸机,人数-1");
              people_useNum=people_useNum-1;
              if(people_useNum<0){people_useNum=0;}
              car_oldstate[1]=0;    
            }
           
 
            
        }
  
      
 
  Serial.print("当前人数:");Serial.println(people_useNum);
   
 
 
   

  delay(1000);
 
  
 
}

  

标签:RED2,RED1,car,oldstate,stm32,state,例子,Serial,人数
From: https://www.cnblogs.com/gooutlook/p/18148165

相关文章

  • 【专题STM32F103】移植STemWin5.44+ ILI9341显示无触摸屏 + cubemx+野火霸道V2
    在已经做好LCD_ ILI9841的基础上,进行移植,不考虑触摸屏。 一、无操作系统移植第一步:找到STemWin5.44库文件。 第二步:将相关文件放在Project文件夹内,设置项目相关参数。添加:GUI_X.c  GUI_config.c  LCDConf_FlexColor_Template.c 和 STemWin_CM3_wc16_ARGB.a(无OS) ......
  • 建立STM32 工程
    新建工程步骤建立工程文件夹,在keil中建立工程,选择型号在工程文件夹中建立Start,Library,User等文件夹,复制固件库里的文件到工程文件夹在工程里对应建立Start,Library,User等同名称分组,然后将文件添加到工程分组里工程选项,C/C++,includepaths内声明包含头文件的文件夹工程选项,C/......
  • 【STM32+HAL库】---- 驱动MAX30102心率血氧传感器
    硬件开发板:STM32F407VET6软件平台:cubemax+keil+VScode1MAX30102心率血氧传感器工作原理MAX30102传感器是一种集成了红外光源、光电检测器和信号处理电路的高度集成传感器,主要用于心率和血氧饱和度的测量。以下是MAX30102传感器的主要特点和工作原理:红外光源:MAX30102传感器......
  • STM32、ESP8266与MQTT连接阿里云物联网的串口通信异常解析
    STM32、ESP8266与MQTT协议连接阿里云物联网平台时常见的串口通信异常介绍在构建物联网应用时,STM32、ESP8266与MQTT协议的结合是实现设备与网络间稳定通信的关键。然而,在连接阿里云物联网平台的过程中,串口通信异常成为了一个常见的挑战。本文将探讨这些异常现象及其可能的原因,并给......
  • C#的窗体假关闭操作例子 - 开源研究系列文章
          晚上编码的时候,想到了以前编写的窗体关闭的事情,就是带托盘图标的应用,有一个主显示操作窗体,但是主窗体点击关闭按钮的时候,实际上是窗体隐藏而非真正关闭,这个在其它的一些应用程序里有这个效果。于是就想到了这个例子,记录下来,如果其他读者也有这个问题,那直接复用此例子......
  • stm32例子 串口接受oled屏幕不卡显示
      #include<Arduino.h>#include<U8g2lib.h>#ifdefU8X8_HAVE_HW_SPI#include<SPI.h>#endif#ifdefU8X8_HAVE_HW_I2C#include<Wire.h>#endifU8G2_SSD1306_128X64_NONAME_F_SW_I2Cu8g2(U8G2_R0,/*clock=*/PB6,/*data=*/PB......
  • stm32f103使用RT-Thread组件fal读写内部flash
    本次使用RT-Threadstudio编写,使用为5.02完整版,目的是将内部flash进行分区,可以直接在内部flash存储数据。一、功能配置首先是打开设置里的FAL组件,因为我这里不需要外部内存,SFUD驱动就没打开:然后是配置两个参数,一个在board.h里,定义BSP_USING_ON_CHIP_FLASH,一个是在stm32xxxx_hal_......
  • STM32 - W25Q16移植fatfs文件系统
    1.Windows上的文件系统​ 文件系统,就是对数据进行管理的方式。使用文件系统可有效地管理存储介质。​ 使用文件系统时,它为了存储和管理数据,在存储介质建立了一些组织结构,这些结构包括操作系统引导区、目录和文件。常见的windows下的文件系统格式包括FAT32、NTFS、exFAT。......
  • STM32:HAL多通道ADC数据采集
    1、配置ADC,设置5个通道采集2、使能DMA设置为循环模式 生成工程后编写函数1、校准ADC,开启DMA接收,在main函数初始化部分调用#defineADC_MAX_NUM5#defineBTN_BUFF_LEN100staticuint16_tdma_adc_data[BTN_BUFF_LEN*ADC_MAX_NUM];1/**2*@brief校准adc,开......
  • PGSQL 单sql多insert例子
    --INITdatabaseCREATETABLEmsg(msgIdchar(32)PRIMARYKEYcomment'ulid',uidbigintnotnull,contextnotnull);createtableseum(clientIdint,uidbigintnotnull,msgIdchar(32)notnull,cointnotnulldefault0,p......