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

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

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

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

基于RA6M5的智能煙霧感應(yīng)吸除系統(tǒng)設(shè)計(jì)

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2023-11-06 12:21 ? 次閱讀

今日分享野火瑞薩創(chuàng)意氛圍賽選手的作品——基于RA6M5的智能煙霧感應(yīng)吸除系統(tǒng)。

該系統(tǒng)是基于野火啟明RA6M5開發(fā)板制作的一款智能煙霧感應(yīng)裝置。創(chuàng)作背景是作者在手工焊接電子元器件或電路板時(shí)候,常常會因?yàn)殚L時(shí)間吸入焊接產(chǎn)生的煙霧而導(dǎo)致身體不適。因此趁著野火創(chuàng)意氛圍賽提供的學(xué)習(xí)機(jī)會,在啟明開發(fā)板上實(shí)現(xiàn)感應(yīng)煙霧并利用風(fēng)扇吸除的功能,經(jīng)過初步驗(yàn)證,該系統(tǒng)能較好的達(dá)到理想控制狀態(tài)。

一、項(xiàng)目簡介

該系統(tǒng)使用的開發(fā)板是野火啟明RA6M5,使用到的額外外設(shè)模塊有一路繼電器、7.4V電池模塊、煙霧傳感器。是基于瑞薩FSP庫完成軟件程序的編寫,由于時(shí)間原因,所有電路連接采用杜邦線完成。

二、項(xiàng)目說明

該系統(tǒng)有兩個工作模式,可通過野火啟明RA6M5上板載按鍵2切換工作模式。其中工作模式一是通過按鍵手動控制風(fēng)扇轉(zhuǎn)動。工作模式二是通過煙霧傳感器感應(yīng)煙霧從而發(fā)送信號驅(qū)動風(fēng)扇轉(zhuǎn)動。

三、系統(tǒng)方案

由于該系統(tǒng)結(jié)構(gòu)比較簡單,因此無需給出系統(tǒng)框圖。簡述過程就是利用GPIO輸出功能去驅(qū)動繼電器打開,將風(fēng)扇與7.4V模塊導(dǎo)通轉(zhuǎn)動。利用GPIO輸入功能識別煙霧傳感器電平信號從而驅(qū)動繼電器。

四、硬件方案展示

1.風(fēng)扇模塊

模塊介紹:該模塊額定電壓為12V,工作電壓為7~12V由于作者手上沒有12V直流電池,因此用7.4V電池模塊替代。

2.繼電器模塊

模塊介紹:由于風(fēng)扇模塊工作電壓遠(yuǎn)高于單片機(jī)工作電壓3.3V,因此利用繼電器特性,可實(shí)現(xiàn)GPIO輸出功能控制風(fēng)扇轉(zhuǎn)動或停止。

3.煙霧傳感器 aee00b72-7c59-11ee-939d-92fbcf53809c.png

模塊介紹:MQ-2氣體傳感器所使用的氣敏材料是在清潔空氣中電導(dǎo)率較低的二氧化錫 (SnO2)。當(dāng)傳感器所處環(huán)境中存在可燃?xì)怏w時(shí),傳感器的電導(dǎo)率隨空氣中可燃?xì)怏w濃度的增加而增大。使用簡單的電路即可將電導(dǎo)率的變化轉(zhuǎn)換為與該氣體濃度相對應(yīng)的輸出信號??梢杂糜谠撓到y(tǒng)中煙霧監(jiān)測裝置,傳感器特設(shè)M3固定安裝孔,使用寬電壓LM393比較器,信號干凈,波形好,驅(qū)動能力強(qiáng),超過15mA,配可調(diào)精密電位器調(diào)節(jié)靈敏度。

4.杜邦線連接介紹

繼電器信號引腳連接P500,煙霧傳感器信號線連接P200,按鍵、LED燈均使用板載外設(shè),因此不再聲明。

五、軟件配置(RASC)

與程序編寫

1.RASC部分

(一)系統(tǒng)時(shí)鐘配置

系統(tǒng)時(shí)鐘使用默認(rèn)設(shè)置200M

(二)LED燈配置

af05ee50-7c59-11ee-939d-92fbcf53809c.jpg

啟動板載LED燈用來顯示當(dāng)前工作狀態(tài)

(三)按鍵配置

af2c000e-7c59-11ee-939d-92fbcf53809c.jpg

配置按鍵用于切換功能

