# 娃娃機 :::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); } ```