Arduino學習.按鍵計數器
並顯示在監控螢幕上,準備硬體安裝↓
開關*1
10K或1k電阻*1
接線
外掛ArduBlock找出拼圖↓
上傳後打開監控畫面,並壓下按鍵,正常情形下,在未通路前GND訊號經過電阻到P2,當按鍵被壓下,高電位被傳送到P2腳位時,則變數count+1,並顯示在監控畫面上,此時應會發現,當按鍵一直被壓著,就會一直計算,因此需另多加判斷式,來判斷P2是否放手回復,才算一次↓
設定變數BTS和BTL是按下和放手,二種不同狀態,來判斷P2腳位是否有高位和低位的變化,當有變化時才計一次,沒變化時就不計次,此程式可運用在如光電感應器.近接開關或計算馬達轉速等等計數使用
bool _ABVAR_1_BTS= false ;
bool _ABVAR_2_BTL= false ;
int _ABVAR_3_count = 0 ;
void setup()
{
pinMode( 2 , INPUT);
pinMode( 13 , OUTPUT);
Serial.begin(9600);
}
void loop()
{
_ABVAR_1_BTS = digitalRead(2) ;
if (( ( _ABVAR_1_BTS ) != ( _ABVAR_2_BTL ) ))
{
if (( ( _ABVAR_1_BTS ) == ( HIGH ) ))
{
digitalWrite( 13 , HIGH );
_ABVAR_3_count = ( _ABVAR_3_count + 1 ) ;
Serial.print(_ABVAR_3_count);
Serial.println();
}
}
_ABVAR_2_BTL = _ABVAR_1_BTS ;
digitalWrite( 13 , LOW );
delay( 50 );
}
求知若渴,虛心若愚
用相同方式接線後,發現count數是隨機成長的,甚至在移除pin2的杜邦線以後也是一樣狀況,請問有遇過這種狀況嗎?
回覆刪除隨機成長??第一個程式是沒有加判斷式,不論有沒有放手都會一直加數,第二程式加了判斷有沒有放手,才加1,,移除pin2的杜邦線也一樣,那就是訊號沒接到GND,
刪除是,後來發現是杜邦線品質不良,直接變成Floating電位
刪除您好,我在使用相同方法接線後,count數會隨機成長與歸零,換了Arduino板子也一樣,請問版大有遇過類似狀況嗎?
回覆刪除隨機歸零??程式裡並沒有歸零,若會自動歸零應該是電力供應不足不穩定,造成電力斷電後歸零,,,裝過電腦桌機就會知道,前置面板要另外很細的排線接到主機板,電力一般較弱且不穩定,,建議接在主機板上的USB接口,而非前置面板孔,
刪除