(四)煙霧傳感器輸入檢測配置

af5351d6-7c59-11ee-939d-92fbcf53809c.jpg

和按鍵配置同理

(五)繼電器配置

af7c307e-7c59-11ee-939d-92fbcf53809c.jpg

2.KEIL程序編寫部分

(一)系統(tǒng)框圖

afb1bdde-7c59-11ee-939d-92fbcf53809c.jpg

(二)LED部分

bsp_led.c代碼

左右滑動查看更多

#include "bsp_led.h"


void Led_init(void)
{
    //調(diào)用 R_IOPORT_Open 函數(shù)來初始化 IOPORT 模塊
    R_IOPORT_Open (&g_ioport_ctrl, g_ioport.p_cfg);
}

bsp_led.h代碼

左右滑動查看更多

#ifndef _BSP_LED_H
#define _BSP_LED_H


#include "hal_data.h"


#define LED1_TOGGLE R_PORT4->PODR ^= 1<<(BSP_IO_PORT_04_PIN_00 & 0xFF)
#define LED2_TOGGLE R_PORT4->PODR ^= 1<<(BSP_IO_PORT_04_PIN_03 & 0xFF)
#define LED3_TOGGLE R_PORT4->PODR ^= 1<<(BSP_IO_PORT_04_PIN_04 & 0xFF)


#define LED1_ON R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_04_PIN_00,BSP_IO_LEVEL_LOW);
#define LED2_ON R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_04_PIN_03,BSP_IO_LEVEL_LOW);
#define LED3_ON R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_04_PIN_04,BSP_IO_LEVEL_LOW);


#define LED1_OFF R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_04_PIN_00,BSP_IO_LEVEL_HIGH);
#define LED2_OFF R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_04_PIN_03,BSP_IO_LEVEL_HIGH);
#define LED3_OFF R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_04_PIN_04,BSP_IO_LEVEL_HIGH);


void Led_init(void);


#endif

(三)按鍵部分
bsp_key.c代碼

左右滑動查看更多

#include "bsp_key.h"


/* 定義宏 KEY_ON 表示按鍵按下
定義宏 KEY_OFF 表示按鍵沒有按下
*/


/* 按鍵初始化函數(shù) */
void Key_Init(void)
{
  /* 初始化配置引腳(這里重復(fù)初始化了,可以注釋掉) */
  //R_IOPORT_Open (&g_ioport_ctrl, g_ioport.p_cfg);
}


uint32_t Key_Scan(bsp_io_port_pin_t key)
{
    bsp_io_level_t state;
    // 讀取按鍵引腳電平
    R_IOPORT_PinRead(&g_ioport_ctrl, key, &state);
    if (BSP_IO_LEVEL_HIGH == state)
    {
        return KEY_OFF; //按鍵沒有被按下
    }
    else
    {
    do //等待按鍵釋放
    {
        R_IOPORT_PinRead(&g_ioport_ctrl, key, &state);
    } while (BSP_IO_LEVEL_LOW == state);
    }
    return KEY_ON; //按鍵被按下了
}

bsp_key.h代碼

左右滑動查看更多

#ifndef _BSP_KEY_H
#define _BSP_KEY_H


#include "hal_data.h"


#define KEY_ON 1
#define KEY_OFF 0


#define KEY1_SW2_PIN BSP_IO_PORT_00_PIN_04
#define KEY2_SW3_PIN BSP_IO_PORT_00_PIN_05


#define FAN_TOGGLE R_PORT5->PODR ^= 1<<(BSP_IO_PORT_05_PIN_00 & 0xFF)//繼電器狀態(tài)翻轉(zhuǎn)


void Key_Init(void);
uint32_t Key_Scan(bsp_io_port_pin_t key);


#endif

(四)系統(tǒng)滴答定時(shí)器部分
bsp_SysTick.c代碼

左右滑動查看更多

#include "bsp_SysTick.h"


static __IO uint32_t IT_nums; //延時(shí)需要觸發(fā)中斷的次數(shù)
static uint32_t IT_Period; //中斷周期(單位為時(shí)鐘節(jié)拍數(shù))


uint32_t Mode_mstick;
uint32_t Systick_mstick;


