欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STM32設(shè)計(jì)的酒精檢測(cè)儀

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2023-06-18 14:17 ? 次閱讀

一、需求分析

隨著社會(huì)的發(fā)展和生活水平的提高,人們對(duì)于行車安全、家庭安全的要求越來越高,而酒駕等問題也日漸突出,為此,開發(fā)一款基于STM32的酒精檢測(cè)儀,通過檢測(cè)酒精濃度,實(shí)時(shí)顯示結(jié)果并進(jìn)行報(bào)警,可以有效避免因酒后駕車帶來的安全隱患。

二、設(shè)計(jì)思路

2.1 硬件設(shè)計(jì)

1、主控芯片采用STM32F103RCT6,該芯片具有較高的性能和穩(wěn)定性,能夠滿足本設(shè)計(jì)的各項(xiàng)需求。

2、酒精傳感器采用MQ-3模塊,該模塊具有高精度、響應(yīng)速度快等特點(diǎn),能夠準(zhǔn)確檢測(cè)酒精濃度。

3、OLED顯示屏,用于實(shí)時(shí)顯示酒精濃度等信息。

4、蜂鳴器,用于進(jìn)行聲音報(bào)警。

5、按鍵,用于設(shè)定報(bào)警閾值。

2.2 軟件設(shè)計(jì)

1、IO口配置:將相應(yīng)的IO口配置為輸入輸出,并使能對(duì)應(yīng)的時(shí)鐘。

2、ADC配置:將ADC采樣通道、采樣時(shí)間、采樣頻率等參數(shù)進(jìn)行配置。

3、OLED配置:初始化OLED。

4、中斷初始化:對(duì)按鍵進(jìn)行中斷初始化,并在中斷服務(wù)函數(shù)中實(shí)現(xiàn)相應(yīng)的操作。

5、主程序:定時(shí)讀取酒精傳感器的濃度值并將其轉(zhuǎn)換為電壓值,然后通過ADC進(jìn)行采樣,最后通過OLED顯示屏進(jìn)行實(shí)時(shí)顯示。同時(shí)也需要根據(jù)設(shè)定的閾值進(jìn)行判斷,并觸發(fā)相應(yīng)的報(bào)警。

2.3 程序設(shè)計(jì)思路

main()
 {
     初始化IO口
     初始化ADC
     初始化OLED
     配置中斷
     while(1)
     {
         讀取濃度值并轉(zhuǎn)換為電壓
         進(jìn)行ADC采樣
         計(jì)算實(shí)際濃度值
         顯示實(shí)時(shí)濃度值
         判斷是否超過設(shè)定閾值
         觸發(fā)相應(yīng)的報(bào)警
     }
 }
 ?
 void EXTIx_IRQHandler()
 {
     檢測(cè)按鍵狀態(tài)
     根據(jù)按鍵狀態(tài)進(jìn)行相應(yīng)的操作
 }

三、代碼設(shè)計(jì)

