新增 三軸平台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