|
康大在搞的玩具需要arduino 幫忙~
所以就從底下連結,取出之前的程式:
https://bbs.pigoo.com/thread-67627-1-1.html
功能新增加為:
*程式需要加入第2隻I/O腳控制。
*程式控制為5秒-10秒。
*第1腳啟動後在結束前2秒時啟動第2隻腳。
*第2腳啟動4秒後關閉
- #include<arduino.h>
- #include "PT6961.h"
- #include "Pushbutton.h"
- #define OUTPUT_CONTROL 13
- #define OUTPUT_CONTROL_2 12 // 第2組控制腳
- #define BUTTON 7
- #define KEY_UP 6
- #define KEY_DOWN 5
- #define PT6961_CS 10
- #define PT6961_CLK 9
- #define PT6961_DIN 8
- #define START_TIME 5000 // 最短為5秒開始調整
- Pushbutton button_enter(BUTTON);
- Pushbutton button_up(KEY_UP);
- Pushbutton button_down(KEY_DOWN);
- //PT6961 LED(PT6961_CS, PT6961_CLK, PT6961_DIN);
- PT6961 LED(PT6961_DIN, PT6961_CLK, PT6961_CS);
- uint16_t hold_time = START_TIME; // start from 500ms
- void setup()
- {
- pinMode(OUTPUT_CONTROL,OUTPUT);
- pinMode(OUTPUT_CONTROL_2,OUTPUT); // 第2組 I/O 腳設成輸出
- LED.initDisplay();
- }
- void loop()
- {
- while(1)
- {
- LED.sendNum(hold_time,0);
- while(!button_enter.isPressed()) // check key up/down if no enter key pressed.
- {
- // process key up pressed
- while(button_up.isPressed() && hold_time < 10000) // 上鍵更新時間,如果時間沒超過10秒
- {
- hold_time+=10;
- LED.sendNum(hold_time,0);
- delay(150); // simple debonce
- if(!button_up.isPressed()) break;
- }
- // process key down pressed
- while(button_down.isPressed() && hold_time > START_TIME) // 下鍵更新時間,如果時間沒有小於5秒
- {
- hold_time-=10;
- LED.sendNum(hold_time,0);
- delay(150);
- if(!button_down.isPressed()) break;
- }
- }
- // trun on
- digitalWrite(OUTPUT_CONTROL,HIGH);
- delay(hold_time - 2000); // 第1組啟動結束2秒前需啟動第2組I/O腳,所以delay先扣2秒
- digitalWrite(OUTPUT_CONTROL_2,HIGH); // 啟動第2組 I/O 腳並 delay 4 秒
- delay(2000);
- digitalWrite(OUTPUT_CONTROL,LOW);
- delay(2000);
- digitalWrite(OUTPUT_CONTROL_2,LOW);
- button_enter.waitForRelease();
- }
- }
複製代碼
uno_2_pins_demo.zip
(5.64 KB, 下載次數: 5)
|
評分
-
9
查看全部評分
-
|