/**
* @brief 啟動系統(tǒng)滴答計(jì)時(shí)器 SysTick
* @param IT_frequency: 滴答計(jì)時(shí)器每秒的中斷次數(shù)
* @retval 無
*/
void SysTick_Init(uint32_t IT_frequency)
{
  /* SystemFrequency在這里默認(rèn)為200M
   * SystemFrequency / 1000  1ms中斷一次
   * SystemFrequency / 100000 10us中斷一次
   * SystemFrequency / 1000000 1us中斷一次
   */
  IT_Period = SystemCoreClock / IT_frequency;//個人理解:設(shè)置分頻
  uint32_t err = SysTick_Config (IT_Period);//把分頻設(shè)置進(jìn)系統(tǒng)
  assert(err==0); //capture error
}


/**
* @brief 延時(shí)程序
* @param delay: 延時(shí)的單位時(shí)間
* @param unit: 延時(shí)的單位
* @retval 無
*/
void SysTick_Delay(uint32_t delay, sys_delay_units_t unit)
{
    uint32_t SumTime = delay * unit; //計(jì)算總延時(shí)時(shí)間 (單位為時(shí)鐘節(jié)拍數(shù))
    IT_nums = SumTime/IT_Period;//計(jì)算次數(shù),比如1ms一次中斷,設(shè)置1000,就是1s
    while (IT_nums != 0);//中斷進(jìn)去一次-一次,直到為0跳出
}


/**
 * @brief SysTick的中斷服務(wù)函數(shù)
 * @param 無
 * @retval 無
 * @attention 用e2 studio編譯會出現(xiàn)警告,但是沒有影響,不需要管
 */


void SysTick_Handler(void)
{
  Systick_mstick++;
}


/*********************************************END OF FILE**********************/

bsp_Systick.h代碼

左右滑動查看更多

#ifndef _BSP_SYSTICK_H
#define _BSP_SYSTICK_H


#include "hal_data.h"


typedef enum
{
  SYS_DELAY_UNITS_SECONDS   = 200000000, ///< Requested delay amount is in seconds
 ? ?SYS_DELAY_UNITS_MILLISECONDS = 200000, ? ?///< Requested delay amount is in milliseconds
 ? ?SYS_DELAY_UNITS_MICROSECONDS = 200 ? ? ? ?///< Requested delay amount is in microseconds
} sys_delay_units_t;


void SysTick_Init(uint32_t IT_frequency);
void SysTick_Delay(uint32_t delay, sys_delay_units_t unit);


#endif

(五)煙霧傳感器部分
bsp_sensor.c代碼

左右滑動查看更多

#include "bsp_sensor.h"
    
void Eensor_Init(void)
{
    //調(diào)用 R_IOPORT_Open 函數(shù)來初始化 IOPORT 模塊
    R_IOPORT_Open (&g_ioport_ctrl, g_ioport.p_cfg);
}

bsp_sensor.h代碼

左右滑動查看更多

#ifndef _BSP_SENSOR_H
#define _BSP_SENSOR_H


#include "hal_data.h"


#define Fan_PIN BSP_IO_PORT_02_PIN_00
#define FAN_ON R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_05_PIN_00,BSP_IO_LEVEL_HIGH);
#define FAN_OFF R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_05_PIN_00,BSP_IO_LEVEL_LOW);


extern uint32_t Mode_mstick;
extern uint32_t Systick_mstick;


void Eensor_Init(void);


#endif

(六)主函數(shù)部分

其余部分均為默認(rèn)程序,在這里不進(jìn)行展示。至此,硬件和軟件部分均介紹完成。

左右滑動查看更多

#include "hal_data.h"
#include "led/bsp_led.h"
#include "key/bsp_key.h"
#include "SysTick/bsp_SysTick.h"
#include "sensor/bsp_sensor.h"


FSP_CPP_HEADER
void R_BSP_WarmStart(bsp_warm_start_event_t event);
FSP_CPP_FOOTER


void Fan_Proc(void);//系統(tǒng)運(yùn)行函數(shù)
bsp_io_level_t Fan_flag;//風(fēng)扇開啟變量,0-關(guān)閉,1-打開
uint8_t Work_Mode = 0;//工作模式 0-手動模式 1-煙霧傳感器模式
/*******************************************************************************************************************//**
 * main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used. This function
 * is called by main() when no RTOS is used.
 **********************************************************************************************************************/
