「arduino按鈕次數」的推薦目錄:
- 關於arduino按鈕次數 在 コバにゃんチャンネル Youtube 的最讚貼文
- 關於arduino按鈕次數 在 大象中醫 Youtube 的精選貼文
- 關於arduino按鈕次數 在 大象中醫 Youtube 的最佳貼文
- 關於arduino按鈕次數 在 Re: [問題] 基礎問題:Arduino按鈕沒被按下的時間計- 看板ASM 的評價
- 關於arduino按鈕次數 在 請問有人有用arduino做過按鈕計數器嗎 - Facebook 的評價
- 關於arduino按鈕次數 在 youtube訂閱人數計數器 的評價
- 關於arduino按鈕次數 在 查詢網址在Facebook 被按讚、留言與分享的次數統計 - GT Wang 的評價
- 關於arduino按鈕次數 在 youtube訂閱人數計數器 的評價
arduino按鈕次數 在 大象中醫 Youtube 的精選貼文
arduino按鈕次數 在 大象中醫 Youtube 的最佳貼文
arduino按鈕次數 在 請問有人有用arduino做過按鈕計數器嗎 - Facebook 的推薦與評價
我用的是內建pullup的digital pin 和按鈕接GND 去偵測按鈕從沒按到按下的那個動作(程式 ... 次數+= 1. delay(50). } } else. {. state = false // 把狀態變成沒被按下. ... <看更多>
arduino按鈕次數 在 youtube訂閱人數計數器 的推薦與評價
Address: No.07.2020 · 關於VU計數器的瀏覽次數、在線人數和珍貴的絲絨官網當時的 ... 17 07 2014 · Pic from: SeonBieber 相信有使用Feedburner 訂閱按鈕的站長可能會 ... ... <看更多>
arduino按鈕次數 在 Re: [問題] 基礎問題:Arduino按鈕沒被按下的時間計- 看板ASM 的推薦與評價
※ 引述《p790807 (卡丘)》之銘言:
: 如題,事實上我想要做到和processing串連,類似按下按鈕會呈現某種畫面的效果。
: 而一開始Processing會有初始畫面
: 我有兩個按鈕A和B。
: 當A被按下"一次"時,會傳送Serial.write(1),
: 而processing收到訊號1後,會"一直"停留在畫面a;
: 同理,當B被按下一次時,會傳送Serial.write(2),
: processing收到訊號2後,才會從原本的畫面a改呈現並停留在畫面b,
: 而今天我想要做的是,當A和B按鈕都有一段時間沒有被按下時,
: processing會再回到初始畫面。
不好意思野人獻曝一下XD
我的想法上是 如果A、B都沒有按下,就讓arduino delay 1ms
用個變數計算delay的次數,也就是幾個ms
當這個次數大於你要的"一段時間"
就執行Serial.write(3); //或是其他的數值代表AB一段時間沒被按下
而另外要注意一點,這個變數在A按下 || B按下時要記得重置歸零
影像處理的部分照原本的寫法再加上處理接收3的部分,這邊就不贅述了
不知道這樣的想法有沒有其他沒注意到的問題?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.125.33.221
※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1492443455.A.E54.html
感謝樓上提醒
cheuegou大的意思應該是說當我的想法
當執行完Serial.write(3)之後
如果一段時間(假設1 min) 內沒有再按下A 或 B
則會造成初始畫面會再顯示一次
如果初始畫面是一張圖,我們應該看不出來(螢幕就是重新顯示同一張圖而已)
如果初始畫面是影片的話,可能會產生影片播到一半又重頭開始播放的問題
要解決這個方法可能就使用一個狀態變數(旗標)的方式
透過此變數來標示目前是否處於顯示初始畫面的情況
#define MAX_IDLE_TIME 60000; //1 min
int buttonPinA =1;
int buttonPinB =2;
int idle_counter = 0;
int is_showing_init_img = 0; //=1: is showing init img ; =0: is not
void setup(){
pinMode(buttonPinA, INPUT);
pinMode(buttonPinB, INPUT);
Serial.begin(9600);
}
void loop(){
if (digitalRead(buttonPinA)==HIGH && digitalRead(buttonPinB)==LOW){
Serial.write(1);
idle_conter=0;
is_showing_init_img=0;
delay(100);
}
else if(digitalRead(buttonPinB)==HIGH && digitalRead(buttonPinA==LOW){
Serial.write(2);
idle_conter=0;
is_showing_init_img=0;
delay(100);
}
else{
delay(1); //delay 1ms
idle_counter++;
}
if ((0==is_show_init_img) && (idle_counter > MAX_IDLE_TIME)){
Serial.write(3);
idle_counter=0;
is_showing_init_img=1;
}
}
※ 編輯: oscar60111 (140.125.33.221), 04/18/2017 18:23:50
... <看更多>