本文來源電子發燒友社區,作者:jf_53933321, 帖子地址:https://bbs.elecfans.com/jishu_2289287_1_1.html
1. 光敏電阻介紹
復制代碼
復制代碼
1. 光敏電阻介紹
通常,光敏電阻器都制成薄片結構,以便吸收更多的光能。當它受到光的照射時,半導體片(光敏層)內就激發出電子—空穴對,參與導電,使電路中電流增強。為了獲得高的靈敏度,光敏電阻的電極常采用梳狀圖案,它是在一定的掩膜下向光電導薄膜上蒸鍍金或銦等金屬形的。用來檢測有沒有遮擋,比如門前有沒有人來。
2. 板上資源
環境監測板上有一塊光敏電阻,實物圖和原理圖如下圖所示。
?
3. 代碼邏輯
當光敏電阻被遮擋住時電阻變小,原理圖中的Q2和Q4不導通,因此輸出電位為5V高電平。
- /* get gpio5 Voltage */
- void GetGpio5Voltage(const char *param)
- {
- unsigned short data = 0;
- unsigned short vlt = 0;
- float voltage;
- float vltMax = 0;
- float vltMin = VLT_MIN;
- hi_unref_param(param);
- memset_s(g_gpio5AdcBuf, sizeof(g_gpio5AdcBuf), 0x0, sizeof(g_gpio5AdcBuf));
- for (int i = 0; i < ADC_TEST_LENGTH; i++) {
- // ADC_Channal_2自動識別模式CNcomment:4次平均算法模式 CNend
- unsigned int ret = AdcRead(IOT_ADC_CHANNEL_2, &data,
- IOT_ADC_EQU_MODEL_4, IOT_ADC_CUR_BAIS_DEFAULT, 0xF0);
- if (ret != HI_ERR_SUCCESS) {
- printf("ADC Read Failn");
- returnHI_NULL;
- }
- g_gpio5AdcBuf[i] = data;
- }
- for (int i = 0; i < ADC_TEST_LENGTH; i++) {
- vlt = g_gpio5AdcBuf[i];
- voltage = (float)vlt * VOLTAGE_1_8_V *
- VOLTAGE_4_tiMES / ADC_CHANNAL_RANGE; /* vlt * 1.8* 4 / 4096.0為將碼字轉換為電壓 */
- vltMax = (voltage > vltMax) ? voltage : vltMax;
- vltMin = (voltage < vltMin) ? voltage : vltMin;
- }
- if (vltMax > VOLTAGE_0_6_V && vltMax < VOLTAGE_1_V) { /* 電壓最大值大于0.6小于1.0 */
- GpioKey1IsRFuncMode();
- } else if (vltMax > VOLTAGE_1_V && vltMax < VOLTAGE_1_5_V) { /* 電壓最大值大于1.0小于1.5 */
- GpioKey2IsrFuncType();
- } else if (vltMax < VOLTAGE_0_6_V) { /* 電壓最大值小于0.6 */
- printf("gpio9_LED_light:vltMax=%0.2f, vltMin=%0.2frn", vltMax, vltMin);
- Gpio9LedLightFunc();
- }
- printf("key_5:vltMax=%0.2f, vltMin=%0.2frn", vltMax, vltMin);
- }
其中調用了AdcRead方法,定義如下。
- unsigned int AdcRead(IotAdcChannelIndex channel, unsigned const short *data, IotAdcEquModelSel equModel,
- IotAdcCurBais curBais, unsigned const short rstCnt)
- {
- return hi_adc_read((hi_adc_channel_index)channel, (hi_u16*)data, (hi_adc_equ_model_sel)equModel,
- (hi_adc_cur_bais)curBais, (hi_u16)rstCnt);
- }
4. 實物演示
當光敏電阻被遮擋了,則led燈熄滅,否則led等亮起。如下視頻。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
wi-fi
+關注
關注
14文章
2007瀏覽量
123021 -
HarmonyOS
+關注
關注
79文章
1912瀏覽量
29455 -
HiSpark
+關注
關注
1文章
156瀏覽量
6784
發布評論請先 登錄
相關推薦
驗證物聯網Wi-Fi HaLow用例的MM6108-EKH08開發套件來啦
驗證物聯網Wi-Fi HaLow用例的MM6108-EKH08開發套件來啦 MM6108-EKH08開發套件專為驗證物聯網Wi-Fi HaLow用例而設計。該
Wi-Fi的誕生與發展
短距離無線通信技術有Wi-Fi、ZigBee、藍牙以及Z-Wave,今天我們先揭開Wi-Fi的神秘面紗。Chrent短距離無線通信技術——Wi-Fi過去的20多年,Wi-Fi靠著僅有的
Wi-Fi HaLow和傳統Wi-Fi的區別
Wi-Fi HaLow和傳統Wi-Fi的區別? Wi-Fi是一種無線網絡技術,可以連接到互聯網或局域網,為用戶提供無線上網的便利。隨著科技的發展和互聯網的普及,Wi-Fi也在不斷演進和
康普攜手Wi-Fi聯盟,RUCKUS Wi-Fi 7系列接入點成Wi-Fi
康普高級副總裁兼網絡、智能蜂窩和安全解決方案總裁Bart Giordano對此表示: “我們非常榮幸能與Wi-Fi Alliance形成長期合作伙伴關系,將我們的RUCKUS Wi-Fi 7 接入點平臺作為Wi-Fi CERT
BT Wi-Fi模式是否可以通過ModustoolBox對套件進行編程來實現?
嘗試在 ModustoolBox 中使用示例項目對套件進行編程時,我遇到了問題,因為 " 錯誤:找不到匹配的 CMSIS-DAP 設備 "。
BT Wi-Fi 模式是否可以通過 Modu
發表于 01-22 06:19
Wi-Fi 6和Wi-Fi 5之間有哪些區別呢?
Wi-Fi 6和Wi-Fi 5之間有哪些區別呢? Wi-Fi 6和Wi-Fi 5是無線局域網標準的兩個版本,它們之間存在很多區別。Wi-Fi
紫光展銳Wi-Fi 6成功通過Wi-Fi聯盟認證
近日,紫光展銳Wi-Fi 6產品成功通過Wi-Fi聯盟 (簡稱“WFA”) Qualified Solution 認證,并支持Wi-Fi 6 Release 2,標志著紫光展銳自研
摩爾斯微電子與卓越電子合作推出 Wi-Fi HaLow 物聯網解決方案
的無晶圓廠半導體公司摩爾斯微電子(Morse Micro),宣布與卓越電子(AsiaRF Corp)合作推出最新的 Wi-Fi HaLow IoT 解決方案。產品陣容包括 Wi-Fi HaLow 物聯網
發表于 10-08 15:27
?349次閱讀
支持 Quick-Connect IoT Wi-Fi 的云解決方案套件快速入門指南
支持 Quick-Connect IoT Wi-Fi 的云解決方案套件快速入門指南
發表于 06-30 19:38
?0次下載
使用Qubitro和RAKWireless快速部署Wi-Fi傳感器
電子發燒友網站提供《使用Qubitro和RAKWireless快速部署Wi-Fi傳感器.zip》資料免費下載
發表于 06-15 14:56
?0次下載
評論