久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1934|回復: 6
收起左側

如何用單片機來做充電指示燈(4顆燈)

[復制鏈接]
ID:959051 發表于 2022-7-20 09:02 | 顯示全部樓層 |閱讀模式
我用單片機ADC檢測出來了電池電壓,想通過插充電器時檢測電池電量并且通過指示燈指示,同時最后一顆燈閃爍,表示正在充電,充滿后指示燈不閃爍。放電也會顯示指示燈,電量從高到低,通過指示燈來顯示。請問這個判斷代碼該如何寫呢?
回復

使用道具 舉報

ID:584814 發表于 2022-7-20 17:07 | 顯示全部樓層
1、將電池正常電壓區間從低到高分段,再設一個低和滿;
2、用單片機ADC檢測出來了電池電壓,與上面的比較;
3、滿足某條件就觸發對應的LED,以你想要的方式點亮。
已知你用單片機ADC檢測出來了電池電壓,那就用多個 IF 好了
回復

使用道具 舉報

ID:959051 發表于 2022-7-23 09:09 | 顯示全部樓層
man1234567 發表于 2022-7-20 17:07
1、將電池正常電壓區間從低到高分段,再設一個低和滿;
2、用單片機ADC檢測出來了電池電壓,與上面的比較 ...

你好,現在有個問題就是在充電時電壓處于臨界值指示燈不清晰,一會兩個燈閃 一會一個燈閃。差不多持續30秒到一分鐘的樣子。請問有什么好辦法嗎?
回復

使用道具 舉報

ID:401564 發表于 2022-7-23 11:34 | 顯示全部樓層
還不行?
你在另外一個帖子說明白了,我以為搞定了呢可以把你自己的完整代碼和硬件電路上傳上來看一下,不要截圖
我覺得你這是個DIY的東西,可以上傳的
回復

使用道具 舉報

ID:496636 發表于 2022-7-23 14:24 | 顯示全部樓層
guoqiang881245 發表于 2022-7-23 09:09
你好,現在有個問題就是在充電時電壓處于臨界值指示燈不清晰,一會兩個燈閃 一會一個燈閃。差不多持續30 ...

你可以用個延時程序,電壓判斷過程中,得持續一定時間,狀態才轉變,這樣可以突略掉突然地電壓上升和下降引起的狀態改變。
各個電壓區間對應各個狀態。
回復

使用道具 舉報

ID:959051 發表于 2022-7-23 22:52 | 顯示全部樓層
Y_G_G 發表于 2022-7-23 11:34
還不行?
你在另外一個帖子說明白了,我以為搞定了呢可以把你自己的完整代碼和硬件電路上傳上來看一下,不要 ...

我已經上傳了代碼,想了好幾天,我覺得這個是最終的,可以實現我的要求。謝謝你們,感謝有你們。
回復

使用道具 舉報