void hal_entry(void)
{
  /* TODO: add your own code here */
    Led_init();//LED燈初始化
    Key_Init();//按鍵初始化
    Eensor_Init();//傳感器初始化
    SysTick_Init(1000);//滴答定時(shí)器1ms
    
    while(1){
        Fan_Proc();
    }
    
#if BSP_TZ_SECURE_BUILD
  /* Enter non-secure code */
  R_BSP_NonSecureEnter();
#endif
}


void Fan_Proc(void)
{
    if(Systick_mstick-Mode_mstick <= 50)return;
 ? ? ? ? ? ? ? ?Mode_mstick = Systick_mstick;
 ? ? ? ?
 ? ? ? ?if( Key_Scan(KEY1_SW2_PIN) == KEY_ON && Work_Mode == 0) //掃描按鍵1
 ? ? ? ?{
 ? ? ? ? ? ? ? ?LED1_TOGGLE; //翻轉(zhuǎn) LED1 狀態(tài)
 ? ? ? ? ? ? ? ?FAN_TOGGLE; //開啟風(fēng)扇
 ? ? ? ?}
 ? ? ? ?if( Key_Scan(KEY2_SW3_PIN) == KEY_ON ) //掃描按鍵2
 ? ? ? ?{
 ? ? ? ? ? ? ? ?LED3_TOGGLE; //翻轉(zhuǎn) LED3 狀態(tài)
 ? ? ? ? ? ? ? ?Work_Mode ^= 1;//反轉(zhuǎn)模式
 ? ? ? ?}
 ? ? ? ?if(Work_Mode == 1)
 ? ? ? ?{
 ? ? ? ? ? ? ? ?R_IOPORT_PinRead(&g_ioport_ctrl, Fan_PIN, &Fan_flag);
 ? ? ? ? ? ? ? ?if(Fan_flag == BSP_IO_LEVEL_LOW)
 ? ? ? ? ? ? ? ?{
 ? ? ? ? ? ? ? ? ? ? ? ?LED2_ON; //打開
 ? ? ? ? ? ? ? ? ? ? ? ?FAN_ON;//風(fēng)扇開啟
 ? ? ? ? ? ? ? ?}
 ? ? ? ? ? ? ? ?else if(Fan_flag == BSP_IO_LEVEL_HIGH)
 ? ? ? ? ? ? ? ?{
 ? ? ? ? ? ? ? ? ? ? ? ?LED2_OFF; //關(guān)閉
 ? ? ? ? ? ? ? ? ? ? ? ?FAN_OFF;//風(fēng)扇關(guān)閉
 ? ? ? ? ? ? ? ?}
 ? ? ? ?}
}

六、總結(jié)

此次項(xiàng)目由于時(shí)間緊迫,整體設(shè)計(jì)較為簡單,主要原因是由于本人前期一直在準(zhǔn)備電子設(shè)計(jì)競賽,直到14號綜測結(jié)束才開始學(xué)習(xí)瑞薩啟明RA6M5開發(fā)板,在學(xué)習(xí)野火瑞薩開發(fā)板中,我領(lǐng)略到了不同于意法半導(dǎo)體系列開發(fā)板的魅力。我認(rèn)為瑞薩半導(dǎo)體是一個非常值得學(xué)習(xí)的芯片系列,其圖形化配置有良好的生態(tài),在學(xué)習(xí)野火編寫的教學(xué)文檔中也受益匪淺。在此,再次感謝野火舉辦創(chuàng)意氛圍賽,讓我有機(jī)會接觸瑞薩開發(fā)板。如果有機(jī)會參與下一期創(chuàng)意氛圍賽,我會努力創(chuàng)造更有特色的產(chǎn)品。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 繼電器
    +關(guān)注

    關(guān)注

    132

    文章

    5363

    瀏覽量

    149596
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6043

    文章

    44623

    瀏覽量

    638737
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17347

    瀏覽量

    352720
  • 瑞薩
    +關(guān)注

    關(guān)注

    35

    文章

    22311

    瀏覽量

    86791
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5124

    瀏覽量

    98276

