訓練家的佈弱格-Patch1.2

The BLOG of trainer



編輯日期:2018-08-30 11:39

類型:NSR 150
作者:羽山
文章時間:2018-08-30 11:39:35
瀏覽人數:4586人
標題: NSR-RC伺服馬達研究-第二章
網址:https://3wa.tw/blog/blog.php?id=1687
內容:
 

 

時間過的很快,離上一次研究 NSR-150 RC 伺服馬達,到現在,又過了 2年半...

最近幾個月都在研究 Arduino ,手邊的零件多了些,晚上睡不著又想起了 2年前的想法

有點想作看看 RC 伺服馬達,當時思考的的方向,是不是能著手去實現?

 

之前的想法是這樣:

 

RC的【綠/白紅】得出下表:

項次 量測方法 數值
1 遠低於Lo的極限 1KΩ
2 Lo 1.85KΩ
3 Hi 3.43KΩ
4 遠高於Hi的極限 4.11KΩ

 

思考:

因為我也打算自己作一組RC電腦,目前用二期的電腦,在2000~3000轉左右,RC會全開一次,造成起步有點憨,如果作RC測試只在電門打開後開關個2、3幾次,應該就夠了,清積碳的頻率應該不需要縮短到每次起步都要清…

 根據維修手冊裡提到 5500 初開 8000 全開

如果把 RC 開啟分成幾個階段:

 

項次
階段
角度 阻值參考
1
5500轉以下
Lo 1228
2
5500~6000
18% 1656
3
6000~6500
36% 2084
4
6500~7000
54%
2512
5
7000~7500
72%
2940
6 7500~8000 86% 3368
7
8000轉以上
Hi
3796

 

 

 於是使用 ESP8266 來實作看看,關鍵字是 Arduino Ohm meter

可以利用一個 1KΩ 的電阻當對照組,然後用 A0 跟穩定的 5V 來測量受測者的電阻

上圖是 RC 馬達轉到 Lo

 

 

 在電腦上可以讀出 R2 (RC的電阻),在 Lo 時,是 1300 Ω = 1.3KΩ

 

 

 當RC馬達轉到 Hi

 

 

 R2 可以讀到 4100~4200Ω = 4.2KΩ

 

 

電路圖畫好了^_^

 

 如果以讀取電阻的方式也可以判斷 RC 的姿態,那麼自己寫程式來控制就有可能實現了

過二天繼續挑戰照這個電路能不能成功^_^

 

RC馬達上的【藍/綠】用途不明,嗯....

課題如下:
(Done) 一、利用Arduino A0 來取 RC馬達【綠、白/紅】的電阻值來判斷 RC目前的姿態。
(待驗證)二、D3 讀入引擎轉速。
(待驗證)三、D0、D1、D2 依照(一、二)來決定輸出給伺服馬達正反轉。

 

2018-09-02 我訂的 Buck、L298N 總算到了

晚上把電路接一接

 似乎沒幾條線,一下就接好了

之後輸入只需要三條,輸出四條

輸入的三條:12V、0V(地線)、轉速訊號「白/紅」

輸出的四條:伺服馬達「白、白/黑、綠、白紅」

 

NSR-150 RC馬達控制方式學習,開機後開關二次,後面測試爬階梯,不會撞底跟撞頂。

課題如下:
(Done) 一、利用Arduino A0 來取 RC馬達【綠、白/紅】的電阻值來判斷 RC目前的姿態。
(待驗證)二、D3 讀入引擎轉速。
(Done) 三、D0、D1、D2 依照(一、二)來決定輸出給伺服馬達正反轉。
流程:
1、藉由開始初始化讀出最低點、最高點之電阻值,如 800Ω~3800Ω
min_data = 800Ω
max_data = 3800Ω
將之分成 7 等份。
(3800-800) / 7 = 428/每份
然後產生 ARRAY(7+1) 的陣列。
0級 = 800+0*428 = 800
1級 = 800 ~ 800+1*428 = 1228
2級 = 1228 ~ 800+2*428 = 1656
3級 = 1656 ~ 800+3*428 = 2084
4級 = 2084 ~ 800+4*428 = 2512
5級 = 2512 ~ 800+5*428 = 2940
6級 = 2940 ~ 800+6*428 = 3368
7級 = 800+7*428 = 3796
實際運轉安全範圍 = 1~6級,0級、7級低於 Lo、Hi 不用,避免馬達過度旋轉頂邊。

