新增 三軸平台IO設定_V1
parent
955fd1c37d
commit
019921d9e4
138
%E4%B8%89%E8%BB%B8%E5%B9%B3%E5%8F%B0IO%E8%A8%AD%E5%AE%9A_V1.md
Normal file
138
%E4%B8%89%E8%BB%B8%E5%B9%B3%E5%8F%B0IO%E8%A8%AD%E5%AE%9A_V1.md
Normal file
|
@ -0,0 +1,138 @@
|
||||||
|
## 三軸平台
|
||||||
|
### IO對應腳位
|
||||||
|
#### 控制台上之按鈕與燈
|
||||||
|
啟動燈 PIN = 22
|
||||||
|
啟動鈕 PIN = 24
|
||||||
|
重啟鈕 PIN = 26
|
||||||
|
急停鈕 PIN = 28
|
||||||
|
停止鈕 PIN = 30
|
||||||
|
#### 三軸之運動相關輸出與輸入
|
||||||
|
X極限 PIN = 5
|
||||||
|
X方向 PIN = 8
|
||||||
|
X運動 PIN = 9
|
||||||
|
|
||||||
|
Y極限 PIN = 6
|
||||||
|
Y方向 PIN = 10
|
||||||
|
Y運動 PIN = 11
|
||||||
|
|
||||||
|
Z極限 PIN = 7
|
||||||
|
Z方向 PIN = 12
|
||||||
|
Z運動 PIN = 13
|
||||||
|
### 相關寫法 - 控制台按鈕
|
||||||
|
``` C
|
||||||
|
// 控制台之按鈕
|
||||||
|
const int stop_bt = 30; // 停止鈕
|
||||||
|
const int scram_bt = 28; //急停鈕
|
||||||
|
const int resetting_bt = 26; //重啟鈕
|
||||||
|
const int activate_bt = 24; //啟動鈕
|
||||||
|
const int activate_led = 22; //啟動燈
|
||||||
|
|
||||||
|
//設定
|
||||||
|
void setup(){
|
||||||
|
Serial.begin(115200);
|
||||||
|
pinMode( stop_bt, INPUT_PULLUP ); // 停止鈕
|
||||||
|
pinMode( scram_bt, INPUT_PULLUP ); //急停鈕
|
||||||
|
pinMode( resetting_bt, INPUT_PULLUP ); //重啟鈕
|
||||||
|
pinMode( activate_bt, INPUT_PULLUP ); //啟動鈕
|
||||||
|
pinMode( activate_led, OUTPUT ); //啟動燈
|
||||||
|
}
|
||||||
|
//讀取按鈕狀態
|
||||||
|
void loop(){
|
||||||
|
stop_state = digitalRead(stop_bt); //讀取按鈕狀態,按下為LOW
|
||||||
|
scram_state = digitalRead(scram_bt); //讀取按鈕狀態,按下為LOW
|
||||||
|
resetting_state = digitalRead(resetting_bt); //讀取按鈕狀態,按下為LOW
|
||||||
|
activate_state = digitalRead(activate_bt); //讀取按鈕狀態,按下為LOW
|
||||||
|
|
||||||
|
if (stop_state == LOW){
|
||||||
|
stop_clicked(); //運行觸發程式
|
||||||
|
digitalWrite( activate_led, LOW );
|
||||||
|
}
|
||||||
|
if (scram_state == LOW){
|
||||||
|
scram_clicked(); //運行觸發程式
|
||||||
|
digitalWrite( activate_led, LOW );
|
||||||
|
}
|
||||||
|
if (resetting_state == LOW){
|
||||||
|
resetting_clicked(); //運行觸發程式
|
||||||
|
}
|
||||||
|
if (activate_state == LOW){
|
||||||
|
activate_clicked(); //運行觸發程式
|
||||||
|
digitalWrite( activate_led, HIGH );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
|
### 相關寫法 - 三軸運動方式
|
||||||
|
``` C
|
||||||
|
const int PIN_5 = 5; //X極限
|
||||||
|
const int PIN_6 = 6; //Y極限
|
||||||
|
const int PIN_7 = 7; //Z極限
|
||||||
|
//設定
|
||||||
|
void setup(){
|
||||||
|
Serial.begin(115200);
|
||||||
|
//設置極限腳位
|
||||||
|
pinMode( PIN_5, INPUT );
|
||||||
|
pinMode( PIN_6, INPUT );
|
||||||
|
pinMode( PIN_7, INPUT );
|
||||||
|
//設置馬達腳位
|
||||||
|
pinMode(9, OUTPUT); //X_運動
|
||||||
|
pinMode(8, OUTPUT); //X_方向
|
||||||
|
pinMode(13, OUTPUT); //Z_運動
|
||||||
|
pinMode(12, OUTPUT); //Z_方向
|
||||||
|
pinMode(11, OUTPUT); //Y_運動
|
||||||
|
pinMode(10, OUTPUT); //Y_方向
|
||||||
|
|
||||||
|
go_home(); // 回原點
|
||||||
|
|
||||||
|
}
|
||||||
|
// 原點function
|
||||||
|
void go_home(){
|
||||||
|
Serial.println("馬達X軸啟動");
|
||||||
|
digitalWrite(8, HIGH); // 方向
|
||||||
|
while (1){
|
||||||
|
if (LOW != digitalRead(PIN_5)){
|
||||||
|
digitalWrite(9, HIGH); // 将引脚设置为高电平
|
||||||
|
delayMicroseconds(50); // 等待5毫秒
|
||||||
|
digitalWrite(9, LOW); // 将引脚设置为低电平
|
||||||
|
delayMicroseconds(50); // 等待5毫秒
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Serial.println("馬達X軸結束");
|
||||||
|
|
||||||
|
Serial.println("馬達Y軸啟動");
|
||||||
|
digitalWrite(10, HIGH); // 方向
|
||||||
|
while (1){
|
||||||
|
if (LOW != digitalRead(PIN_6)){
|
||||||
|
digitalWrite(11, HIGH); // 将引脚设置为高电平
|
||||||
|
delayMicroseconds(50); // 等待5毫秒
|
||||||
|
digitalWrite(11, LOW); // 将引脚设置为低电平
|
||||||
|
delayMicroseconds(50); // 等待5毫秒
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Serial.println("馬達Y軸結束");
|
||||||
|
|
||||||
|
Serial.println("馬達Z軸啟動");
|
||||||
|
digitalWrite(12, HIGH); // 方向
|
||||||
|
while (1){
|
||||||
|
if (LOW != digitalRead(PIN_7)){
|
||||||
|
digitalWrite(13, HIGH); // 将引脚设置为高电平
|
||||||
|
delayMicroseconds(80); // 等待8毫秒
|
||||||
|
digitalWrite(13, LOW); // 将引脚设置为低电平
|
||||||
|
delayMicroseconds(80); // 等待8毫秒
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Serial.println("馬達Z軸結束");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user