原文標(biāo)題:【瑞薩RA MCU創(chuàng)意氛圍賽作品賞析】項(xiàng)目12——智能煙霧感應(yīng)吸除系統(tǒng)

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于瑞薩RA6M5/RA2L1和百度語音云的語音識別控制與無線通信控制系統(tǒng)

    整個系統(tǒng)由兩個野火瑞薩啟明開發(fā)板組成,大的RA6M5開發(fā)板接入W5500網(wǎng)口模塊.
    的頭像 發(fā)表于 02-26 13:54 ?1782次閱讀
    基于瑞薩<b class='flag-5'>RA6M5</b>/<b class='flag-5'>RA</b>2L1和百度語音云的語音識別控制與無線通信控制<b class='flag-5'>系統(tǒng)</b>

    瑞薩RA6M5中的QSPI可以用作普通SPI使用嗎?

    各位大佬,請教一個問題,瑞薩RA6M5中的QSPI可以用作普通SPI使用嗎?有沒有相關(guān)教程
    發(fā)表于 12-18 08:53

    RA6M5的QSPI可以作為普通SPI使用嗎?

    RA6M5的QSPI可以作為普通SPI使用嗎?有沒有相關(guān)教程
    發(fā)表于 12-18 08:55

    【野火啟明6M5開發(fā)板體驗(yàn)】1 RA6M5開發(fā)環(huán)境搭建

    的 Secure Crypto Engine (SCE) 配合使用,可實(shí)現(xiàn)安全芯片的功能。 RA6M5采用高效的 40nm 工藝,由靈活配置軟件包 (FSP) 這個開放且靈活的生態(tài)系統(tǒng)概念提供支持,F(xiàn)SP
    發(fā)表于 12-21 22:49

    RA6M5數(shù)據(jù)手冊(英)

    RA6M5數(shù)據(jù)手冊(英)
    發(fā)表于 11-07 19:49 ?1次下載
    <b class='flag-5'>RA6M5</b>數(shù)據(jù)手冊(英)

    RA6M5硬件用戶手冊(英)

    RA6M5硬件用戶手冊(英)
    發(fā)表于 11-07 19:49 ?2次下載
    <b class='flag-5'>RA6M5</b>硬件用戶手冊(英)

    RA6M5數(shù)據(jù)手冊(中英)

    RA6M5數(shù)據(jù)手冊(中英)
    發(fā)表于 11-07 19:49 ?0次下載
    <b class='flag-5'>RA6M5</b>數(shù)據(jù)手冊(中英)

    RA6M5硬件用戶手冊(中英)

    RA6M5硬件用戶手冊(中英)
    發(fā)表于 11-07 19:50 ?2次下載
    <b class='flag-5'>RA6M5</b>硬件用戶手冊(中英)

    RA6M5 組 數(shù)據(jù)表

    RA6M5 組 數(shù)據(jù)表
    發(fā)表于 01-09 19:01 ?0次下載
    <b class='flag-5'>RA6M5</b> 組 數(shù)據(jù)表

    RA6M5 組 用戶手冊: 硬件

    RA6M5 組 用戶手冊: 硬件
    發(fā)表于 01-09 19:02 ?1次下載
    <b class='flag-5'>RA6M5</b> 組 用戶手冊: 硬件

    RA6M5 組 數(shù)據(jù)表

    RA6M5 組 數(shù)據(jù)表
    發(fā)表于 06-30 18:41 ?0次下載
    <b class='flag-5'>RA6M5</b> 組 數(shù)據(jù)表

    RA6M5 組 用戶手冊: 硬件

    RA6M5 組 用戶手冊: 硬件
    發(fā)表于 06-30 18:42 ?1次下載
    <b class='flag-5'>RA6M5</b> 組 用戶手冊: 硬件

    RA6M5硬件手冊

    RA6M5User'sManualHardware
    發(fā)表于 03-23 14:56 ?13次下載

    使用RA6M5開發(fā)板的簡易熱成像儀設(shè)計(jì)

    本項(xiàng)目是使用RA6M5開發(fā)板搭載RTThread系統(tǒng)+LVGL圖形庫實(shí)現(xiàn)的一個簡易熱成像儀。其中傳感器使用的是mlx90640,屏幕是320*240的電容觸摸屏,整個交互由觸摸完成。
    的頭像 發(fā)表于 01-02 13:50 ?884次閱讀
    使用<b class='flag-5'>RA6M5</b>開發(fā)板的簡易熱成像儀設(shè)計(jì)

    基于RA6M5 MCU組的云套件數(shù)據(jù)手冊

    電子發(fā)燒友網(wǎng)站提供《基于RA6M5 MCU組的云套件數(shù)據(jù)手冊.rar》資料免費(fèi)下載
    發(fā)表于 05-17 17:06 ?0次下載
    基于<b class='flag-5'>RA6M5</b> MCU組的云套件數(shù)據(jù)手冊