//頭文件引用
 #include "stm32f10x.h"
 #include "OLED.h"
 #include "ADC.h"
 #include "MQ3.h"
 ?
 //定義相關(guān)參數(shù)
 #define THRESHOLD1 100
 #define THRESHOLD2 200
 #define THRESHOLD3 300
 ?
 //定義中斷服務(wù)函數(shù)
 void EXTI0_IRQHandler(){
   if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0){
     threshold++;
     if(threshold == 4) threshold = 1;
     OLED_Clear();
     OLED_ShowString(0,0,"Threshold:");
     switch(threshold){
       case 1:{
         OLED_ShowString(70,0,"100");
         break;
       }
       case 2:{
         OLED_ShowString(70,0,"200");
         break;
       }
       case 3:{
         OLED_ShowString(70,0,"300");
         break;
       }
       default:{
         break;
       }
     }
   }
   EXTI_ClearITPendingBit(EXTI_Line0);
 }
 ?
 int main(void)
 {
     //初始化IO口
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOA, ENABLE);   //使能端口時(shí)鐘
     GPIO_InitTypeDef GPIO_InitStructure;                                           //定義GPIO結(jié)構(gòu)體
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                               //輸出模式
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                              //速度50MHz
     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;                                     //LED所在引腳
     GPIO_Init(GPIOC, &GPIO_InitStructure);                                         //初始化GPIOC13
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;                          //浮空輸入模式
     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;                                      //按鍵所在引腳
     GPIO_Init(GPIOA, &GPIO_InitStructure);                                         //初始化GPIOA0
 ?
     //初始化ADC
     ADC_Configuration();
 ?
     //初始化OLED
     OLED_Init();
     OLED_Clear();
 ?
     //配置中斷
     EXTI_InitTypeDef EXTI_InitStructure;
     NVIC_InitTypeDef NVIC_InitStructure;
     GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);
     EXTI_InitStructure.EXTI_Line = EXTI_Line0;
     EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
     EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
     EXTI_InitStructure.EXTI_LineCmd = ENABLE;
     EXTI_Init(&EXTI_InitStructure);
     NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
     NVIC_Init(&NVIC_InitStructure);
 ?
     //定義相關(guān)變量
     uint16_t adc_value = 0;
     float voltage = 0.0;
     float concentration = 0.0;
     uint8_t threshold = 1;
 ?
     while(1)
     {
         //讀取酒精傳感器的濃度值并轉(zhuǎn)換為電壓值
         adc_value = Get_ADC1_ConvertedValue(ADC_Channel_6);
         voltage = (adc_value * 3.3) / 4096;
 ?
         //計(jì)算實(shí)際濃度值
         concentration = Get_MQ3_Concentration(voltage);
 ?
         //顯示實(shí)時(shí)濃度值
         OLED_ShowString(0, 0, "Concentration:");
         OLED_ShowNum(100, 0, concentration, 1, 2);
 ?
         //判斷是否超過設(shè)定閾值
         if(concentration > THRESHOLD3){
             GPIO_SetBits(GPIOC, GPIO_Pin_13);      //LED燈亮
             BEEP_ON;                                //蜂鳴器報(bào)警
         }
         else if(concentration > THRESHOLD2){
             GPIO_ResetBits(GPIOC, GPIO_Pin_13);    //LED燈滅
             BEEP_OFF;                               //蜂鳴器關(guān)閉
         }
         else if(concentration > THRESHOLD1){
             GPIO_SetBits(GPIOC, GPIO_Pin_13);      //LED燈亮
             BEEP_ON;                                //蜂鳴器報(bào)警
         }
         else{
             GPIO_ResetBits(GPIOC, GPIO_Pin_13);    //LED燈滅
             BEEP_OFF;                               //蜂鳴器關(guān)閉
         }
     }
 }
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2272

    文章

    10926

    瀏覽量

    357758
  • 蜂鳴器
    +關(guān)注

    關(guān)注

    12

    文章

    893

    瀏覽量

    46113
  • OLED顯示屏
    +關(guān)注

    關(guān)注

    6

    文章

    218

    瀏覽量

    30816
  • 酒精檢測(cè)儀
    +關(guān)注

    關(guān)注

    0

    文章

    22

    瀏覽量

    8928
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    酒精檢測(cè)儀仿真圖

    論壇的兄弟們,我們老師要求我們不用單片機(jī),做出酒精檢測(cè)儀的仿真圖,我們?cè)O(shè)計(jì)的仿真是由MQ-3、A/D轉(zhuǎn)換、譯碼顯示酒精濃度組成。但是最后因?yàn)槟芰τ邢夼怀鰜恚M值軅兡芑c(diǎn)時(shí)間幫我做一個(gè)完整的仿真,明天下午就要交,急求,希望兄
    發(fā)表于 06-29 22:18

    請(qǐng)問有酒精檢測(cè)儀的程序嗎?

    各位大佬有沒有酒精檢測(cè)儀的程序啊?
    發(fā)表于 03-27 22:34

    RoHS檢測(cè)儀來測(cè)酒精含量可以嗎,會(huì)不會(huì)大材小用了?

    ``用RoHS檢測(cè)儀來測(cè)試酒精,說實(shí)在的是有點(diǎn)大材小用了,大可節(jié)省這不必要的支出,交警用的酒精檢測(cè)儀是專門測(cè)酒精含量的,這個(gè)方便實(shí)惠,所以用
    發(fā)表于 04-24 15:01

    如何去實(shí)現(xiàn)一種基于51單片機(jī)酒精濃度檢測(cè)儀的設(shè)計(jì)

    基于51單片機(jī)的酒精濃度檢測(cè)儀是由哪些部分組成?如何去實(shí)現(xiàn)一種基于51單片機(jī)酒精濃度檢測(cè)儀的設(shè)計(jì)?
    發(fā)表于 10-18 09:34

    基于51單片機(jī)的酒精濃度檢測(cè)儀的設(shè)計(jì)

    基于51單片機(jī)的酒精濃度檢測(cè)儀的設(shè)計(jì),感興趣的可以看看。
    發(fā)表于 01-04 15:23 ?263次下載

    基于單片機(jī)的酒精濃度檢測(cè)儀的研究與設(shè)計(jì)

    基于單片機(jī)的酒精濃度檢測(cè)儀的研究與設(shè)計(jì)
    發(fā)表于 12-11 15:52 ?14次下載

    酒精檢測(cè)儀的用及電路設(shè)計(jì)原理分析

    酒精檢測(cè)儀是用來檢測(cè)人體是否攝入酒精及攝入酒精多少程度的儀器。它可以作為交通警察執(zhí)法時(shí)檢測(cè)飲酒司
    的頭像 發(fā)表于 08-05 16:00 ?3.7w次閱讀
    <b class='flag-5'>酒精</b><b class='flag-5'>檢測(cè)儀</b>的用及電路設(shè)計(jì)原理分析

    酒精檢測(cè)儀的產(chǎn)品特點(diǎn)是怎樣的

    酒精檢測(cè)棒不僅是酒精檢測(cè)儀還是一種多用型電子產(chǎn)品,在酒精檢測(cè)結(jié)束后會(huì)有語音播報(bào)功能,這種指揮棒式
    發(fā)表于 12-21 15:19 ?669次閱讀

    電筒式酒精檢測(cè)儀的工作原理是怎樣的?

    為什么需要酒精測(cè)試 據(jù)統(tǒng)計(jì)全球大概有百分之五十的車禍與飲酒有關(guān),而想加大對(duì)酒后駕駛的懲罰力度,首先要解決的就是如何高效的測(cè)量人身體的酒精含量,酒精測(cè)試
    發(fā)表于 01-05 17:13 ?917次閱讀

    酒精檢測(cè)儀為什么呼一口氣就能檢測(cè)人體酒精的含量

    手持酒精檢測(cè)儀可以用來確認(rèn)司機(jī)是否有酒駕行為。為什么呼一口氣就能檢測(cè)人體酒精含量?小小的酒精檢測(cè)儀
    發(fā)表于 01-13 16:31 ?1724次閱讀

    酒精檢測(cè)儀檢測(cè)原理是怎樣的

    所需時(shí)間,下面跟隨深圳威爾電器小編一起來具體了解一下酒精檢測(cè)儀檢測(cè)原理是什么吧? 當(dāng)具有N型導(dǎo)電性的氧化物暴露在大氣中時(shí),會(huì)由于氧氣的吸附而減少其內(nèi)部的電子數(shù)量而使其電阻增大。其后如果大氣中存在某種特定的
    發(fā)表于 03-01 14:45 ?6403次閱讀

    常用的酒精檢測(cè)儀都是什么原理

    來具體了解一下酒精檢測(cè)儀檢測(cè)原理是什么吧? 常用的酒精檢測(cè)儀都是什么原理呢? 1、濕化學(xué)法 其原理是
    發(fā)表于 04-21 14:49 ?1.8w次閱讀

    如何構(gòu)建一個(gè)可充電酒精檢測(cè)儀

    今天我們將構(gòu)建一個(gè) DIY 可充電酒精檢測(cè)儀。眾所周知,酒精分析使用呼出氣中的酒精含量來計(jì)算人血液中的
    的頭像 發(fā)表于 06-13 15:44 ?2407次閱讀
    如何構(gòu)建一個(gè)可充電<b class='flag-5'>酒精</b><b class='flag-5'>檢測(cè)儀</b>

    基于51單片機(jī)的酒精檢測(cè)儀設(shè)計(jì)(實(shí)物)

    畢業(yè)設(shè)計(jì)(論文)的內(nèi)容設(shè)計(jì)基于單片機(jī)的酒精檢測(cè)儀 能夠完酒精檢測(cè)及聲光報(bào)警。課題要求廣泛查閱和收集資料,根據(jù)題目要求設(shè)計(jì)酒精
    發(fā)表于 09-07 10:08 ?3次下載

    酒精檢測(cè)儀是如何識(shí)別酒駕的

    酒駕是一種極具危險(xiǎn)性和社會(huì)危害性的行為。酒精對(duì)人體的影響較為復(fù)雜,且在駕駛過程中會(huì)嚴(yán)重影響駕駛者的反應(yīng)速度與判斷力。為了有效防止酒駕,酒精檢測(cè)儀成為執(zhí)法部門的重要工具。那么,你是否好奇過酒精
    的頭像 發(fā)表于 12-10 09:47 ?343次閱讀
    <b class='flag-5'>酒精</b><b class='flag-5'>檢測(cè)儀</b>是如何識(shí)別酒駕的