3.1 とりあえず使ってみる(DigitalIO)
Digital IOを使用する勉強をしてみましょう
mbedの不明な点が多い Digital IOはシュミットトリガなのか? Pullup抵抗は? などなど。。。
で、やっとhttp://ics.nxp.com/products/lpc1000/datasheet/lpc1763.lpc1764.lpc1765.lpc1766.lpc1767.lpc1768.lpc1769.pdfの45ページに下記のような一覧があった。
これによると、ONになるのが0.7xVddでOFFになるのが0.3xVddなのでシュミットトリガで
PullUPカレント(5V時で50μA)から プルアップ抵抗は100kΩと予測される。
これで、普通のタクトスイッチを使用したら、どれくらいチャタリングが起こるのだろうか、調べてみる。
プルアップモードにして接続すると回路が楽になる。なお1kΩの抵抗は設定を間違った時のためのものです
回路は、
(実際には☆Board Orageにmbedが付いているのでこんな感じ)
回路図は
プログラムはこちらからImportできます。http://mbed.org/users/yueee_yt/programs/chatte_test/lr0qh4
#include "mbed.h" #include "TextLCD.h" DigitalOut led(LED1); DigitalIn sw(p20); TextLCD lcd(p24, p26, p27, p28, p29, p30); Ticker timer; int i=0; void tick(void) { lcd.cls(); lcd.printf(" %d ",i); if(sw.read()==0)led=1; else led=0; } int main() { int ssw=1; sw.mode(PullUp); timer.attach(&tick, 0.1); while(1) { if(sw.read()==1){ if(ssw==0){ ssw=1; } }else{ if(ssw==1){ i++; ssw=0; } } } }
結果は、多少チャタがあるみたいで、業務用としては厳しいみたいです。
誤接続用の抵抗と0.1μFのコンデンサで積分回路(時定数0.1ms)にする。
まともになりました。
ps.回路図はFritzingを用いて書いています。便利です。http://fritzing.org/
Please log in to post comments.