2022年12月7日 星期三

【Arduino】 RS485 實現Modbus Slave

 這次使用Arduino UNO + RS485 的模組,來實現Modbus Slave 的通訊

Pin Name

Pin Description

VCC

5V

A

Non-inverting Receiver Input

Non-Inverting Driver Output

B

Inverting Receiver Input

Inverting Driver Output

GND

GND (0V)

R0

Receiver Out (RX pin)

RE

Receiver Output (LOW-Enable)

DE

Driver Output (HIGH-Enable)

DI

Driver Input (TX pin)

接線圖

Arduino UNO

MAX-485 TTL to RS-485 Converter Module

0(RX)

RO

1(TX)

DI

4

DE & RE

+5V

VCC

GND

GND


下載ModbusRTU.h 資料庫

程式撰寫
#include<ModbusRtu.h>   
//定義MAX485 TTL到RS-485轉換器模塊和Arduino UNO之間連接的引腳名稱。
#define TXEN  2    
Modbus slave(1,Serial,TXEN);  //初始化類ModbusMaster的節點對象,從站ID 1。
uint16_t au16data[100] = { 0 }; //宣告資料陣列 for Registers
void setup() {
  //將波特率設置為9600
  Serial.begin(9600);
  slave.start(); //啟動Slave
}
void loop(){
    slave.poll( au16data, 100); //帶入資料陣列, 陣列長度
    au16data[10] = 1212;        //Registers 40010 = 1212   au16data[11] = au16data[31]; //Registers 40011 = 40031 }
使用Modbus Poll master 軟體通訊

可以看到
40010 的資料為Arduino 寫入1212
當40021改變時40011會跟著改變

!!!使用Modbus Poll master 軟體需要用USB轉485的TOOL
用USB to 485 連接 Arduino 485 module
A  --> A
B --> B











2022年11月13日 星期日

【Arduino】 CAN Bus 測試/應用 MCP2515

 本篇選用Arduino UNO 、CAN Bus Shield 做示範

Arduino UNOCAN bus


使用CAN Bus Shield 方便與Arduino 進行連接。

CAN Bus Shield 接腳          對應      Arduino

               INT                      ——>        2

               MISO                   ——>      12

2022年11月4日 星期五

Lazervida 10W 雷射雕刻機開箱 組裝 使用

在嘖嘖上看到Lazervida 10W 雷雕機立馬早鳥下單

等了2個月終於收到貨!

看到箱子當下真的覺的就這樣??  有這麼小嗎??

開箱ING。。。

2022年7月3日 星期日

【Arduino】 0.96 SSD1306 單色 OLED

本篇使用Arduino UNO 連接SSD1306 0.96 OLED

市面上OLED常見的0.96吋屬於SSD1306晶片規格。

OLED接線很簡單,使用I2C介面,所以只有4條線,SDA、SCL接到Arduino Uno板上的A4、A5,VCC接到5V,GND接GND。

2020年7月13日 星期一

運算式符號-英文代號

EQ 就是 EQUAL等于
NQ 就是 NOT EQUAL不等于
GT 就是 GREATER THAN大于 
LT 就是 LESS THAN小于
GE 就是 GREATER THAN OR EQUAL 大于等于
LE 就是 LESS THAN OR EQUAL 小于等于

2019年8月2日 星期五

【Qt】ComboBox 下拉式選單

【Qt】ComboBox 下拉式選單

1. 建立選單資料

ui->ComboBox->insertItem(0,"ONE")
ui->ComboBox->insertItem(1,"SEC")

【Qt】開啟文件

【Qt】開啟文件

如何在視窗中設置開啟檔案:

1. 使用QFileDialog
#include<QFileDialog>

2. 在事件中加入
QString Filename = QFileDialog::getOpenFileName(this,
                      "Open File","C:\\", "Text Files (*.txt *.NC *.CNC)");
觸發時會呼叫一個開啟檔案的視窗

【Arduino】 RS485 實現Modbus Slave

 這次使用Arduino UNO + RS485 的模組,來實現Modbus Slave 的通訊 Pin Name Pin Description VCC 5V A Non-inverting Receiver Input Non-Inverting Driver Output ...