|
發表於 2017-12-21 03:25:36
|
顯示全部樓層
本文章最後由 jojoling 於 2017-12-21 03:27 AM 編輯
再修改一版:
* 3顆按鍵
* 加上一個特殊的 7 segment LED (想要請找 fatzeros,我這3顆是他給的),此顆 LED 內包 PT6961 SPI 介面,控制信號3條線。
* 使用 2個網路上寫好的" arduino庫" (我已直接放在裏面,不用管,直接會編譯)
PT6961
http://gtbtech.com/?attachment_id=864
push button library
https://github.com/pololu/pushbutton-arduino
使用方式:
按 up /down 可以上下調整數值,每次加減 10ms,按住會 repeat 所按的鍵。
按 enter 就會執行所選定的時間長度。
100ms_demo_with_7seg.zip
(5.6 KB, 下載次數: 10)
- #include<arduino.h>
- #include "PT6961.h"
- #include "Pushbutton.h"
- #define OUTPUT_CONTROL 0
- #define BUTTON 7
- #define KEY_UP 6
- #define KEY_DOWN 5
- #define PT6961_CS 10
- #define PT6961_CLK 9
- #define PT6961_DIN 8
- #define DELAY_TIME 100 // 100ms
- Pushbutton button_enter(BUTTON);
- Pushbutton button_up(KEY_UP);
- Pushbutton button_down(KEY_DOWN);
- PT6961 LED(PT6961_CS, PT6961_CLK, PT6961_DIN);
- uint16_t hold_time = DELAY_TIME;
- void setup()
- {
- pinMode(OUTPUT_CONTROL,OUTPUT);
- 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 < 9990)
- {
- 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 > 10)
- {
- hold_time-=10;
- LED.sendNum(hold_time,0);
- delay(150);
- if(!button_down.isPressed()) break;
- }
- }
- // trun on
- digitalWrite(OUTPUT_CONTROL,HIGH);
- delay(hold_time);
- digitalWrite(OUTPUT_CONTROL,LOW);
-
- button_enter.waitForRelease();
- }
- }
複製代碼 |
評分
-
6
查看全部評分
-
|