前言+ u. |9 Y8 V+ h( z/ u$ n
相信很多志同道合的小伙伴们已经找到了学习STM32的好途经(灵光一闪刷到我的博客)了,接下来的时光里,我会讲到一些我对一些模块的使用,同时附上源码还有我的心得。没错,今天我讲的就是继电器的使用。
9 O* m& O2 H, \7 d' d
$ C+ l9 i. a h7 j. S" H7 z$ H8 O( u- v2 T. z6 R
X6 C# g2 A$ m' \* {
% g: i1 }9 f3 `: J, D5 }& B6 [
+ a# f8 j/ `( e6 v& Z( a 一、继电器的使用
) d( U' G4 ^7 G8 o0 l1 S) k- g, Z其实继电器简单来说就是一个开关,VCC表示电源正极、GND表示电源负极、IN表示信号输入脚,COM表示公共端,NC(normal close)表示常闭端,NO(normal open)表示常开端8 {. \* B: z& o8 q6 e4 b
) _ _0 V7 B( T6 ~6 J; e6 s& l+ j) ]1 C3 T+ [' h7 p" x
一般情况下是常闭状态# S$ _, Q/ V& d' ]* ?# N6 \6 C
/ Z6 m3 o" ^" ~ O
2 B+ R' I, k B7 v) }6 L这里简单地描述一下大部分的继电器模块:. N: l7 ^* [: q- M
- n$ p0 t, v* ?
: }1 C" p7 s7 {: qVcc接电源正极,Gnd接电源负极,In接STM32上的输出脚(输入高电平公共端连常闭,输入低电平公共端连常开),如下图所示,你就可以明白了,当IN脚输入高电平时,NC与COM相连(左图);当输入低电平时,NO与COM相连(右图)。
& C( W& P* V, k! V% `3 |+ r/ _
% E2 v3 ]# w2 n6 ~ R, C+ ?9 r, t4 o( ~( R7 A4 T
- Y7 {) `0 Y5 A+ P) ~ t& y
% l& k7 {4 {6 z* s- A2 J. I: z w/ b+ e
+ F" p% J! h L; e! o
In脚输入高电平,COM连着NC
$ t z4 `0 \ c# ~
+ A; ~+ e' {/ u7 t" a
) H9 m" X x0 B) B2 ^
+ U4 O$ @4 W3 L" s, G( j7 Z: n4 E0 P/ u
In脚输入低电平,COM连着NO
! z- ~2 ?0 y, k" X4 O/ y4 r相信这样子你就对继电器有了基本的使用了解,下面我就不讲解其内部的结构原理了,可以到其他文章上学习具体原理,附上链接( V' `+ b9 V" t x8 ] h$ D! q; F
5 |3 Y( W1 h4 x) G
9 m. B6 Q' D; L' s
& g: b% \9 J6 E( X, V
二、写个代码检验 ~: j+ }) O% h& L% ?
下面我就简单的实现以下它的开关功能吧
0 i7 x8 u' V4 o- #include "jdq.h"* p$ X/ X6 b! a8 ?5 a
- " Q+ v4 |) g/ O0 p- A! b
-
) v/ ^% z6 ] r - void relay_init(void)//对继电器初始化,即对PB7口初始化4 n1 g: P0 Z. ^# j
- {
+ q2 `* ? ~; {* C$ g0 N; ?/ L$ M - GPIO_InitTypeDef GPIO_InitStructure;. j' G8 ?! n. @& k3 e) C
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
4 e- p+ r7 M% v; R x# f -
$ l9 r* R. I; B - GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
+ V- F1 i- c# r R4 j& W8 ? - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//: P6 s' Z) z, v3 d7 K. E
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- [' x$ u$ F) \6 o% M, q( p8 a -
( ~: _1 ~7 e5 z3 a: c - GPIO_Init(GPIOB, &GPIO_InitStructure);
% u. x6 A* {9 F& t( T9 H, N - 4 T& S3 @5 g0 K9 D+ o: r
- } . \' G8 S. V, K( y$ K# z3 w* o: K# e
- , E6 ~, U7 \7 g* ]# Q
- void relay_on(void)//PB7置1
2 m1 u& j8 e- n# a% D - {5 W; K+ L9 ^- l' f; e( \
- GPIO_SetBits(GPIOB,GPIO_Pin_7);
; l$ q6 q( S3 S3 l* x3 F - }
* V( ~ n1 m# T( [8 O2 I$ n* |( a$ m -
" C& c4 \6 @( q; [- ~4 @7 \ - void relay_off(void)//PB7置0/ ?) h8 v2 y* o; a. w' a% q( |
- {
5 L# k3 h. j" y, p4 | - GPIO_ResetBits(GPIOB,GPIO_Pin_7);2 c# {/ Z: `) c( O* _
- }
复制代码
; {$ D% Y0 o' Z7 W& {! c% G# J' y% c0 P/ L1 b" a- r
主函数:
; z) o7 y( \- |. M- #include "sys.h"
# u: C0 u, S- m% V$ A - #include "delay.h"
Q" S: Q: f* D+ S# T - #include "led.h"1 m# z: [+ L& s; n
- #include "jdq.h"0 V' D3 e+ {5 B7 E* D
- 4 O! W9 C; E2 J! ]" [0 f N
- int main(void)
- H3 C: A. p) T% e2 V* |3 ` - {
' K$ W A8 [! N. \ - delay_init();
! Q3 P3 i, ~6 V: |9 m - LED_Init();
2 u- W% V: | p4 u - relay_init();//继电器初始化6 }. T0 v2 B) G; }0 F3 m5 y
- while(1)
" K7 x/ m$ A0 [ - {8 E! c3 H5 j3 t5 |; j' E( D
-
e* y' U4 ^( l - relay_off();//置0,即开关置NO,连常开# h6 }6 L0 Z L0 p# y u; M. y0 j3 v c
- LED0=0;4 T8 C: o5 @# x' f5 S- g$ G
- delay_ms(2000);//延时4s左右& H* Z% r5 k* L$ p# `
- delay_ms(2000);4 q5 e3 b8 h( b) Y8 y
- delay_ms(2000);( D; \. e0 |7 _6 a7 }! P
- delay_ms(5000);; T4 M0 V! c4 f' d" n
- delay_ms(5000);/ w( q: ?) T3 k: r- t
- 2 y3 R* T6 \& }' F! w
- relay_on();//置1,即开关置NC,连常闭* r1 p$ s4 }# k% {
- LED0=1;; R7 m( ?) x; v
- delay_ms(2000);//延时4s左右
9 K2 ~' s6 `$ W) R/ ~& H1 H - delay_ms(2000);, d) m1 q( t( B. W% L) r
- delay_ms(2000);
]# ?& G; Z* f; _/ I5 E9 v - delay_ms(5000);, n9 D" F1 m4 M0 t0 h, i3 ?- p
- delay_ms(5000);
3 ~# F' R5 N! H+ h - }
; `5 [" M( n; @! P - }
复制代码
_) H0 u7 x; k% E J
" D7 T5 ?- V/ ~! W( D" |' ` 效果图如下:
_* B) J$ I3 F4 H8 N F. f, G3 x& R, Z9 |/ P, C# f
$ e0 \6 H# |4 M9 |
# q6 s5 L4 u" v+ V
/ k5 X+ B9 J& i) z( P2 N
7 x7 F, l5 w; b5 l
; z4 Y3 w4 }5 s: z
4 r" g2 w4 ~+ r, {+ ` D3 a% Z9 h3 t8 A+ k1 Q4 L
上面我只用了STM32F1的最小系统板测试了一下,光敏传感器检验了一下,注意我这里用的是一节3.7V的锂电池给光敏传感器供电,所以你在给继电器模块上的Vcc口接电源时记得接3.3V的,不能接5V的,不然没法驱动开关,因为这个的原理就是弱电控制强电,你如果比另外一端电压还大那就无法达到效果。, g0 n4 m1 h4 a3 K" `7 w( G1 p: Z
8 D3 l: f/ d% c1 }2 Z6 }
' M: {0 t3 E/ U" t: o; V' U继电器就是小电控制大电电路
* r% W% ^( H9 }2 L————————————————
+ p* q; q+ `; ?版权声明:不说二话的自家人# T+ @0 \- n4 e- \# T7 j
如有侵权请联系删除
, e: f1 [. ^; c" r8 h5 @" w& B& h* e. J; w; L+ w/ \, ?
3 m4 V2 d- `% l \5 E2 C& n |