QEC Example – Digital Input

QEC Example – Digital Input

[QEC教程]

For the full tutorial, see EtherCAT Library範例: QEC的Digital Input/Output.

Digital Input

本章節將透過EtherCAT數位輸入模組,QEC-R11DF0,接收外部的數位信號,並透過Serial Port印出。

硬體說明

  • QEC-M-01
  • QEC-R11D0F: EtherCAT 16數位輸出通道從站模組
  • 其他: 開關

Circuit

與Digital Output相同,請先將QEC-M上的EtherCAT Out網路與QEC-R11DF0的EtherCAT In網路連接。 此範例將外接一個按鈕,使用QEC-R11DF0的Pin8 作為接收信號腳位:

  1. Vp電源連結外部按鈕
  2. 外部按鈕接到QEC-R11DF0的Pin8+
  3. QEC-R11DF0的Pin8-接回Vp電源的GND

如圖所示。

rn_image_picker_lib_temp_228850c5-c615-466d-a50b-ec309e6c6616

代碼

建構電路後,您需要設定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應用.
You can also explore 程式語法參考 or 函式庫參考 for a more detailed collection of 86Duino IDE programming.

發表評論

上部へスクロール