你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32水位检测系统(仿真+程序)

[复制链接]
STMCU小助手 发布时间:2022-5-30 10:41
本设计# ?1 o7 _1 T3 j5 R& A: n0 x6 T$ L
基于STM32单片机的水位检测系统设计(proteus仿真+程序)
仿真图proteus 8.11
程序编译器:keil 5
编程语言:C语言
设计编号:C0046

0 g( t; a# i  ?
主要功能:
使用滑动变阻器模拟水位监测器,通过改变电压值表示水位的变化。stm32通过ADC检测电压值和设定的阈值比较,低于阈值则驱动电机转动,同时通过led表示水位状态。

$ J% G4 r  D1 Z7 f1 N8 U
仿真图(提供源文件):
640 (1).png

: L8 H; w, M4 M- |, ?! B" b3 s  ^
程序(提供源文件源码):
640.png

6 G* D" s; C7 k. T) ^' w
以下为部分程序:
  1. int main(void)
    7 R" v& q3 m$ S) M8 Z2 Z
  2. {   $ ]& w$ E6 ^; D
  3.   u16 ADCValue;1 `7 G5 a3 P" y" F6 M, v
  4.   float voltage;
    0 W) r9 p$ o5 C2 c/ b" I% V9 e  |
  5.   u8 Mflag=2;
    0 U2 k% l$ ]5 H7 }$ H# z
  6.   u8 OPENflag=0;  //起初代表水泵关4 |) u; U, f6 r" w
  7.   delay_init();             ! u  O  g: v! Q( F7 \
  8.   Adc_Init();        . R' v6 U! R/ u# q# G0 }
  9.   GPIO_InitStructReadtempCmd();
    & G/ p# K5 S$ y1 x
  10.   MotoR_GPIO();. V8 D. [9 z! L. b" o+ @
  11.   lcd_system_reset();4 C. o; H8 F3 U2 u. T- }3 S3 `
  12.   LED1=1;
    # F2 L! w5 h% r+ s6 O' I9 o
  13.   LED2=0;
    3 U+ W0 Z0 O" f
  14.   MOTOR=1;  ~0 I5 K- e; U/ w
  15.   while(1)7 S+ O, {; V  p; j. m8 ^- q4 s
  16.   {4 I9 X: x# h; R+ K, C0 i: L9 U  L
  17.       ADCValue=Get_Adc_Average(ADC_Channel_0,10);
    . X8 O- o! P: n
  18.     voltage=((float)ADCValue/4096)*3.3;//计算电压* o" x0 q; \. v$ k% |; G! }5 N0 \
  19.     H=(10000*voltage)/33;
    & S6 @! L: h9 ^. G* t4 C
  20.     if(H>400) //40%  阈值
    ) D+ M- [$ j7 Q5 T
  21.     {3 o# j( N; |2 A7 {9 X2 g8 i
  22.       display2();9 j5 _/ M, p4 R
  23.       Mflag=1;    //储水量足够,关闭水泵" l* f# c+ N0 _# Q8 h4 C; W
  24.     }, R# _# F! c. _: V/ j
  25.     else
    ; A$ S; B+ Z) E& A+ D  E% g; N
  26.      {
    0 r" H& y& |$ M* |5 {  L8 f8 Y. r, ?
  27.      display1();
    * }% }$ Y) x  p( D4 z+ R
  28.      Mflag=0;  //储水量不足够,需要启动水泵
    5 v& Y3 P7 U' o; \, F
  29.      }  
    5 V" P& D% O; y: n
  30.      if(Mflag==1&&OPENflag==1)
    ( B' e0 c% q* F* R% t
  31.     {
    ) v1 D9 y, v! s# Z* N6 p
  32.          LED1=1;
    5 ]9 q# [* r8 P3 r1 K) y
  33.              LED2=0;: b5 v+ Y' r# `7 O
  34.       MOTOR=1;//关闭水泵
    : W& N& |+ B" d
  35.         Mflag=2;
    % W+ q4 R& c" _
  36.         OPENflag=0;   //已经关好
    1 Y& g; r7 }+ t, Y5 y$ O
  37.     }1 K- O4 _" R3 O4 v% U! U! c8 L
  38.     else if(Mflag==0&&OPENflag==0)
    / s+ G. l6 K7 Y2 @9 l3 x
  39.      {
    $ B4 {, J- Z; j. l
  40.        LED1=0;* v( w* ]" s7 m
  41.            LED2=1;
    ) b1 ?: m/ t2 }6 \" s7 _7 }
  42.        MOTOR=0;//开水泵
    5 W4 v- A+ x# f1 Q* B
  43.        Mflag=2;
    1 t6 ~9 s5 |( N
  44.        OPENflag=1;    //已经开好           8 h( x3 H( {( |$ g* G
  45.      }$ p% Z0 B0 R9 d6 a+ Y( [! T
  46.   }
    ! R4 j( ^7 M, [  Q
  47. }
    ) M! v) G4 O% ]( V  v3 G
复制代码
' `2 R5 J& c! M! S; I" u
赞 收藏 评论0 发布时间:2022-5-30 10:41

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版