1. <dd id="dvkot"></dd>

            <dd id="dvkot"><noscript id="dvkot"></noscript></dd>
            <dd id="dvkot"><pre id="dvkot"></pre></dd>
          1. 0
            • 聊天消息
            • 系統消息
            • 評論與回復
            登錄后你可以
            • 下載海量資料
            • 學習在線課程
            • 觀看技術視頻
            • 寫文章/發帖/加入社區
            創作中心
            發布
            • 發文章

            • 發資料

            • 發帖

            • 提問

            • 發視頻

            創作活動

            完善資料讓更多小伙伴認識你,還能領取20積分哦, 立即完善>

            3天內不再提示

            門禁系統設計方案 基于STM32F103C8T6單片機+RFID-RC522模塊+SG90舵機

            zanes ? 2023-04-28 10:56 ? 次閱讀

            一、項目背景

            門禁系統是現代社會中非常重要的安全控制系統之一,其功能是在保障建筑物安全的同時,為合法用戶提供便利。當前設計一種基于STM32+RC522的門禁系統設計方案,通過RFID-RC522模塊實現了對用戶卡的注冊、識別及身份驗證,通過控制SG90舵機實現門鎖的開關,具有較高的安全性和可靠性。實驗結果表明,該門禁系統可以有效地保障建筑物的安全性。

            門禁系統廣泛應用于各種建筑物、企事業單位,用于管理人員的進出、控制人員活動范圍、實現安全監控等功能。傳統的門禁系統采用密碼輸入或刷卡的方式進行身份驗證,但存在易被破解的風險?;?a target="_blank">RFID的門禁系統已經成為一種相對先進的安全控制方案。

            本次設計的STM32+RC522門禁系統,通過RFID-RC522模塊對用戶的卡進行注冊、識別完成身份識別,對門鎖進行開關。系統帶了OLED顯示屏,輸入用戶密碼登錄之后,可以對新卡片進行注冊,添加新卡片,對不使用的卡片進行注銷。在系統里,IC卡的數據都存儲在卡的內部扇區里,通過卡的內部空間進行管理。

            采用5V-步進電機的版本:

            二、系統設計

            門禁系統由STM32F103C8T6單片機、RFID-RC522模塊、SG90舵機、LCD1602液晶顯示屏、鍵盤模塊等組成。其中,STM32F103C8T6單片機作為系統的核心控制器,控制程序的執行;RFID-RC522模塊作為識別用戶卡片的設備;SG90舵機作為門鎖控制設備;OLED顯示屏提供用戶輸入信息和系統信息的顯示;鍵盤模塊方便用戶進行密碼和卡片信息的輸入。

            2.1 軟件設計

            【1】RFID卡信息管理

            本系統采用卡的內部空間進行IC卡信息的管理。每個IC卡可以分為多個扇區,每個扇區包含多個塊,每個塊包含16個字節。扇區0是廠家已經預留好的,用于存儲卡片的序列號,扇區1-15可以由用戶自己配置,用于存儲一些私有數據,如用戶身份、車牌號、員工編號等。

            在本系統中,IC卡信息的管理主要包括三個方面:新卡片注冊、卡片識別和注銷卡片。

            對于新卡片的注冊,用戶需要按下鍵盤上的“#”鍵進入注冊模式,接著輸入管理員密碼,然后將新卡放到RFID讀寫器上,系統將讀取卡片序列號,并在卡片的扇區中存儲用戶名和密碼信息等。

            對于卡片的識別,當用戶按下門禁系統的確認鍵時,系統將讀取RFID模塊中讀取的卡片序列號,并去卡片扇區中查詢用戶名和密碼信息,進行身份驗證。如果卡片識別成功,系統將控制舵機旋轉一圈實現開鎖功能。

            對于注銷卡片,管理員需要輸入密碼進行身份驗證后,再將要注銷的卡片放到RFID讀寫器上,系統將清空該卡片的扇區內所有數據。

            【2】門禁系統安全控制

            本門禁系統采用密碼驗證和卡片識別相結合的方式,提高了系統的安全性。具體來說,系統要求用戶輸入密碼或刷卡進行身份驗證,只有在驗證成功后才能控制門鎖進行開關操作。同時,系統還可以記錄每一次開啟門鎖的時間和用戶信息,以便管理員進行安全監控。

            【3】門鎖控制

            本門禁系統采用SG90舵機控制門鎖的開關,具有結構簡單,控制方便的優點。在門鎖控制過程中,系統對舵機控制信號的頻率和占空比進行精細控制,以實現門鎖的準確開關。

            2.2 硬件設計

            【1】STM32F103C8T6單片機

            STM32F103C8T6單片機是ST公司推出的一款基于Cortex-M3內核的可編程32位單片機,常常被廣泛應用于工業控制、智能家居、嵌入式控制等領域。

            1682582900030e3641k55h7

            它的主要特點包括:

            1. Cortex-M3內核:STM32F103C8T6使用Cortex-M3內核,具有高性能、低功耗、硬實時等特點,可支持多個串口、I2C、SPI、USB等外設,為使用者帶來更大的靈活性。
            2. 32位處理能力:STM32F103C8T6是一款32位單片機,具有比8位、16位單片機更高的數據運算能力、編程靈活度和計算精度。
            3. 較強的系統時間管理能力:STM32F103C8T6內部具備RTC實時時鐘模塊,可實現精準的時間管理和時間標記功能,在一些需要時間同步的應用場景下具有較大的優勢。
            4. 大存儲容量:STM32F103C8T6內置64K字節的閃存和20K字節的SRAM,能夠滿足大型嵌入式應用的存儲需求。
            5. 豐富的外設接口:STM32F103C8T6支持多個外設接口,如SPI、I2C、CAN總線等,方便開發者擴展相關應用場景。
            6. 代碼可移植性強:由于該芯片應用廣泛,可以使用多種開發工具進行開發,例如Keil、STM32CubeMX等,而且支持多種編程語言,如C語言、C++等,因此優點很容易在不同的平臺、不同開發者之間實現代碼的移植。

            【2】RFID-RC522模塊

            RFID-RC522模塊是一種低成本、高性價比的RFID讀寫模塊。它具有高精度、快速讀取等特點,廣泛應用于門禁系統、智能卡管理、物流追蹤等領域。

            1682582900814gaylp5lpdb

            RFID-RC522模塊的特點如下:

            1. 高精度:RFID-RC522模塊采用射頻感應技術進行信號傳輸和讀寫,具有高精度、穩定性強等優點。
            2. 快速讀?。篟FID-RC522模塊讀取速度快,一般只需0.1秒左右就可以完成讀取操作。
            3. 支持多種協議:RFID-RC522模塊支持ISO14443A/B、FeliCa等多種RFID協議,可滿足不同應用場合的需求。
            4. 低功耗:RFID-RC522模塊功耗低,工作電流為13-26mA,待機電流為10A。
            5. 接口簡單:RFID-RC522模塊采用SPI接口進行通信,模塊上的引腳有7個,具有很好的兼容性。
            6. 支持多種開發語言:RFID-RC522模塊支持多種開發語言,如C++、Python等,方便開發者進行二次開發。

            RFID-RC522模塊的使用需要配合相關的庫文件,在Arduino、Raspberry Pi等開發板上進行代碼編寫和開發。常見的使用場景包括門禁系統、智能卡管理、出入庫管理、物流追蹤等領域。

            【3】SG90舵機

            該舵機小巧耐用,可以精確地控制門鎖的開關。

            SG90舵機是一種小型舵機,體積小、重量輕、價格低廉,常常被用于模型飛機、小型機械臂、玩具模型等領域。它采用了直流電機,利用PID控制技術,以及精密的小齒輪減速箱實現轉向角的控制。

            16825829016079qmn9wvvdx

            SG90舵機的特點如下:

            1. 小體積:SG90舵機體積為23mm * 12.2mm * 29mm,重量僅為9g,非常適合小型電子設備。
            2. 高精度:SG90舵機的控制精度比較高,可控制角度范圍為0 ~ 180度,分辨率為1度,可以實現精確到角度的控制。
            3. 低噪音:SG90舵機采用了精密減速齒輪箱,轉動非常平穩,并且噪音非常低。
            4. 低功耗:SG90舵機的電機非常省電,一般使用3V到6V的電源,僅需20 mA的電流,可大大節省電力消耗。
            5. 價格適中:SG90舵機價格相對較低,非常適合初學者或需求量較大的用戶使用。

            SG90舵機在使用時需要通過PWM信號進行控制。

            【4】0.96寸OLED顯示屏

            0.96寸SPI接口OLED顯示屏是一種小型化的屏幕,屬于OLED顯示技術,采用SPI接口連接,外觀尺寸約為12mm * 12mm,分辨率一般為128 * 64或者128 * 32。它可以用于各種小型電子設備,例如手持設備、小型儀器、智能家居控制面板等等。

            OLED即有機發光二極管,與傳統的液晶顯示屏相比,OLED具有響應速度快、視角范圍廣、色彩鮮艷、亮度高等優勢。SPI接口則是一種串行外設接口,具有簡單、靈活、高速等特點。

            1682582902069kl7y0f1y82

            0.96寸SPI接口OLED顯示屏的驅動芯片一般為SSD1306,有128個列和64個行的像素,還有一些有128個列和32個行的像素。其中,128 * 64像素的屏幕顯示面積較大,在顯示圖像和文字時更加清晰和細膩。0.96寸SPI接口OLED顯示屏具有小巧、高清、高速等優點,被廣泛使用在各種小型電子設備中。

            【5】鍵盤模塊

            該模塊可以方便地輸入密碼和卡片信息。

            IIC接口的4x4電容矩陣鍵盤模塊是一種基于IIC總線通信的電容式按鍵模塊,常常被應用在工控、家電、醫療器械等領域。

            168258290281928999uo24g

            它的主要特點包括:

            1. 采用IIC總線通信:IIC接口的4x4電容矩陣鍵盤模塊通過IIC總線通信連接到MCU,簡化了連接方式,方便使用。
            2. 采用電容式按鍵設計:每個按鍵上放置一個電容器,當手指觸摸到按鍵時,電容器的電容值發生變化,通過檢測電容的變化實現按鍵檢測。
            3. 4x4矩陣排列式設計:4x4電容矩陣鍵盤模塊采用矩陣排列式設計,一共有16個按鍵,可以滿足較為復雜的應用場景。
            4. 接口簡單:IIC接口的4x4電容矩陣鍵盤模塊只需要SCL和SDA兩條線連接到MCU即可。
            5. 高靈敏度:電容式按鍵設計使得按鍵檢測更加靈敏,而且不會產生按鍵輕微彈起的誤觸情況,使用更加舒適。
            6. 代碼簡潔:使用該模塊并不需要編寫復雜的按鍵掃描程序,只需要通過讀取IIC總線上的按鍵值即可。

            IIC接口的4x4電容矩陣鍵盤模塊是一種方便易用、高靈敏度的按鍵模塊,通過電容式按鍵設計實現按鍵的檢測和響應,并且通過IIC總線通信簡化了連接方式。它適合于應用于許多領域,如工控、家電和醫療器械等,能夠為使用者的產品帶來更為方便和高效的控制方式。

            三、核心代碼

            3.1 SG90舵機控制代碼

            下面是基于GPIO模擬時序控制STM32F103C8T6驅動SG90舵機旋轉指定的角度的代碼,并封裝成子函數調用。
            #include "stm32f10x.h"
            #include "stm32f10x_gpio.h"
            #include "stm32f10x_rcc.h"
            #include "delay.h"
            #define Servo_pin GPIO_Pin_5
            #define Servo_port GPIOA
            void SG90_Init(void)
            {
            RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
            GPIO_InitTypeDef GPIO_InitStructure;
            GPIO_InitStructure.GPIO_Pin = Servo_pin;
            GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
            GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
            GPIO_Init(Servo_port, &GPIO_InitStructure);
            }
            void SG90_SetAngle(uint8_t angle)
            {
            if(angle>180) angle=180;
            if(angle<0) angle = 0;
            uint8_t temp = angle/2 + 15;
            for(int i=0;i<5;i++)
            {
            GPIO_SetBits(Servo_port, Servo_pin);
            delay_us(temp);
            GPIO_ResetBits(Servo_port, Servo_pin);
            delay_us(20000-temp);
            }
            }
            int main(void)
            {
            SystemInit();
            delay_init();
            SG90_Init();
            while(1)
            {
            for(int i=0;i<=180;i+=10)
            {
            SG90_SetAngle(i);
            delay_ms(500);
            }
            }
            }

            其中,SG90Init()函數用于初始化PA5口,并將其配置為輸出模式。SG90SetAngle()函數用于驅動舵機旋轉到指定角度。在該函數中,首先根據所給的角度值計算出延時的時間temp(單位為微秒),然后使用GPIO口控制SG90舵機在temp延時時間內輸出高電平,其余時間輸出低電平。通過調整延時時間和按角度分配脈沖寬度,達到驅動SG90舵機旋轉的目的。

            main()函數中的for循環控制舵機從0度到180度的循環旋轉。代碼中用到了delayinit()函數和delayms()、delay_us()函數。它們是自行編寫的延時函數,可以實現毫秒和微秒級別的延時,具體代碼如下:

            #include "stm32f10x.h"
            void delay_init(void)
            {
            if (SysTick_Config(SystemCoreClock / 1000000)){
            while(1);
            }
            }
            static __IO uint32_t delay_us_tick;
            void delay_us(uint32_t nUs)
            {
            delay_us_tick = nUs;
            while (delay_us_tick);
            }
            static __IO uint32_t delay_ms_tick;
            void delay_ms(uint32_t nMs)
            {
            delay_ms_tick = nMs;
            while (delay_ms_tick);
            }
            void SysTick_Handler(void)
            {
            if (delay_us_tick > 0){
            delay_us_tick--;
            }
            
            if
             (
            delay
            _ms_tick > 
            0
            ){  
                
            delay
            _ms_tick--;  
            }  
            
            }

            其中,delayinit()函數用于配置系統時鐘源和SysTick定時器,實現每個SysTick時鐘產生一個中斷的功能。delayus()函數和delayms()函數分別用于實現微秒級別和毫秒級別的延時,通過限制delayustick和delaymstick的值實現延時的效果。SysTickHandler()為中斷處理函數,每次SysTick定時器計數減1,當減到0時,相應的delayustick或delaymstick也減1,通過循環等待該值為0實現延時。

            在代碼中的SG90SetAngle()函數中,需要精確控制GPIO的電平時間,使其產生相應的脈沖寬度,從而控制舵機轉動角度。因此,需要配置GPIO口的輸出模式和速度、設定delayus()函數中根據角度計算的電平時間,使得舵機能夠準確地執行旋轉。

            3.2 RC522讀寫代碼

            下面是基于SPI接口控制STM32F103C8T6驅動RFID-RC522模塊完成卡片識別和扇區讀寫的代碼示例。在該代碼中,使用的是SPI1的接口,RFID-RC522模塊通過SPI1接口連接到STM32F103C8T6。

            代碼中通過封裝SPI相關操作和MFRC522庫函數,實現了讀取卡片信息和完成扇區讀寫的功能。

            #include "stm32f10x.h"
            #include "stm32f10x_spi.h"
            #include "stm32f10x_gpio.h"
            #include "stm32f10x_rcc.h"
            #include "delay.h"
            #include "mfrc522.h"
            #include "stdio.h"
            #define SPI_CE_LOW() GPIO_ResetBits(GPIOA,GPIO_Pin_4)
            #define SPI_CE_HIGH() GPIO_SetBits(GPIOA,GPIO_Pin_4)
            void SPI1_Init(void)
            {
            RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
            RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
            
            GPIO_InitTypeDef 
            GPIO_InitStructure;  
            
            GPIO_InitStructure.GPIO_Pin = 
            GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;        
            
            GPIO_InitStructure.GPIO_Mode = 
            GPIO_Mode_AF_PP;    
            
            GPIO_InitStructure.GPIO_Speed = 
            GPIO_Speed_50MHz;   
            
            
            GPIO_Init(GPIOA,
             
            &GPIO_InitStructure);  
            
            
            GPIO_InitStructure.GPIO_Pin = 
            GPIO_Pin_4;  
            
            GPIO_InitStructure.GPIO_Mode = 
            GPIO_Mode_Out_PP;  
            
            GPIO_InitStructure.GPIO_Speed = 
            GPIO_Speed_50MHz;   
            
            
            GPIO_Init(GPIOA,
             
            &GPIO_InitStructure);  
            
            
            SPI_InitTypeDef 
            SPI_InitStructure;  
            
            SPI_InitStructure.SPI_Direction = 
            SPI_Direction_2Lines_FullDuplex;  
            
            SPI_InitStructure.SPI_Mode = 
            SPI_Mode_Master;  
            
            SPI_InitStructure.SPI_DataSize = 
            SPI_DataSize_8b;  
            
            SPI_InitStructure.SPI_CPOL = 
            SPI_CPOL_High;  
            
            SPI_InitStructure.SPI_CPHA = 
            SPI_CPHA_2Edge;  
            
            SPI_InitStructure.SPI_NSS = 
            SPI_NSS_Soft;  
            
            SPI_InitStructure.SPI_BaudRatePrescaler = 
            SPI_BaudRatePrescaler_2;  
            
            SPI_InitStructure.SPI_FirstBit = 
            SPI_FirstBit_MSB;  
            
            SPI_InitStructure.SPI_CRCPolynomial = 
            7;  
            
            
            SPI_Init(SPI1,
             
            &SPI_InitStructure);  
            
            
            
            SPI_Cmd(SPI1,
             
            ENABLE);  
            
            
            }
            uint8_t SPI1_SendByte(uint8_t byte)
            {
            while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
            SPI_I2S_SendData(SPI1, byte);
            
            while
            (SPI_I
            2
            S_GetFlagStatus(SPI
            1
            , SPI_I
            2
            S_FLAG_RXNE) ==  
            
            RESET); return SPI_I2S_ReceiveData(SPI1); }
            void MFRC522_Reset(void) { SPI_CE_LOW(); SPI1_SendByte(0x1B); SPI_CE_HIGH(); }
            uint8_t MFRC522_ReadRegister(uint8_t addr) { SPI_CE_LOW(); uint8_t data; SPI1_SendByte(0x80 | addr); data = SPI1_SendByte(0x00); SPI_CE_HIGH(); return data; }
            void MFRC522_WriteRegister(uint8_t addr, uint8_t val) { SPI_CE_LOW(); SPI1_SendByte(0x7F & addr); SPI1_SendByte(val); SPI_CE_HIGH(); }
            void MFRC522_ReadRegisters(uint8_t addr, uint8_t count, uint8_t *values) { SPI_CE_LOW(); SPI1_SendByte(0x80 | addr); for(uint8_t i=0;i

            解釋代碼的思路:

            該代碼實現了讀取 RFID 標簽(卡片)的數據功能,主要利用 MFRC522 RFID 模塊與單片機的通信,對標簽發送指令并讀取標簽數據。整個過程主要分為以下幾步:

            1. 初始化 MFRC522 模塊。
            2. 檢測是否存在標簽,并獲取標簽類型和 ID 信息。
            3. 在多張同種類型的標簽中,使用防沖撞機制選取一張進行操作。
            4. 鑒權,使用指定的密鑰驗證對應的扇區,并獲取讀寫操作的權限。
            5. 讀取數據,將指定的塊的內容讀取到緩沖區。
            6. 解析標簽數據并進行相應操作,例如打印塊數據。
            7. 暫停 RFID 模塊,等待下一次操作。

            代碼中的注釋也詳細說明了每個函數和變量的作用和用法。

            3.3 0.96寸OLED-SPI接口代碼

            以下是使用STM32F103C8T6驅動SPI接口的0.96寸OLED顯示字符串的示例代碼,該代碼使用了HAL庫:

            cCopy Code#include "main.h"
            #include "spi.h"
            #include "gpio.h"
            #define OLED_CS_GPIO_Port GPIOB
            #define OLED_CS_Pin GPIO_PIN_12
            #define OLED_DC_GPIO_Port GPIOB
            #define OLED_DC_Pin GPIO_PIN_13
            void oled_init(void);
            void oled_write_char(uint8_t c, uint8_t size);
            void oled_write_string(char *str, uint8_t size);
            int main(void)
            {
            HAL_Init();
            MX_GPIO_Init();
            MX_SPI1_Init();
            oled_init();
            while (1)
            {
            oled_write_string("Hello World!", 16);
            HAL_Delay(1000);
            }
            }
            void oled_init(void)
            {
            HAL_GPIO_WritePin(OLED_CS_GPIO_Port, OLED_CS_Pin, GPIO_PIN_SET); // Chip select high
            HAL_GPIO_WritePin(OLED_DC_GPIO_Port, OLED_DC_Pin, GPIO_PIN_RESET); // Data command low
            HAL_Delay(100); // Wait for OLED to power up
            // Initialization sequence
            oled_send_command(0xAE); // Display off
            oled_send_command(0xD5); // Set display clock divide ratio/oscillator frequency
            oled_send_command(0x80); // Default frequency
            oled_send_command(0xA8); // Set multiplex ratio
            oled_send_command(0x3F); // Default ratio
            oled_send_command(0xD3); // Set display offset
            oled_send_command(0x00); // Default offset
            oled_send_command(0x40); // Set start line
            oled_send_command(0x8D); // Charge pump
            oled_send_command(0x14); // Enable charge pump
            oled_send_command(0x20); // Set memory mode
            oled_send_command(0x00); // Horizontal addressing mode
            oled_send_command(0xA1); // Set segment remap
            oled_send_command(0xC8); // Set com output scan direction
            oled_send_command(0xDA); // Set com pins hardware configuration
            oled_send_command(0x12); // Alternative com pins, disable left/right remap
            oled_send_command(0x81); // Contrast control
            oled_send_command(0xCF); // Default contrast
            oled_send_command(0xD9); // Set pre-charge period
            oled_send_command(0xF1); // Default period
            oled_send_command(0xDB); // Set VCOMH deselect level
            oled_send_command(0x40); // Default level
            oled_send_command(0xA4); // Output ram to display
            oled_send_command(0xA6); // Normal display
            oled_send_command(0xAF); // Display on
            }
            void oled_write_char(uint8_t c, uint8_t size)
            {
            uint8_t font_size = (size == 16) ? 16 : 12;
            const uint8_t *font = (size == 16) ? Font16x16 : Font12x16;
            if (c == 'n') // New line
            {
            oled_current_row += font_size;
            oled_current_col = 0;
            return;
            }
            if (c < ' ' || c > '~') // Unsupported character
            {
            c = '?';
            }
            uint8_t b = c - ' ';
            const uint8_t *glyph = font + (b * font_size);
            for (uint8_t i = 0; i < font_size; i++)
            {
            oled_send_data(*glyph++);
            }
            oled_current_col += size;
            }
            void oled_write_string(char *str, uint8_t size)
            {
            while (*str)
            {
            oled_write_char(*str++, size);
            }
            }
            11111111111111111111111
            • 單片機
              +關注

              關注

              5830

              文章

              39716

              瀏覽量

              610707
            • RFID
              +關注

              關注

              366

              文章

              5175

              瀏覽量

              232437
            • 門禁系統
              +關注

              關注

              15

              文章

              344

              瀏覽量

              43803
            • RC522
              +關注

              關注

              7

              文章

              41

              瀏覽量

              23363
            • STM32F103C8T6
              +關注

              關注

              94

              文章

              117

              瀏覽量

              78589
            收藏 人收藏

              評論

              相關推薦

              如何使用stm32F103C8T6的TIM功能去控制多個SG90舵機

              stm32F103C8T6的TIM功能去控制一個SG90舵機呢?如何使用stm32F103C8T6的TIM功能去控制多個SG90舵機呢?
              發表于 11-25 07:22

              如何利用STM32F103控制SG90舵機?

              STM32F103控制SG90舵機?
              發表于 12-14 07:18

              STM32驅動SG90舵機的方法

              STM32F103VET6開發板,此處我使用的是野火的指南者,不過F103系列的應該都是可以通用的,具體大家可以自行參考相對應開發板的用戶手冊。SG90舵機一個。我使用的是180°旋轉
              發表于 02-21 06:54

              使用RFID-RC522模塊與1.8寸TFT實現門禁設計

              RC522模塊與TFT實現RFID門禁  本次使用RFID-RC522模塊與之前的1.8寸TFT實現門禁,通過主控循環檢測RFID模塊的信息,當接收到刷卡信息且核對通過后指示燈會閃,同時也
              發表于 09-05 18:05

              STM32F103C8T6最小系統原理圖

              STM32F103C8T6最小系統的電路原理圖,供單片機學習使用。
              發表于 04-25 17:07 ?285次下載

              STM32F103C8T6單片機的電路原理圖免費下載

              STM32F103C8T6單片機的電路原理圖免費下載。
              發表于 04-22 08:00 ?75次下載
              <b>STM32F103C8T6</b><b>單片機</b>的電路原理圖免費下載

              STM32F103C8T6單片機原理圖下載

              STM32F103C8T6單片機原理圖下載
              發表于 04-12 09:36 ?98次下載
              <b>STM32F103C8T6</b><b>單片機</b>原理圖下載

              STM32F103C8T6最小系統設計

              STM32F103C8T6單片機最小系統。包括了復位電路、晶振電路、電源排針等單片機工作必要的外圍電路,且把常用的引腳全部引出,方便研發人員將本方案嵌入到開發中。本最小系統兼容
              發表于 11-17 14:06 ?91次下載
              <b>STM32F103C8T6</b>最小<b>系統</b>設計

              利用STM32F103C8T6最小系統板點亮流水燈

              8產品型號命名規則(參考:STM32單片機最小系統詳解)可知: STM32F103C8T6這個命名中:STM32代表STM32家族,32位MCU;F代表產品類型為基礎型;103代表特定功能為STM32基礎型;
              發表于 11-17 18:06 ?91次下載
              利用<b>STM32F103C8T6</b>最小<b>系統</b>板點亮流水燈

              STM32驅動SG90舵機

              STM32F103VET6開發板,此處我使用的是野火的指南者,不過F103系列的應該都是可以通用的,具體大家可以自行參考相對應開發板的用戶手冊。SG90舵機一個。我使用的是180°旋轉
              發表于 12-24 19:24 ?39次下載
              <b>STM32</b>驅動<b>SG90</b><b>舵機</b>

              基于STM32F103C8T6單片機的智能滅火器報警系統

              STM32F103C8T6單片機設計的一款智能滅火器報警系統,通過RC522刷卡可以進行滅火器的加1和減1,通過GPS模塊可以檢測滅火器的位置,如果滅火器的位置發生改變系統就會控制蜂鳴器進行報警,通過ESP8266無線模塊將滅火器的數量和位置信息
              發表于 08-08 11:31 ?619次閱讀

              基于STM32F103C8T6單片機的智能疫苗箱

              STM32F103C8T6單片機最小系統+DHT11溫濕度傳感器+ESP8266無線模塊+GPS定位模塊+RFID-RC522射頻識別技術+繼電器。
              的頭像 發表于 09-02 09:32 ?1186次閱讀

              采用STM32F103C8T6單片機的制冷柜系統

              STM32F103C8T6單片機最小系統+ESP8266無線傳感模塊+DHT11溫濕度傳感器*2+RFID-RC522射頻識別模塊*2+繼電器。
              的頭像 發表于 09-02 09:35 ?720次閱讀

              采用STM32F103C8T6單片機的智能機房系統

              STM32F103C8T6單片機最小系統+DHT11溫濕度傳感器+ ACS712測電流模塊,MO-2煙霧傳感器+ESP8266無線傳輸模塊。
              的頭像 發表于 09-02 09:39 ?1046次閱讀

              下載硬聲App

              姦系列无码
                1. <dd id="dvkot"></dd>

                      <dd id="dvkot"><noscript id="dvkot"></noscript></dd>
                      <dd id="dvkot"><pre id="dvkot"></pre></dd>