本文來(lái)源電子發(fā)燒友社區(qū),作者:hehung, 帖子地址:https://bbs.elecfans.com/jishu_2013902_1_1.html
玩玩OLED板子上面的兩個(gè)模擬開(kāi)關(guān)S1與S2。
首先查看原理圖:
這兩個(gè)按鍵是連接在GPIO5上面的,我在上一個(gè)帖子上面使用的User按鍵也是連接在這個(gè)端口的,GPIO是一個(gè)模擬端口使用了ADC2,通過(guò)這個(gè)模擬端口我們可以一次性讀取三個(gè)按鈕的值了。
從原理圖可以看出,S1按鈕的值就為參考電壓*(1/(4.7+1)),S2按鈕的值就為參考電壓*((1+1)/(4.7+1+1)),具體數(shù)值可以寫(xiě)一個(gè)程序用串口讀取讀出的ADC數(shù)字來(lái)查看。
?
?
我最開(kāi)始寫(xiě)了一個(gè)程序用來(lái)讀取按下按鍵之后的ADC的電壓。
按下User按鍵之后電壓值為160,而且按下User+S2+S2都是這個(gè)值,因?yàn)閁ser按鈕沒(méi)有接電阻,按下之后相當(dāng)于電流沒(méi)有從S1和S2流過(guò)。
單獨(dú)按下S1的值大概為320。同時(shí)按下S1和S2的話(huà),值也是S1的值320.因?yàn)殡娏饕仓粫?huì)從S1流過(guò),感覺(jué)這個(gè)模擬開(kāi)關(guān)設(shè)計(jì)不是很好,應(yīng)該多加兩個(gè)電阻,讓S1和S2同時(shí)按下的時(shí)候有不同的值,這樣相當(dāng)于多了一種按鍵情況。
單獨(dú)按下S2的值為548.
我在寫(xiě)程序的時(shí)候發(fā)現(xiàn)ADC并不需要初始化,可以直接讀取就行了。
所以設(shè)計(jì)程序如下:
創(chuàng)建任務(wù)
復(fù)制代碼
模擬開(kāi)關(guān)值讀?。?/span>
復(fù)制代碼
測(cè)試效果如下:
玩玩OLED板子上面的兩個(gè)模擬開(kāi)關(guān)S1與S2。
首先查看原理圖:
這兩個(gè)按鍵是連接在GPIO5上面的,我在上一個(gè)帖子上面使用的User按鍵也是連接在這個(gè)端口的,GPIO是一個(gè)模擬端口使用了ADC2,通過(guò)這個(gè)模擬端口我們可以一次性讀取三個(gè)按鈕的值了。
從原理圖可以看出,S1按鈕的值就為參考電壓*(1/(4.7+1)),S2按鈕的值就為參考電壓*((1+1)/(4.7+1+1)),具體數(shù)值可以寫(xiě)一個(gè)程序用串口讀取讀出的ADC數(shù)字來(lái)查看。
?
?
我最開(kāi)始寫(xiě)了一個(gè)程序用來(lái)讀取按下按鍵之后的ADC的電壓。
按下User按鍵之后電壓值為160,而且按下User+S2+S2都是這個(gè)值,因?yàn)閁ser按鈕沒(méi)有接電阻,按下之后相當(dāng)于電流沒(méi)有從S1和S2流過(guò)。
單獨(dú)按下S1的值大概為320。同時(shí)按下S1和S2的話(huà),值也是S1的值320.因?yàn)殡娏饕仓粫?huì)從S1流過(guò),感覺(jué)這個(gè)模擬開(kāi)關(guān)設(shè)計(jì)不是很好,應(yīng)該多加兩個(gè)電阻,讓S1和S2同時(shí)按下的時(shí)候有不同的值,這樣相當(dāng)于多了一種按鍵情況。
單獨(dú)按下S2的值為548.
我在寫(xiě)程序的時(shí)候發(fā)現(xiàn)ADC并不需要初始化,可以直接讀取就行了。
所以設(shè)計(jì)程序如下:
創(chuàng)建任務(wù)
- static void KeyEntry(void)
- {
- osThreadAttr_t attr;
- // GpioInit();
- // IoSetFunc(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_IO_FUNC_GPIO_5_GPIO);
- // GpioSetDir(WIFI_IOT_IO_NAME_GPIO_5, WIFI_IOT_GPIO_DIR_IN);
- // AdcRead();
- attr.name = "KeyTask";
- attr.attr_bits = 0U;
- attr.cb_mem = NULL;
- attr.cb_size = 0U;
- attr.stack_mem = NULL;
- attr.stack_size = KEY_TASK_STACK_SIZE;
- attr.priority = KEY_TASK_PRIO;
- if (osThreadNew((osThreadFunc_t)KeyTask, NULL, &attr) == NULL) {
- printf("[KeyTask] Falied to create KeyTask!n");
- }
- }
- SYS_RUN(KeyEntry);
模擬開(kāi)關(guān)值讀?。?/span>
-
static void *KeyTask(const char *arg){(void)arg;
hi_u16 Key_adc_value = 0u;
hi_u32 ret = 0;
-
while (1) {ret = hi_adc_read((hi_adc_channel_index)HI_ADC_CHANNEL_2, &Key_adc_value,HI_ADC_EQU_MODEL_1, HI_ADC_CUR_BAIS_DEFAULT, 0);if (ret != HI_ERR_SUCCESS) {printf("ADC Read Failn");}else{// printf("ADC value = %d", Key_adc_value);}
-
/*User 按鍵ADC值讀出來(lái)大概為116*//*S1 按鍵ADC讀出來(lái)大概為320*//*S2 按鍵ADC讀出來(lái)大概為548*/if(Key_adc_value <= 200){printf("User key pressedn");}else if(Key_adc_value <= 400){printf("User S1 pressedn");}else if(Key_adc_value <= 600){printf("User S2 pressedn");}else{}usleep(KEY_INTERVAL_TIME_US);}
-
return NULL;}
測(cè)試效果如下:
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
wi-fi
+關(guān)注
關(guān)注
15文章
2464瀏覽量
130037 -
HarmonyOS
+關(guān)注
關(guān)注
80文章
2157瀏覽量
36294 -
HiSpark
+關(guān)注
關(guān)注
1文章
156瀏覽量
7799
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
5G路由器中的Wi-Fi 7與Wi-Fi 6對(duì)比
實(shí)際上,我們?cè)趯?shí)際部署中看到的是過(guò)去升級(jí)5G路由器主要關(guān)注的是路由器內(nèi)部的部件:調(diào)制解調(diào)器、芯片組和蜂窩網(wǎng)絡(luò)性能。 ? 現(xiàn)在,人們的關(guān)注點(diǎn)轉(zhuǎn)移到了與我們更密切相關(guān)的事物上:Wi-Fi。 ? 這就
技術(shù)資訊 I Wi-Fi 模塊設(shè)計(jì)
本文要點(diǎn)Wi-Fi模塊設(shè)計(jì)旨在打造一套緊湊且高效的硬件和軟件解決方案,使設(shè)備能夠通過(guò)Wi-Fi網(wǎng)絡(luò)實(shí)現(xiàn)通信。Wi-Fi模塊設(shè)計(jì)是一個(gè)復(fù)雜的過(guò)程,要求研發(fā)人員兼具硬件與軟件工程方面的專(zhuān)業(yè)知識(shí)
Wi-Fi:無(wú)線(xiàn)連接的全球通用語(yǔ)
與數(shù)據(jù)鏈路層的規(guī)范。 l Wi-Fi聯(lián)盟:成立于1999年的國(guó)際組織,負(fù)責(zé)Wi-Fi商標(biāo)認(rèn)證、技術(shù)推廣與互操作性測(cè)試。 l 頻段:主要使用2.4GHz與5GHz頻段,部分支持6GHz,
發(fā)表于 01-07 09:49
Nordic發(fā)布nRF7002 EBII 開(kāi)發(fā)板, 支持Wi-Fi 6, 解鎖nRF54L新玩法
和 5 GHz)以及高級(jí) Wi-Fi 6 功能,例如目標(biāo)喚醒時(shí)間 (TWT)、OFDMA 和 BSS 著色,從而實(shí)現(xiàn)高效、無(wú)干擾的電池供電運(yùn)行。它采用雙頻芯片天線(xiàn),確保在各個(gè) Wi-Fi 頻段上都能提供
發(fā)表于 12-10 11:58
RK3506工控板核心板Wi-Fi模組性能測(cè)試報(bào)告
RK3506工控板核心板Wi-Fi模組性能測(cè)試報(bào)告測(cè)試概述本次測(cè)試對(duì)比了三種不同WiFi模組在2.4GHz和5GHz頻段的網(wǎng)絡(luò)吞吐量性能,使用iperf3工具進(jìn)行30秒的多線(xiàn)程傳輸測(cè)試
?Microchip WILCS02 Wi-Fi?模塊開(kāi)發(fā)板技術(shù)解析與應(yīng)用指南
Microchip Technology WILCS02 Wi-Fi^?^ 鏈路控制器SD板是一款安全數(shù)字 (SD) 卡接口板,支持2.4GHz IEEE^?^ 802.11 b/g/n標(biāo)準(zhǔn)。該
淺談Wi-Fi 6E與Wi-Fi 7的關(guān)鍵器件——BAW濾波器新技術(shù)
,美國(guó)聯(lián)邦通信委員會(huì)(FCC)投票通過(guò)將6GHz頻譜劃為免許可頻段供Wi-Fi使用,這標(biāo)志著Wi-Fi正式進(jìn)入“三頻”時(shí)代——除Wi-Fi 6及前代技術(shù)使用的2.4GHz和5GHz頻段
發(fā)表于 09-19 18:29
?2474次閱讀
如何在 NuMaker-IoT-M467 板上使用 Arduino IDE 控制 Wi-Fi 模塊?
在NuMaker開(kāi)發(fā)板上,有一個(gè)ESP-12F Wi-Fi模塊;但是,Arduino IDE 中的 NuMaker UNO 包不提供該模塊的相關(guān)控制。如果您希望在 Arduino IDE 中控制此模塊,您應(yīng)該如何進(jìn)行?
發(fā)表于 09-04 08:28
LitePoint Wi-Fi測(cè)試軟件減輕客戶(hù)設(shè)計(jì)負(fù)擔(dān)
自Wi-Fi 7于一年多前獲得Wi-Fi聯(lián)盟認(rèn)證以來(lái),作為最新一代通信技術(shù),Wi-Fi正逐步成為用戶(hù)實(shí)現(xiàn)無(wú)所不在無(wú)線(xiàn)連接的新選擇。隨著每一代Wi-Fi信號(hào)復(fù)雜性的提升,建議將硬件測(cè)試納
Texas Instruments CC335x SimpleLink?雙頻Wi-Fi? 6配套IC數(shù)據(jù)手冊(cè)
) 和Wi-Fi 5 (802.11ac)。這些CC335x是Texas Instruments的第10代連接組合芯片。因此,CC335x基于成熟的技術(shù)設(shè)計(jì)而成。這些器件非常適合配備運(yùn)行TCP/IP的Linux或
如何選擇合適的芯科科技Wi-Fi開(kāi)發(fā)板
您正在尋找適用于超低功耗物聯(lián)網(wǎng)應(yīng)用項(xiàng)目的Wi-Fi 開(kāi)發(fā)板嗎?本文將介紹Silicon Labs(芯科科技)推出的所有SiWx917 Wi-Fi 6和低功耗藍(lán)牙5.4解決方案的Wi-Fi
Wi-Fi 8:開(kāi)啟極高可靠性 (UHR) 連接的新紀(jì)元——1
、5GHz與6GHz。關(guān)于標(biāo)準(zhǔn)正式發(fā)布的年份,業(yè)界目前預(yù)估為2028年,但真正的標(biāo)準(zhǔn)制定完成日期仍需以IEEE 與Wi-Fi Alliance 工作小組的進(jìn)度為準(zhǔn)。
圖2展示了IEEE正在進(jìn)行
發(fā)表于 06-13 11:09
貿(mào)澤電子開(kāi)售Qorvo Wi-Fi 7前端模塊
入多輸出(MIMO)功能,全頻段Wi-Fi 5、6和6E。Wi-Fi 7可確保更高吞吐量、更低延遲和更高數(shù)據(jù)速率。多鏈路操作有助于建立多個(gè)有源鏈路,通過(guò)選擇最可用的傳輸鏈路來(lái)提高峰值數(shù)
適用于 Wi-Fi 7 應(yīng)用的 5 GHz 高功率前端模塊 skyworksinc
電子發(fā)燒友網(wǎng)為你提供()適用于 Wi-Fi 7 應(yīng)用的 5 GHz 高功率前端模塊相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有適用于 Wi-Fi 7 應(yīng)用的 5 GHz 高功率前端模塊的引腳圖、接線(xiàn)圖
發(fā)表于 05-27 18:33
【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】5.OLED板模擬開(kāi)關(guān)按鍵操作
評(píng)論