[QEC教程]
完整教學請參見 EtherCAT 範例:QEC 數位輸入/輸出.
數位輸入
本章節將透過EtherCAT數位輸入模組,QEC-R11DF0,接收外部的數位信號,並透過Serial Port印出。
硬體說明
- QEC-M-01
- QEC-R11D0F: EtherCAT 16數位輸出通道從站模組
- 其他: 開關
電路
與數位輸出相同,請先將 QEC-M 的 EtherCAT Out 網路連接到 QEC-R11DF0 的 EtherCAT In 網路。 本範例將連接一個外部開關,使用 QEC-R11DF0 的 Pin8 作為接收訊號接腳:
- Vp電源連結外部按鈕
- 外部按鈕接到QEC-R11DF0的Pin8+
- QEC-R11DF0的Pin8-接回Vp電源的GND
如圖所示。
代碼
建構電路後,您需要設定EtherCAT主站與從站物件名稱。
EthercatMaster master; EthercatDevice_QECR11DF0H slave; // Depend on your QEC device name
接下來,將EtherCAT主站與從站初始化,並將從站掛載到EtherCAT中。
master.begin(); slave.attach(0, master); master.start();
透過Serial Port把Digital Read的信號印出,Serial的鮑率設置為115200。
序列號.開始(115200);
在主程式中 (loop),您需要利用以下程式碼,將QEC-R11DF0的Pin8信號讀取出來。
slave.digitalRead(8);
在此範例中,為了不讓Digital Input的信號,持續輸出在Serial Port,您可以創建兩個變數作為讀取信號有變動的依據,並在主程式中透過if-else判斷兩次接收的信號是否不相同後,再透過Serial Port印出,如下。
bool din=0, dinOld=0; /* ------------- ellipsis --------------- */ din = slave.digitalRead(8); if (din != dinOld) { Serial.println(din); dinOld = din; }
範例
#include "Ethercat.h" EthercatMaster master; EthercatDevice_QECR11DF0H slave; // Depend on your QEC device name bool din=0,dinOld=0; void setup() { Serial.begin(115200); while (!Serial); master.begin(); slave.attach(0, master); master.start(); } void loop() { din = slave.digitalRead(8); if (din != dinOld) { Serial.println(din); dinOld = din; } }
學習更多
你可以在下方找到更多關於QEC基礎應用的信息 EtherCAT應用.
您還可以探索 程式語法參考 或 函式庫參考 更詳細的86Duino IDE程式設計集合。