Arduino用DMX加I²C架構控制多台步進電機-Part 5

Просмотров: 99   |   Загружено: 3 нд.
icon
Y. Eugene (SML)
icon
4
icon
Скачать
iconПодробнее о видео
今天最重要的事情是,開機之後,可以重新設定控制四組步進電機起始的DMX地址
只要用TM1638的四個簡單的按鈕就能做到此功能

TM1638簡易的8個字的顯示器,也能偵測到四台電機所處的狀態
不論是移動中(m)、歸零中(H)、停止或定位(-)、碰到極限開關(F或R)、或耍笨(忘了接任何極限開關(E),都能在第一時間讓使用者知道花生甚麼素~

~DMX的通道意義:~
~Ch1: 粗位置,原則上希望每一個Level讓馬達走一圈~
~Ch2: 細位置,將每一圈再分割成256格~
~Ch3: 速度,其實是步進每一步間格時間(delay)的反義,數值最高(255)時的delay最少~
~Ch4: Enable,這個值要拉到250~255時,才會使驅動器的Enable作用~
~Ch5: 歸零指令,將擴大成三種用法:~
~ 0: 不做任何歸零相關的行為~
~ 70~80(30%):執行「硬體歸零程序」,會一直讓馬達往「負方向」前進去尋找「負極限開關」,除非直接進入「放棄歸零程序」。~
~ 所以,啟動「硬體歸零程序」之後,建議把此通道的值拉回 0,否則就算碰到「負極限開關」也無法完成「硬體歸零程序」。~
~ 150~160(60%):執行「放棄歸零程序」,也就是會會讓馬達不繼續歸零,這是萬一遇到緊急狀況時使用(例如運動路徑上突然發現有異物)。~
~ 250~255(100%):執行「軟體歸零程序」,也就是直接把馬達現在的位置設為 0。~
Serial.println();
~開機時顯示器有E與5交替出現時,按下:~
~S1:準備修改DMX的起始位址(其他三台會往後面各差10號)~
~S2:增加起始位址~
~S3:減少起始位址~


~步進馬達測試程式~
Serial.println();
Serial.print(" I2C_SLAVE_ID I²C站號1/2/3/4 = "); Serial.println(I2C_SLAVE_ID);
Serial.print(" GEAR_RATIO 齒輪箱減速比 = "); Serial.println(GEAR_RATIO);
Serial.print(" DIVISION 步進馬達驅動器分割數 = "); Serial.println(DIVISION);
Serial.print(" complex_factor = steps_per_rotation / levels_of_DMX * GEAR_RATIO * DIVISION / 200.0 = "); Serial.println(complex_factor);
~0. 顯示本選單!停止,不激磁,休息~
~1. 正轉 ~
~2. 反轉 ~
~3. 停止,激磁,不休息~
~// 本 UNO 程式無法直接處理DMX訊號,不再提供此選項:4. DMX定位模式,跑完不休息~
~5. I2C顯示收到數值~
~6. I2C定位模式,跑完不休息(自02/06之後為新的預設模式,也不再列印工作狀態)~

Похожие видео

Добавлено: 55 год.
Добавил:
  © 2019-2021
  Arduino用DMX加I²C架構控制多台步進電機-Part 5 - RusLar.Me