ID:959051 發表于 2022-7-23 22:55 | 顯示全部樓層
  1. /*充電檢測****************************************************************************************************/
  2. /**充電
  3. 小于3.5V第一顆燈閃,1.21V
  4. 大于3.5V到3.7V第一顆亮,第二顆閃  1.21-1.28
  5. 3.7V到3.9V第一,二顆燈亮,第三顆閃 1.28-1.35
  6. 3.9V到4.15V第一二三燈亮,第4顆閃 1.35-1.43
  7. 大于4.15V就全亮表示充滿*******P03充電 低插入充電器**************************************************************************************/
  8. void Charge_lamp()
  9. {
  10.         if (P03 == 0)
  11.         {       
  12.                 if (Flag3000ms)
  13.                 {
  14.                         Flag3000ms = 0;
  15.                         if (Adc_celiang() >= 1.470)
  16.                         {       
  17.                                 chongdian4 = 0;chongdian3 = 0;chongdian2 = 0;chongdian1 = 0;P10 = 1;P11 = 1;P12 = 1;P13 = 1;
  18.                         }
  19.                         else if (Adc_celiang() >= 1.425 && Adc_celiang() <= 1.465) //閃第四顆燈
  20.                         {
  21.                                 chongdian4 = 1;chongdian3 = 0;chongdian2 = 0;chongdian1 = 0;;P10 = 1;P11 = 1;P12 = 1;                       
  22.                         }
  23.                         else if (Adc_celiang()>=1.365 && Adc_celiang()<=1.420)  //閃第三顆燈
  24.                         {
  25.                                 chongdian4 = 0;chongdian3 = 1;chongdian2 = 0;chongdian1 = 0;P10 = 1;P11 = 1;P13 = 0;
  26.                         }
  27.                         else if (Adc_celiang()>=1.285 && Adc_celiang()<=1.360)         //閃第二顆燈
  28.                         {
  29.                                 chongdian4 = 0;chongdian3 = 0;chongdian2 = 1;chongdian1 = 0;P10 = 1;P12 = 0;P13 = 0;
  30.                         }
  31.                         else if (Adc_celiang() <= 1.280)  //閃第一顆燈
  32.                         {
  33.                                 chongdian4 = 0;chongdian3 = 0;chongdian2 = 0;chongdian1 = 1;P11 = 0;P12 = 0;P13 = 0;
  34.                         }
  35.                 }       
  36.         }                       
  37.                
  38. }
  39. //充電閃燈判斷
  40. void ChongDSD()
  41. {
  42.         if (P03 == 0)
  43.         {
  44.                        
  45.                 if (chongdian4)  //閃第四顆燈
  46.                 {       
  47.                 //        chongdian4 = 0;
  48.                         if (Flag100ms){Flag100ms = 0;P13 = !P13;}
  49.                 //        P13 = !P13;
  50.                 }
  51.                 else if (chongdian3)  //閃第三顆燈
  52.                 {
  53.                 //        chongdian3 = 0;
  54.                         if (Flag100ms){Flag100ms = 0;P12 = !P12;}
  55.                 //        P12 = !P12;
  56.                 }
  57.                 else if (chongdian2)        //閃第二顆燈
  58.                 {
  59.                 //        chongdian2 = 0;
  60.                         if (Flag100ms){Flag100ms = 0;P11 = !P11;}
  61.                 //        P11 = !P11;
  62.                 }
  63.                 else if (chongdian1)        //閃第一顆燈
  64.                 {
  65.                 //        chongdian1 = 0;
  66.                         if (Flag100ms){Flag100ms = 0;P10 = !P10;}
  67.                 //        P10 = !P10;
  68.                 }
  69.         }
  70. }
復制代碼
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩一区二区 | 久久一二区 | 成人黄在线观看 | 日韩av成人| 亚洲性在线 | 久久国产精品免费一区二区三区 | 亚洲综合中文字幕在线观看 | 中文字幕一区二区三区精彩视频 | 精品视频久久久久久 | 日韩综合在线 | 中文字幕中文字幕 | 国产精品免费观看 | 日韩一二三区视频 | 成人一区二区三区在线观看 | 亚洲成人久久久 | 欧美精品综合在线 | 久久亚洲国产精品 | 国产免费一区二区 | 欧美在线观看一区 | 中文字幕一区二区三区日韩精品 | 激情五月婷婷综合 | 日韩高清在线观看 | 国产黄色大片在线观看 | 在线a视频网站 | 91天堂 | 久久精品欧美电影 | 日日夜夜操天天干 | 久久9久 | 在线色网 | 自拍中文字幕 | 午夜精品久久久久久久星辰影院 | 国产一级久久久久 | 91国产在线视频在线 | 国产福利91精品一区二区三区 | 国产精品一区久久久 | 天天色综| 精品av天堂毛片久久久借种 | 97精品国产97久久久久久免费 | 久久国产精品久久久久久 | 黄色一级大片在线免费看产 | 国产成人免费视频 |