# 娃娃機
:::info
- 沒錯我真的只是想做而已
:::
## 記帳區
- 紀錄我們到底花多少
---
| 日期 | 名稱 | 金額 |
| -------- | -------- | -------- |
| 3/31 | 收錢 | +4000 |
| 3/31 | 角鋼 | -1798 |
| | 統計 | 2211 |
## 當然少不了的工筆區
- 應該不需要我再次介紹工筆了吧
---
-
## 乾爹區域
- 到底有誰贊助我們呢?
---
### 感謝 黃新華 贊助夾爪
## 程式碼
### 測試個軸
```cpp
//這是一個娃娃機的測試程式
//各種函示庫
#include<Servo.h>//伺服馬達
//輸入元件
//這是一個娃娃機的測試程式
//各種函示庫
#include<Servo.h>//伺服馬達
//輸入元件
int w_pin = 12, a_pin = 2, s_pin = 3, d_pin = 4; //搖桿(前,左,後,右)
int wls_pin = 6, als_pin = 7, sls_pin = 8, dls_pin = 9, upls_pin = 10; //限位(前,左,後,右,上)
int button_pin = 5, coin_pin = 11; //按鈕,投幣器
int inpin[] = {w_pin, a_pin, s_pin, d_pin, wls_pin, als_pin, sls_pin, dls_pin, upls_pin, button_pin, coin_pin, 0};
//輸出元件
int spark_x_pin = 11, spark_y_pin = 12, spark_z_pin = 13;
int outpin[] = {0};
Servo spark_x;
Servo spark_y;
Servo spark_z;
void setup() {
//servo
spark_x.attach(spark_x_pin);
spark_y.attach(spark_y_pin);
spark_z.attach(spark_z_pin);
spark_x.write(90);//關閉馬達
spark_y.write(90);
spark_z.write(90);
//setup
Serial.begin(9600);
//set_pinmod
for (int i = 0; i <= 100; i++) {
if (inpin[i] == 0) {
break;
}
pinMode(inpin[i], INPUT_PULLUP);
}
for (int i = 0; i <= 100; i++) {
if (outpin[i] == 0) {
break;
}
pinMode(outpin[i], OUTPUT);
}
}
void loop() {
}
void xy() {
if (digitalRead(w_pin) == LOW and digitalRead(wls_pin) == LOW) {
spark_y.write(0);
} else if (digitalRead(s_pin) == LOW and digitalRead(sls_pin) == LOW) {
spark_y.write(180);
} else {
spark_y.write(90);
}
if (digitalRead(a_pin) == LOW and digitalRead(als_pin) == LOW) {
spark_x.write(0);
} else if (digitalRead(d_pin) == LOW and digitalRead(dls_pin) == LOW) {
spark_x.write(180);
} else {
spark_x.write(90);
}
}
void z() {
int delaytime = 3000;
spark_z.write(0);
while (delaytime > 0) {
delaytime--;
if (digitalRead(button) == LOW) {
delay(20);
if (digitalRead(button) == LOW) {
delaytime = 0;
}
}
}
spark_z.write(90);
}
```