【E-Lock NXP LPC55】 電子門鎖馬達控制與調試攻略

一、前言

 這篇博文和大家分享基於 NXP LPC55S69 E-Lock門鎖方案直流馬達的控制方式。

  

二、門鎖馬達結構與門鎖解鎖原理說明

 1.  門鎖馬達規格與運轉說明

 (1) 馬達規格

■ 電壓使用範圍     :  3.0V ~ 6.0V DC

■ 額定電流             :  170mA (max)

■ 推出時間與行程   :  0.3S / 6mm

 

直流馬達推桿位置示意圖

 

(2) 馬達的運轉操作

■ 正端給 3.3V 電壓,負端給 0V 電壓時,馬達正轉;

■ 負端給 3.3V 電壓,正端給 0V 電壓時,馬達反轉;

■ 當馬達正負端都接 0V 電壓,馬達停止運轉。

 

 

 2.  門鎖解鎖原理說明

藉由直流馬達正反轉控制推桿前進或後退 :

(1)  推桿前進時推動鎖芯的卡榫,使卡榫嵌入轉軸,門把手得以轉動鎖芯開鎖;

(2)  推桿退回時,卡榫隨之退出鎖芯,使門把下拉時,因門把空轉而無法轉動鎖芯開鎖。


 

三、馬達驅動器之設計介紹

本方案的馬達驅動器使用 ON Semi 的 LV8716QA; LV8716QA 可控制馬達正轉/反轉/煞車/待機四種操作模式的雙通道驅動器。

電壓範圍 2.7V 到 10.5V,最大輸出峰值電流 1.5A,輸出電流 1A,邏輯輸入信號電壓 -0.3V ~ +6V;規格符合本方案設計所需,故用以做為推動門鎖馬達的驅動器。

 

 1.  主要的引腳功能敘述

 
LV8716QA IC 示意圖

(1) PS 引腳:

PS (Power Saving) 引腳直接控制 LV8716QA 待機 / 操作模式 :

 
LV8716QA PS 引腳功能操作

(2) IN1 /IN2 及 IN3 / IN4 分別為兩通道輸入信號引腳:

可控制兩個通道馬達進行 待機 / 正轉 / 反轉 / 煞車 四種模式運作。

 

(3) OUT1A / OUT1B及 OUT2A / OUT2B分別為兩通道輸出信號引腳

IN1 及 IN2 為第一個通道的輸入信號,控制第一個通道 OUT1A 及 OUT1B 的輸出;

IN3 及 IN4 為第二個通道的輸入信號,控制第二個通道 OUT2A 及 OUT2B 的輸出。

 


2.  第一通道控制直流馬達的輸出信號邏輯表

 
LV8716QA 控制直流馬達信號邏輯表

輸入控制信號及輸出電流信號關係圖

(1) 第一通道輸入控制信號 IN1 / IN2:

黃色信號表示 IN1 輸入控制信號;

綠色信號表示 IN2 輸入控制信號。

 

(2) 第一通道輸出電流信號 I1:

紅色部分表示順向電流時,則馬達正轉;

藍色部分表示逆向電流時,則馬達反轉。

 
LV8716QA_IN1IN2_I1_waveform



3、增強輸出功率的處理方式

 

此芯片支援兩通道並接,可增強輸出馬達推動能力:

(1) 可將 IN1 並接到 IN3,  IN2 並接到 IN4;

(2) 再將 OUT2A 並接到 OUT1A,OUT2B 並接到 OUT1B;

如此可以獲得約兩倍的輸出功率。

 

 

增強輸出馬達推動能力線路接法示意圖:

 

LV8716QA_MCU_motor_接線示意圖


 

四、門鎖馬達控制系統軟體解析

 

1、系統開鎖及上鎖處理程序介紹

 

下圖中間是系統開鎖及上鎖處理程序,兩邊分別是 門鎖馬達-開鎖門鎖馬達-上鎖的程序:

 
E-Lock 系統開鎖及上鎖處理程序示意圖

下圖分別為開鎖及上鎖馬達推桿位置圖示,

自動停止的轉動時間(t)  MotorType.motorDelay  : 為推桿到定位所需的馬達轉動時間。

 

 

2、處理程序所用到的 API 介紹

 

(1) 控制馬達正轉開鎖/反轉上鎖 API

可呼叫 moto_drive(bool is_on) API 控制馬達正轉開鎖、反轉上鎖的操作。

傳入的引數 is_on 為布林值:


Is_on = true , 則馬達正轉開鎖

Is_on = false , 則馬達反轉上鎖

MotorType.motorDelay 為推桿移動到定位,馬達轉動的時間(t)


moto_drive(bool is_on)
 

MotorType.motorDelay                            =  MOTOR_DELAY_TIME ;

#define MOTOR_DELAY_TIME                300U  //300ms

該方案設定馬達轉動時間(t)為300ms         ( 此參數與馬達規格參數有關,需各別調試 )

 

 

(2) 控制馬達停止轉動的 API


可呼叫 moto_stop() API 控制馬達停止轉動。

 
moto_stop()

第 3~4 行,控制馬達停止,

第 6 行,設定馬達驅動器 LV8716QA 致能狀態設成 disable

第 7 行,關閉馬達供電線路的 MOSFET 開關,使 LV8716QA 斷電

motorType.status 紀錄馬達為停止狀態;

DoorType.TheDoorStatus 紀錄當馬達停止時,門鎖是處於開鎖或上鎖的狀態。

 

 

3、馬達主控程式碼 :

 

門鎖馬達主控程式 Motor_Ctrl() 程式碼如下:

 
Motor_Ctrl()

MotorType.waitUserDelay 這個結構變數用來設置自動上鎖時間,目前設定 5 秒,

 
MotorType.waitUserDelay 列舉值

 

可依照實際需要更改這個數值。

 以上,希望這篇博文能對大家在了解 E-Lock 方案馬達控制開鎖的設計能有所幫助,謝謝。

 

 

參考資料:

■ ON Semi LV8716QA datasheet :

https://www.onsemi.com/pdf/datasheet/ena2254-d.pdf

■ NXP LPC55S69 datasheet :

https://www.nxp.com/docs/en/data-sheet/LPC55S6x.pdf

 

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能