跳到主要內容

Arduino 切換開關點亮 LED - 處理 Bounce 問題


原來機械式開關還存在所謂的「彈跳 (Bounce)」問題

解決方式:

1. 延遲時間 (輪詢式)
2. 使用程式庫 Bounce2 
     官方出了新版的 library Bounce2
     參考官方文件作法,調整為

#include <Bounce2.h>

#define SERIAL_BAUDRATE 19200
#define LED_PIN 11
#define SWITCH_PIN 7

Bounce bouncer = Bounce();
boolean led_status;

void setup() {
  Serial.begin(SERIAL_BAUDRATE);
  pinMode(LED_PIN, OUTPUT);
  pinMode(SWITCH_PIN, INPUT);

  // After setting up the button, setup the object
  bouncer.attach(SWITCH_PIN);
  bouncer.interval(5);
  
  led_status = LOW;
  digitalWrite(LED_PIN, led_status);
}

void loop() {
  
  if(bouncer.update() == true && bouncer.read() == HIGH){
    led_status = !led_status;
    digitalWrite(LED_PIN, led_status);
  }
}

3. 延遲時間 (硬體中斷)



參考資料:
1. Arduino 輕鬆入門-範例分析與實作設計  葉難 著  博碩  2015.07 初版3刷

!!! 支持台灣本土作者、支持 TAAZE 讀冊生活 !!!

留言

這個網誌中的熱門文章

Goose - a database migration tool for Go 資料庫遷移工具

Goose Go 語言下,好用的資料庫遷移工具。特別是跟同事協同開發時,做好資料庫版本管理的好幫手。除了用 SQL 外,你也可以自己產生對映的 Go 程式。 Goose is a database migration tool. Manage your database schema by creating incremental SQL changes or Go functions. github repo. (程式庫連結) https://github.com/pressly/goose Install (安裝) $ go get -u github.com/pressly/goose/cmd/goose Usage (語法) kz@KZ ~/Blogger/bloggerfiles (master) $ goose Usage: goose [OPTIONS] DRIVER DBSTRING COMMAND Drivers: postgres mysql sqlite3 redshift Examples: goose sqlite3 ./foo.db status goose sqlite3 ./foo.db create init sql goose sqlite3 ./foo.db create add_some_column sql goose sqlite3 ./foo.db create fetch_user_data go goose sqlite3 ./foo.db up goose postgres "user=postgres dbname=postgres sslmode=disable" status goose mysql "user:password@/dbname" status goose redshift "postgres://user:password@qwerty.us-east-1.redshift.amazonaws.com:5439/db" status Options: -dir string dire...

Google - Cloud SQL for PostgreSQL adds high availability and replication (Google 雲端 PostgreSQL 資料庫新增了 HA & Replicas )

就在本月, 等了好一陣子的 Cloud SQL  for PostgreSQL 終於加上了 High availability & Replicas 機制; 雖然目前還是 beta 版,不過已經讓人開心,想叫老闆跟同事,趕快使用看看。 相關文件 https://cloudplatform.googleblog.com/2017/11/Cloud-SQL-for-PostgreSQL-adds-high-availability-and-replication.html 另外,也今年夏季也加入了 19 項 PostgreSQL extensions 相關文件 https://cloudplatform.googleblog.com/2017/08/Cloud-SQL-for-PostgreSQL-updated-with-new-extensions.html

Linebot 試作

年初在網路上看到 evenlin 大大的 linebot 專案,也跟著仿作一個 參考文章 http://www.evanlin.com/create-your-line-bot-golang/ linebot 名稱:誠實小木偶 Source code@github https://github.com/lin11230/LineBotTemplate.git 實際畫面