愛招飛幫助手冊 愛招飛幫助手冊
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • Smart幫助主頁
  • 學習手冊

  • 開發手冊

    • 通訊協議

      • 通訊埠

        • 通訊埠印表機
        • 通訊埠電子秤
        • 通訊埠讀取溫濕度
        • 通訊埠控制LED燈
          • 1. 說明
          • 2. 零件連線圖
          • 3. 使用零件
          • 4. Arduino流程圖
          • 5. Arduino程式
          • 6. 設計明細
          • 7. 程式設計
            • 7.1. 程式初始設定
            • 7.2. 事件設定
          • 8. 運行結果
        • 智能電錶採集
      • 藍芽Bluetooth

      • 無線網WIFI

      • ModbusRTU

      • ModbusTCP

      • OPC

      • MQTT

      • RestAPI

      • HTTP

    • 互動輸出

    • 媒體存取

    • 人工智慧

    • 實體運用

目录

通訊埠控制LED燈

# Smart之通訊埠控制LED燈

# 1. 說明

  使用Smart智慧控制平臺,通過通訊埠控制連線到Arduino的LED。當從通訊埠輸出高電平時,開啟Arduino開發板上的LED,當通訊埠輸出低位電平時,關閉Arduino開發板上的LED。

  LED發光二極管是電子電路中常用的元器件,它便宜且耐用,通常用於訊號指示的電路中。在本範例中,我們使用一個LED發光二極管,它的正極(二極管腳較長的一端)與一個電阻相連,LED發光二極管的負極(二極管腳較短的一端)與Arduino開發板的地線(GND)相連。此處使用到一個限流電阻,因為Arduino開發板輸出的電流為5V,超出二極管的工作電壓,接入電阻后可以降低二極管的電壓,避免二極管被擊穿。

  此處電阻與Arduino的針腳8相連,因此針腳8為訊號輸出端,我們在程式中也對該針腳進行了定義。當針腳8輸出高位電平時,LED發光二極管點亮;針腳8輸出低位電平時,LED發光二極管熄滅。

  通過範例學習,可以掌握TComport元件的基本屬性,並結合Arduino開發板,通過通訊埠控制LED燈的功能。

# 2. 零件連線圖

# 3. 使用零件

序號 零件名稱 數量
1 Arduino UNO R3 開發板 1
2 USB數據線 1
3 麵包板 1
4 杜邦線 若干
5 LED發光二極管 1
6 220歐姆電阻 1

# 4. Arduino流程圖

# 5. Arduino程式

  使用Arduino IDE 編譯並上傳以下Arduino程式。

#define LED_PIN 8                          // 定義第8針腳輸出LED亮滅的狀態

bool LLedState = false;                    // 設定初始值
int LVal = 0;

void setup() {
   pinMode(LED_PIN, OUTPUT);               //設定第8針腳為輸出模式
   Serial.begin(9600);                     //設定通訊位元率為9600
}

void loop() {
  if(Serial.available() > 0) {             // 檢查是否可以從通訊埠讀取數據
    LVal = Serial.read();                  // 從通訊埠讀取數據
    if(LVal != 0) {                        // 讀取的數據不能為空
      if(LVal == 45) {
        Serial.print("READY");             // 傳輸準備完成的字串
      } else {
         OnSerialCommand(LVal);            // 運行LED開關的子程式
      }
      LVal = 0;                            // 重新設定初始值
    } 
  }
 }

void OnSerialCommand(int cmd) {
  if(cmd == 49) {                          // 如果接收到的字串為'1'
    LLedState = true;                      // 設定LED開關狀態為True
  } else if(cmd == 48) {                   // 收到的字串如果'0'
    LLedState = false;                     // 設定LED開關狀態為False
  }
  if(LLedState) {                          // 檢查LED燈開關狀態
    digitalWrite(LED_PIN, HIGH);           // 第8針腳輸出高位電平,LED燈亮
    Serial.print("LED_ON_OK");             // 傳送LED燈亮的資訊
  } else {
    digitalWrite(LED_PIN, LOW);            // 第8針腳輸出低位電平,LED燈滅
    Serial.print("LED_OFF_OK");            // 傳送LED燈滅的資訊
  }
} 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

# 6. 設計明細

  開啟Smart智慧控制平臺,分別加入下插圖之控制元件。或者通過點選功能表欄[檔案]-[打開專案]選擇範例專案檔案來打開該範例。

