精华内容
下载资源
问答
  • 该文件是7个传感器控制寻迹的程序,方便大家学习传感器,并制作寻迹小车。
  • 基于单片机控制的热释电红外报警,将检测到人体红外信号转换成电压信号,经调理电路整形处理为TTL电平送入单片机,单片机对送入信号进行判别,是哪一路报警信号,发出音响报警并通过数码管显示报警位置
  • 通过红外激光传感器测到的数据,交给单片机进行处理后控制直线推杆的运动情况 控制方式 通过激光传感器的反馈数据(实测距离值),判断推杆的运动情况,根据arduino单片机的外部中断来进行外部控制,就是说将外部...

    控制目标

    通过红外激光传感器测到的数据,交给单片机进行处理后控制直线推杆的运动情况

    控制方式

    通过激光传感器的反馈数据(实测距离值),判断推杆的运动情况,根据arduino单片机的外部中断来进行外部控制,就是说将外部中断信号作为最高优先级的情况处理,根据一段时间的距离差值得到处理结果。在外部中断没有来到的时候,通过自动控制实现推杆的升降。但是有外部中断的时候,就是直接根据外部中断函数的语句来进行执行结果。可以实现人为控制和自动控制。

    原理图

    在这里插入图片描述

    材料

    1、arduino mega2560单片机
    2、红外激光传感器
    3、直线推杆
    4、直线推杆驱动模块
    5、电源模块

    控制流程图

    在这里插入图片描述

    源代码

    这是源代码的链接,有需要的朋友可以试着下载看看

    展开全文
  • 基于调校装置中的核心STC15W201S单片机,设计并实现了一种逆向破解现有遥控器的红外信号传输协议,由单片机根据该红外信号传输协议学习并接收红外控制信号,然后在调校矿用瓦斯传感器时能发出所需功能的红外控制信号,...
  • 基于51单片机+红外探测器+光敏传感器+温度传感器智能客厅控制装置仿真设计资料 包含源程序仿真及论文
  • //********************************************************************** //函数名:main(void) //输入 :无 //输出 :无 //功能描述:检测红外对射传感器中间有无物体,用AD量表示,当返回值大于 //500判定有...

    #include

    #define                            BUF_LENTH              128                            //定义串口接收缓冲长度

    #define     uint unsigned int

    #define     uchar unsigned char

    unsigned char               uart1_wr;                            //写指针

    unsigned char               uart1_rd;                            //读指针

    unsigned char               xdata RX0_Buffer[BUF_LENTH];              //接收缓冲

    unsigned char flag;

    unsigned char i;

    unsigned char   xdata mbus_buffer[255];

    unsigned char   xdata mbus_Sendbuf[255];

    unsigned char   xdata Crc_buf[2];  //声明存储CRC校验值的高8位及低8位的缓存

    unsigned int  Crc_return_data;  //声明CRC校验值

    bit                            B_TI; //发送完成标志

    sbit  P1_0 = P1^0;//定义P1.0端口

    //                                                                                                                7       6      5       4         3      2    1    0   Reset Value

    //sfr ADC_CONTR = 0xBC;                            ADC_POWER SPEED1 SPEED0 ADC_FLAG ADC_START CHS2 CHS1 CHS0 0000,0000              //AD 转换控制寄存器

    #define ADC_OFF()              ADC_CONTR = 0

    #define ADC_ON                            (1 << 7)

    #define ADC_90T                            (3 << 5)

    #define ADC_180T              (2 << 5)

    #define ADC_360T              (1 << 5)

    #define ADC_540T              0

    #define ADC_FLAG              (1 << 4)              //软件清0

    #define ADC_START              (1 << 3)              //自动清0

    #define ADC_CH0                            0

    #define ADC_CH1                            1

    #define ADC_CH2                            2

    #define ADC_CH3                            3

    #define ADC_CH4                            4

    #define ADC_CH5                            5

    #define ADC_CH6                            6

    #define ADC_CH7                            7

    uint adc10_start(uchar channel);

    void              uart1_init(void);

    void Uart1_TxByte(unsigned char dat);

    void Uart1_String(unsigned char code *puts);

    void delay_ms(unsigned char ms);

    unsigned int cal_crc(unsigned char *snd, unsigned char num);

    /*************** 用户定义参数 *****************************/

    #define MAIN_Fosc                            11059200UL

    #define Baudrate0                            9600UL

    /**********************************************************/

    /************** 编译器自动生成,用户请勿修改 *****************************/

    #define BRT_Reload                                          (256 - MAIN_Fosc / 16 / Baudrate0)                            //Calculate the timer1 reload value ar 1T mode

    /**********************************************************/

    //**********************************************************************

    //函数名:main(void)

    //输入  :无

    //输出  :无

    //功能描述:检测红外对射传感器中间有无物体,用AD量表示,当返回值大于

    //500判定有物体

    //**********************************************************************

    void              main(void)

    {

    uint              j;

    uart1_init();//初始化串口

    P1ASF = (1 << ADC_CH0);              //STC12C5A16S2系列模拟输入(AD)选择ADC1(P1.0)

    ADC_CONTR = ADC_360T | ADC_ON;

    while(1)

    {

    j = adc10_start(0);              //(P1.0)ADC1转换

    delay_ms(5);

    if(flag==1)

    {                            delay_ms(5);

    if(RX0_Buffer[0x03] == 0x2C)

    {

    mbus_Sendbuf[3] = 0x00;

    mbus_Sendbuf[4] = 0x00;

    if(j>500)

    mbus_Sendbuf[4] = 0x01;

    mbus_Sendbuf[2] = (((RX0_Buffer[0x04] * 16) + RX0_Buffer[0x05]) * 2);

    mbus_Sendbuf[0] = RX0_Buffer[0];

    mbus_Sendbuf[1] = 0x03;

    Crc_return_data=cal_crc(mbus_Sendbuf, 5);  //取得将要发送数据的CRC值

    Crc_buf[0]=((Crc_return_data >> 8)&0xff);  //取得CRC值的高8位

    Crc_buf[1]=(Crc_return_data & 0xff);   //取得CRC值的低8位

    mbus_Sendbuf[5]=Crc_buf[1];  //CRC值低8位赋值给将要发送的数据的倒数第二个字节

    mbus_Sendbuf[6]=Crc_buf[0];  //CRC值高8位赋值给将要发送的数据的最后一个

    for(i = 0; i < 7; i++)

    {

    Uart1_TxByte(mbus_Sendbuf[i]);

    }

    flag=0;

    uart1_wr=0;

    }

    }

    }

    }

    //**********************************************************************

    //函数名:adc10_start(uchar channel)

    //输入  :ADC转换的通道

    //输出  :ADC值

    //功能描述:ADC转换

    //**********************************************************************

    uint              adc10_start(uchar channel)              //channel = 0~7

    {

    uint              adc;

    uchar              i;

    ADC_RES = 0;

    ADC_RESL = 0;

    ADC_CONTR = (ADC_CONTR & 0xe0) | ADC_START | channel;

    i = 250;

    do{

    if(ADC_CONTR & ADC_FLAG)

    {

    ADC_CONTR &= ~ADC_FLAG;

    adc = (uint)ADC_RES;

    adc = (adc << 2) | (ADC_RESL & 3);

    return              adc;

    }

    }while(--i);

    return              1024;

    }

    /*****************************CRC校验计算函数********************************/

    unsigned int cal_crc(unsigned char *snd, unsigned char num)

    {

    unsigned char i, j;

    unsigned int c,crc=0xFFFF;

    for(i = 0; i < num; i ++)

    {

    c = snd[i] & 0x00FF;

    crc ^= c;

    for(j = 0;j < 8; j ++)

    {

    if (crc & 0x0001)

    {

    crc>>=1;

    crc^=0xA001;

    }

    else crc>>=1;

    }

    }

    return(crc);

    }

    //**********************************************************************

    //函数名:uart1_init(void)

    //输入  :无

    //输出  :无

    //功能描述:串口初始化函数,通信参数为9600 8 N 1

    //**********************************************************************

    void              uart1_init(void)

    {

    PCON |= 0x80;                            //UART0 Double Rate Enable

    SCON = 0x50;                            //UART0 set as 10bit , UART0 RX enable

    AUXR |=  0x01;                            //UART0 使用BRT

    AUXR |=  0x04;                            //BRT set as 1T mode

    BRT = BRT_Reload;

    AUXR |=  0x10;                            //start BRT

    ES  = 1;

    EA = 1;

    }

    //**********************************************************************

    //函数名:Uart1_TxByte(unsigned char dat)

    //输入  :需要发送的字节数据

    //输出  :无

    //功能描述:从串口发送单字节数据

    //**********************************************************************

    void Uart1_TxByte(unsigned char dat)

    {

    B_TI = 0;

    SBUF = dat;

    while(!B_TI);

    B_TI = 0;

    }

    //**********************************************************************

    //函数名:Uart1_String(unsigned char code *puts)

    //输入  :字符串首地址

    //输出  :无

    //功能描述:从串口发送字符串

    //**********************************************************************

    void Uart1_String(unsigned char code *puts)

    {

    for(; *puts != 0; puts++)

    {

    Uart1_TxByte(*puts);

    }

    }

    //**********************************************************************

    //函数名:UART1_RCV (void)

    //输入  :无

    //输出  :无

    //功能描述:串口中断接收函数

    //**********************************************************************

    void UART1_RCV (void) interrupt 4

    {

    if(RI)

    {

    RI = 0;

    RX0_Buffer[uart1_wr++] = SBUF;

    //if(++uart0_wr >= BUF_LENTH)              uart0_wr = 0;

    flag = 1;

    }

    if(TI)

    {

    TI = 0;

    B_TI = 1;

    }

    }

    void delay_ms(unsigned char ms)

    {

    unsigned int i;

    do{

    i = MAIN_Fosc /1400;

    while(--i);

    }while(--ms);

    }

    展开全文
  • 单片机红外测温程序

    2011-09-30 22:20:04
    通过单片机控制红外温度传感器进行温度测量
  • 单片机程序红外传感器的应用,控制流水灯的闪烁。
  • 接下来,我们来看下Omibox机器人上用到的红外线传感器及其原理:02—基础脚本—脚本就一个,也很好理解: 获取Omibox左边或者右边红外传感器的检测结果。进而来判断机器人小车左边或者右边是否...

    这节课我们学习红外线传感器

    01

    —红外线传感器—

    相比于上节课我们讲授的循迹传感器,红外线传感器在生活中我们就接触的多了,家里最常见的就是红外遥控器了吧!另外,红外线传感器在测距,测温方面的应用也是非常广泛的。

    接下来,我们来看下Omibox机器人上用到的红外线传感器及其原理:

    f9b6407ec4c080d01b1c0958c9838331.png

    02

    —基础脚本—

    55b4cba6c8014ff894ebac217d2e775d.png

    脚本就一个,也很好理解:

    获取Omibox左边或者右边红外传感器的检测结果。进而来判断机器人小车左边或者右边是否有障碍物。

    03

    —应用脚本—

    c922d5da3f62da8e7c9cff7e4c4a7d8d.png

    上面是一个完整使用红外线传感器来控制机器人小车运动避障的脚本。

    我们来梳理下,总共其实有4种情况:

    1)左右两边都有障碍物

    2)左边有障碍物

    3)右边有障碍物

    4)左右两边都没有障碍物

    对应这四种情况,逻辑如下:

    7fd98f72f6bbcdd9a2754a0e635bfcc2.png

    根据上图,我们就能比较容易的制作出逻辑脚本了,注意脚本中“如果...否则...”的多处嵌套使用。

    接下来,就上传脚本试下吧,看看机器人小车在运动中是否会自动避障呢?

    本系列其他教程链接如下:
    编程机器人 -- 简介

    编程机器人2 -- 控制车灯

    编程机器人3 -- 使用按键控制

    编程机器人4 -- 声音传感器与光传感器

    编程机器人5 -- 马达/电机

    编程机器人6 -- 点阵屏

    编程机器人7 -- 颜色传感器

    编程机器人8 -- 循迹传感器

    展开全文
  • 详细介绍如何从零开始用51单片机去实现智能小车的控制,在本系列的上一篇文章中介绍了如何让小车动起来,本文作为本系列的第二篇文章,主要介绍小让车实现自动避障所涉及的一些传感器,如超声波模块、漫反射光电管、...

       我会通过本系列文章,详细介绍如何从零开始用51单片机去实现智能小车的控制,在本系列的上一篇文章中介绍了如何让小车动起来,本文作为本系列的第二篇文章,主要介绍让小车实现自动避障所涉及的一些传感器,如超声波模块、漫反射光电管、4路红外寻迹避障传感器的介绍及使用。

       对于熟悉这些模块的读者,可跳过此篇文章,直接阅读本系列的下一篇文章

    本系列文章链接:

    -----------------------------------------------------------------------------

       详细介绍如何从零开始制作51单片机控制的智能小车(一)———让小车动起来
       详细介绍如何从零开始制作51单片机控制的智能小车(二)———超声波模块、漫反射光电管、4路红外传感器的介绍和使用
       详细介绍如何从零开始制作51单片机控制的智能小车(三)———用超声波模块和漫反射光电传感器实现小车的自动避障
       详细介绍如何从零开始制作51单片机控制的智能小车(四)———通过蓝牙模块实现数据传输以及通过手机蓝牙实现对小车运动状态的控制
       详细介绍如何从零开始制作51单片机控制的智能小车(五)———对本系列第四篇文章介绍的手机蓝牙遥控加减速异常的错误的介绍及纠正

    -----------------------------------------------------------------------------

    一、4路红外寻迹避障传感器模块

       1、线路连接

       传感器与控制板之间的连接很简单,每个传感器与控制板都有3根线相接,即一根VCC,一根GND,还有一根信号线,传感器和控制板上都有白色标识,连线很方便,稍微细心一下就行,别把VCC和GND接反了就行(接反了,一通电传感器可能就烧坏了,我烧过…),控制板与单片机之间的连接,有6根线,一根VCC,一根GND,4根信号线,接法如下:DO1— 第1路TTL电平输出,接在单片机选定的管脚上,如P10,D02—第2路TTL电 平输出,接在单片机选定的管脚上,如P11,DO3—第3路TTL电 平输出,接在单片机选定的管脚上,如P12,DO4—第4路TTL电平输出,接在单片机选定的管脚上,如P13,GND— 接单片机的GND管脚,VCC— 接单片机的5V管脚

       2、工作原理

       每1路的传感器的红外发射管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,红外接收管一直处于关断状态,此时模块的TTL输出端为高电平,相应指示二极管一直处于熄灭状态;当被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,红外接收管导通,此时模块的TTL输出端为低电平,指示二极管被点亮。

       简单点说,当传感器检测到障碍物时,对应的TTL输出低电平,比如第一路传感器信号线连接在单片机的P10口,当第一路传感器检测到障碍物时,单片机P10口就为低电平,也就是说通过读取传感器信号线连接的单片机I/O口的高低电平,就可以知道传感器前方有没有障碍物。

       3、检测距离的调节

       当模块检测到前方障碍物信号时,电路板上红色指示灯点亮电平,同时oUT端口持续输出低电平信号,也就是说,我们可以通过在传感器前面一定距离放置障碍物,通过观察电路板上的指示灯的亮灭,来调节检测距离,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;逆时针调电位器,检测距离减少,官方介绍该模块检测距离2~30cm,但是根据我的实测在20cm以上时,随着距离的增加会趋向不稳定,尤其是在30cm附近,车处于运动状态时可能会由于车的震动从而使传感器始终处于检测到障碍物状态,所以检测距离一般调节在20几厘米左右较好。

       4、注意事项

       (1)使用本模块时候,避免探头阳光直射。光线对模块有干扰作用。也就是说本模块受阳光干扰严重,在室外传感器大概率不能正常工作,当然可以采取一定的防护措施,但是效果有限,这也是本次我不采用这种传感器的原因
       (2)灵敏度调节不应过高,过高的灵敏度可能引起误触发。
       (3)在临界值时,会出现ED微亮,这种情况是未触发状态。此时输出为高电平。

    二、漫反射式传感器

       1、线路连接

        对于我使用的这个是NPN型常开漫反射传感器,每个传感器有三根线,棕色的线接正极,虽然产品介绍是6v到36v的输入电压,我接到单片机上的5v管脚上,测试传感器是可以正常工作的,蓝色的线接单片机的负极(GND),黑色的线是信号线,接单片机的I/O口

       2、关于漫反射式传感器的简单介绍

        光电开关是一种具有开关量输出的位移传感器,输出有NPN、PNP、常开、常闭及继电器等,可检测金属(如钢、铁、铜)、塑料、玻璃、木头、水、纸、磁铁等透明和不透明物体,可与PLC、伺服控制器、变频器、计算器、控制器相连接达到自动输入信号的目的,广泛应用于机械、纺织、轻工造纸、印刷、包装等行业。
        光电开关属于无接触测量传感器,其检测距离范围比较宽,在计数、测距和行程控制等许多测控系统中得到广泛应用。反射式光电开关又分为漫反射和镜反射式光电开关

       3、工作原理

        漫反射光电开关是一种集发射器和接收器于一体的传感器,当有被检测物体经过时,将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。当被检测物体的表面光亮或其反光率极高时,漫反射式的光电开关是首选的检测模式。

       简单点说,就本文介绍的NPN型常开漫反射光电传感器,当检测到障碍物时,与黑线连接的单片机I/O口被置低电平0,也就是说通过读取该I/O口的电平高低,就可以知道传感器前方有没有障碍物

       4、检测距离的调节

        顺时针调节电位器检测距离变远,逆时针调节检测距离变近,当我用手充当障碍物时,在20cm处可正常工作,最终检测距离我调节在了17cm。

    三、超声波模块

       1、线路连接

        我使用的这种HC-SR04型号的超声波传感器需要4根线,VCC接单片机的5v接口(该传感器工作电压为5v),Trig (控制端)接单片机的I/O口(跟程序定义的管脚相同就行),是超声波传感器的控制管脚,Echo (接收端)接单片机的I/O口(跟程序定义的管脚相同就行),是超声波传感器的接收管脚、GND接单片机的GND。

       2、工作原理

        (1)采用(I/O口触发测距、给至少10us的高电平信号)
        (2)模块自动发送8个40khz的方波、自动检测是否有信号返回
        (3)有信号返回、通过I0输出一高电平、高电平持续的时间就是超声波从发射到返回的时间、测试距离=(高电平时间*声速(340M/s)/2)

       详细点说,它是怎么工作的呢,首先我们需要让超声波模块Trig 管脚所接的单片机I/O口置为高电平,而且需要持续10us以上,这时超声波模块就会自动发出8个40khz的方波、自动检测是否有信号返回,也就是检测前方有没有障碍物,若有障碍物则通过Echo所接的单片机I/O口将信号返回,该I/O被置为高电平1,通过测量高电平持续的时间,也可以通过公式:测试距离=(高电平时间*声速(340M/s)/2),计算出障碍物距传感器的距离,这个公式很容易理解吧,距离=时间X速度,除以2是因为,超声波测距测得是一个来回的距离,也就是真实距离的两倍,所以要除以2。
       跟前面两种传感器不同,前面两种传感器使用起来很简单,只需要检测传感器信号线电平的高低就可以知道有没有障碍物,传感器呢 只需要接到单片机上,在程序上只需要定义个I/O口就行了,所以他们的工作原理不理解,也可以正常的使用,但是超声波模块不同,如果上面的工作原理不理解,或超声波模块工作的的过程不理解,就很难去写或者修改超声波模块的程序。所以一定要理解上面的步骤,至于如何去写超声波测距的程序,我会在本系列下一篇博文:“详细介绍如何从零开始制作51单片机控制的智能小车(三)———用超声波模块和漫反射光电传感器实现小车的自动避障”中介绍,当然我会把超声波模块的一些参考例程,和相关资料放在本文附件里,需要者自取,大家可以先自己看一下。

       3、检测距离的调节

        与前两种传感器不同,超声波模块没有调节距离的电位器,不能通过硬件调节检测距离,需要通过程序调节,我将会在本系列下一篇文章中介绍如何写超声波测距程序时介绍如何调节检测距离,值得一说的是超声波模块的检测距离比前面两种传感器远得多,比如本文介绍的这种检测距离可达450cm,即4.5米,有些型号可达7m 、15m 而且检测精度很高误差在3mm 1mm 甚至更小,所以说超声波模块还是有很多优势的。

       4、注意事项

       模块应先插好在电路板.上再通电、避免产生高电平的误动作,如果产生了、从新通电方可解决。

       本文到这里就结束了,超声波模块的资料我会放在附件里,需要者自取,我放的时候都是免费的,但是过段时间它会自己涨…需要的在评论区留言我可以直接发给你,欢迎大家继续阅读本系列的后续文章“详细介绍如何从零开始制作51单片机控制的智能小车(三)———用超声波模块和漫反射光电传感器实现小车的自动避障”
       欢迎大家积极交流,本文未经允许谢绝转载

    展开全文
  • 2 根据红外接收协议写一个接收程序,收到红外信号后就解码出红外按键内容,根据内容控制灯。 3 控制灯的方式:红外遥控器的按键1按下后,小灯能倒计时60秒,倒计时完毕后自动关闭;红外遥控器的按键2能直接关闭小灯...
  • 光电传感器——基于红外反射式的测速机引言在工程实践中,经常会遇到各种需要测量转速的场合。转速是电动机极为重要的一个状态参数,在很多运动系统的测控中,都需要对电机的转速进行测量,不论是直流调速系统还是交流调...
  • 人体热释红外传感器

    千次阅读 2020-05-24 09:24:29
    文章目录GPIO输入的应用场景人体热释红外传感器HC-SR501电气参数功能特点应用范围硬件电路代码实例成果展示资料获取推荐阅读 上一个网文实现了流水灯,《利用STM32F103C8T6最小系统板点亮流水灯 》,这个主要用到了...
  • 本设计采用STC单片机实现对红外线发射接收及继电器的控制,系统由STC单片机控制部分和红外遥控及液晶显示部分、 等组成。该系统由单片机作为主控机控制各个模块的运行,定位控制准确,响应及时,报警迅速并且还有人...
  • 实时时钟+红外+温度传感器+LCD1602显示程序,此程序是在51hei单片机开发板上面做的,如需要移植到自己的电路上,修改相应的端口即可。
  • HC-SR501人体红外传感器

    万次阅读 2019-04-05 12:03:38
    了解人体红外传感器HC-SR501的驱动原理,通过配置STM32F030芯片GPIO相关寄存器,让人体红外传感器识别到人体时使蜂鸣器响起的基础实验。 1、HC-SR501是基于红外线HC-SR501是基于红外线技术的自动控制模块 ,采用...
  • 红外循迹传感器PID循迹算法

    万次阅读 多人点赞 2020-01-15 16:58:11
    红外传感器循迹原理如图1所示: 图1 红外传感器原理  红外二极管发射红外光,接收管接受反射的红外光信号。不同的颜色反光效果不同,如果红外光照射在黑色物体上,由于黑色物体对光的吸收能力强,反射的光很少。...
  • 一、需求 1)检测鱼塘水位;水位过高闸门开启放水,水位过低关闭闸门。 2)检测是否有人靠近鱼塘,...4)热释电红外传感器:HC-SR501 5)电机:5V电机 6)短信模块:SIM800C 7)水位传感器:光电式水位传感器...
  • 在项目开发时为了实现远程通信,需要用到无线通信,无线遥控方式可分为无线电波式、声控式、超声波式和红外线式。...红外遥控方式是以红外线作为载体来传送控制信息的,同时随着电子技术的发展,单片机的出现...
  • 个人感觉红外循迹小车和那些遥控小车的区别就是信号发射不同:遥控小车是通过遥控器发出信号执行相应的动作,而红外循迹是通过红外传感器检测不同颜色来执行相应的操作,本例是以白底黑线为例。 小车跑道是恩智浦...
  • 基于单片机的智能家居控制系统——传感器信号采集、GSM模块和红外学习遥控设计与分析.pdf
  • 单片机通过红外线在数据管上显示代码和控制蜂鸣器
  • 基于单片机的智能窗帘控制系统设计(附程序代码)(论文18000字,程序代码)摘要:二十一世纪初以来,科学技术不断发展,智能家居涌现于各家各户,人们越来越重视生活质量的提高。但是传统的手动开合窗帘耗时耗力,并且有...
  • keil + STC89C52RC + 超声传感器 + 蓝牙串口模块+红外壁障模块 实现多功能智能车的单片机控制,以上模块功能均能实现,可实现电脑上位机的蓝牙无线控制,已亲自验证修改,keil中能够直接编译运行。带有多个开发应用...
  • 有关于单片机课程设计的源程序,具体是热释电红外感应的源程序,不一定适合你但是很不错
  • 基于AT89C51单片机的超声波传感器测距

    万次阅读 多人点赞 2019-01-19 22:44:50
    目录 基于超声波测距传感器的汽车倒车报警器 问题咨询及项目源码请加群: QQ群: 名称:IT项目交流群 群号:245022761 ...4. 学会控制LED灯亮灭。 5. 学会使用蜂鸣器发出报警声 二、项目要求 ...
  • 一智能循迹小车简介 ❂ 小车工作原理 本系统采用较为简单的设计方案,通过红外传感器循迹模块判断黑线的路径,然后由80C51单片机通过IO口控制L298N电机驱动模块改变两个直流电机的工作状态,最后实现循迹功能。...
  • 要求以单片机控制核心,通过红外传感器检测是否有人扔垃圾,并自动打开垃圾箱盖,扔完垃圾后再自动关闭。主要内容包括:(1)红外对管传感器检测是否有人扔垃圾(2)垃圾桶满报警(3)步进电机驱动电路的设计 智能...
  • 基于51单片机红外解码器

    千次阅读 2019-01-08 22:40:29
    该系统通过单片机控制,将红外传感器接收的信号解析出来,LCD1602显示屏将解码数据显示出来。 2.总体原理图 硬件组成 单片机最小系统 LCD1602显示屏 IR红外接收器 系统电源 3.程序设计 (1)IR红外...
  • 蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接... 1、基于51单片机的蓝牙风扇智能小车设计-蓝牙-L298N-红外避障-(电路图+程序源码)本设计由STC89C52单片机电路+蓝牙模块电路+L2...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,700
精华内容 680
关键字:

单片机控制红外传感器程序