函式一:取得目前伺服馬達在第幾級別
函式二:什麼樣的轉速要用第幾級
函式三:馬達旋轉(RC開)
函式四:馬達旋轉(RC關)
函式五:馬達停止
函式六:依轉速自動旋轉至對應級別

函式一說明:取得目前伺服馬達在第幾級別
設馬達電阻值為 R2
return round((R2-min_data) / 428);
例 R2 = 1700 , 得 2 級
例 R2 = 3333 , 得 6 級

 

函式二說明:什麼樣的轉速要用第幾級
如果 rpm 低於 5500 轉,回應第1級
如果 rpm >= 5500 && rpm < 6000,回應第2級
如果 rpm >= 6000 && rpm < 6500,回應第3級
如果 rpm >= 6500 && rpm < 7000,回應第4級
如果 rpm >= 7000 && rpm < 7500,回應第5級
如果 rpm >= 7500 回應第6級

 

函式三說明:馬達旋轉(RC開)
D0 = true
D1 = false
D2 = true

 

函式四說明:馬達旋轉(RC關)
D0 = true
D1 = true
D2 = false

 

函式五說明:馬達停止
D0 = true
D1 = false
D2 = false

 

函式六說明:依轉速自動旋轉至對應級別
rpm = 目前轉速
rpm_step = 目前轉速應對應級別
R2_now_step = 伺服馬達目前級別
R2 = 伺服馬達目前電阻值

int rpm_step = 函式二(rpm);
int R2_now_step = 函式一(R2);
如果 rpm_step == R2_now_step (目前轉速對應級別==伺服馬達目前級別 )
函式五:馬達停止
如果 rpm_step < R2_now_step (目前轉速對應級別<伺服馬達目前級別 )
函式四:馬達旋轉(RC關)
如果 rpm_step > R2_now_step (目前轉速對應級別>伺服馬達目前級別 )
函式三:馬達旋轉(RC開)

 

這次在實作的過程,一度遇到困難,RC馬達一直不轉,後來發現是 L298N 的 INPUT

12V、地、5V,原來 5V 也要接電才會動~_~

之後再來把線路圖修正一下...

 

下一章,研究 Arduino 讀取轉速值。

 

差不多可以開始找同原廠的防水接頭~~

 

 

 

 

 

首頁  上十頁  上一頁  1 下一頁    最末頁 (總共有...1頁)

第 1 頁

有話要說  看留言 【0】
其他分類
當月訓練
(2018-08-30)
【NSR 150】NSR-RC伺服馬達研究-第二章

(2018-08-26)
【FZR 150】化油器的空心螺絲

(2018-08-26)
【3WA日常】化油器、卡鉗、鐵塊(游Sir)

(2018-08-13)
【3WA日常】卡鉗整理(蔡Sir)

(2018-08-04)
【3WA日常】卡鉗維修(小黑)

(2018-08-04)
【NSR 150】NSR製作小飛鏢

最新訓練
(2024-03-09)
【HONDA CBR1000RR】CBR1000RR 原廠管

(2024-02-24)
【NSR 150】NSR150 整理後卡鉗

(2024-02-14)
【機車綜合相關】買了牧田的打氣機與心得

(2024-02-10)
【NSR 150】NSR150 整流器接頭重作

(2024-02-09)
【機車綜合相關】鋰電、鋰鐵電池、電源充電器

(2024-01-07)
【NSR 150】NSR150 貨架耳朵斷裂維修

(2024-01-06)
【KTM 390】KTM Duke390 維修發電問題 電盤內仁

(2023-12-29)
【NSR 150】NSR150 改可調拉桿

(2023-11-20)
【遊戲 / 生活】防盜洗手罐

(2023-11-17)
【KTM 390】KTM Duke390 製作鋰鐵電池