通訊埠控制LED燈 UI佈局

  ①:TImage元件,控制元件名稱為Image1。

  ②:TImage元件,控制元件名稱為Image2,Image2控制元件顯示在Image3上面。

  ③:TImage元件,控制元件名稱為Image3,Image3控制元件顯示在Image2下面。

  ④:TImage元件,控制元件名稱為Image4。

  ⑤:TImage元件,控制元件名稱為Image5。

  ⑥:TComPort元件,控制元件名稱為ComPortLED。

  • Main窗體屬性設定

    • Caption:主窗體標題,設定為通訊埠控制LED燈。
    • ClientHeight:窗體客戶區高度=411。
    • ClientWidth:窗體客戶區寬度=720。
  • ①Image1屬性設定

    • Height:設定圖片高度=411。
    • Width:設定圖片寬度=720。
    • Picture:設定圖片(背景圖片)。點選Picture屬性右側的[...]按鈕,打開檔案上傳界面,點選[Load...]從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]載入圖片。
  • ②Image2屬性設定

    • Height:設定圖片高度=50。
    • Width:設定圖片寬度=50。
    • Visible:設定圖片可見=True。
    • Picture:設定圖片(滅燈)。點選Picture屬性右側的[...]按鈕,打開檔案上傳界面,點選[Load...]從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]載入圖片。
  • ③Image3屬性設定

    • Height:設定圖片高度=50。
    • Width:設定圖片寬度=50。
    • Visible:設定圖片可見=False。
    • Picture:設定圖片(亮燈)。點選Picture屬性右側的[...]按鈕,打開檔案上傳界面,點選[Load...]從檔案瀏覽器中選擇對應的圖片檔案上傳,返回該界面下,待顯示出圖片後點擊[OK]載入圖片。
  • ④Image4屬性設定

    • Height:設定圖片高度=50。
    • Width:設定圖片寬度=50。
    • Picture:設定圖片(開關開)。
  • ⑤Image5屬性設定

    • Height:設定圖片高度=50。
    • Width:設定圖片寬度=50。
    • Picture:設定圖片(開關關)。
  • ⑥ComPortLED屬性設定

    • BaudRate:設定通訊埠通訊速率=br9600。
    • DataBits:設定通訊埠傳輸數據位數=db8。
    • DeviceName:設定通訊埠對應設備的埠號,依據設備實際情況進行填寫。
    • Name:控制元件名稱,設定為ComPortLED。

# 7. 程式設計

# 7.1. 程式初始設定

  在初始啟動時,需打開通訊埠以啟動設備與Arduino開發板的連線。

constructor TMyHandler.Create(AOwner: TComponent);
begin
  FThis :=TBaseForm(AOwner);
  //打開通訊埠通訊
  FThis.ComPortLED.Open;
end;
1
2
3
4
5
6

# 7.2. 事件設定

  • ④Image4 - OnClick事件

Image4是開關關閉狀態的影象,點選該影象,ComPortLED會向通訊埠發送字元'0',Image4隱藏,顯示被遮蓋的Image5影象(開關開啟狀態)。同時Image3(燈滅狀態影象)也會隱藏。連線Arduino開發板的LED發光二極管如處於點亮狀態則會被熄滅。

procedure TMyHandler.Image4Click;
begin
    //關燈
    FThis.ComPortLED.WriteChar('0');
    FThis.Image4.Visible := False;
    FThis.Image3.Visible := False;    
end;
1
2
3
4
5
6
7
  • ⑤Image5 - OnClick事件

Image5是開關打開狀態的影象,點選該影象,ComPortLED會向通訊埠發送字元'1',Image4(開關關閉狀態)會顯示並遮住Image5影象。同時Image3(燈滅狀態影象)也會顯示並遮住Image2影象。連線Arduino開發板的LED發光二極管如果處於熄滅狀態則會被點亮。

procedure TMyHandler.Image5Click;
begin
    //開燈
    FThis.ComPortLED.WriteChar('1');
    FThis.Image4.Visible := True;
    FThis.Image3.Visible := True;  
end;
1
2
3
4
5
6
7

# 8. 運行結果

  通過工具欄儲存,將程式儲存為 sdb 專案檔案。

  使用滑鼠點選工具欄運行(Run),測試運行結果。

  點選右側的開關影象,開關打開,上方的燈泡切換為亮燈的狀態,同時連線Arduino開發板的LED發光二極管處於點亮的狀態;在亮燈狀態下,點選右側的開關影象,開關關閉,上方的燈泡切換為燈滅的狀態,同時連線Arduino開發板的LED發光二極管處於關閉的狀態。

通訊埠控制LED燈 運行結果
通訊埠讀取溫濕度
智能電錶採集

← 通訊埠讀取溫濕度 智能電錶採集→

Copyright © 2021-2025 愛招飛IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式