hiro yamamoto works

ESP8266 Web logger
RaspberryPi HiRes Audio
Mini Solar power system
当ブログ掲載内容は無保証です。利用は自己責任でお願いいたします。

 

カレンダー

2020
May
Sun Mon Tue Wed Thu Fri Sat
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

QRコード

検索



このブログを検索

カウンター

本日のアクセス
昨日のアクセス
総アクセス数

ブログサービス

Powered by

teacup.ブログ
RSS

パルスを数えるために学習中

パルスの数を正確に数えたいので
外部割り込みattachInterrupt()の使い方を学習しています。

自分なりに理解してコメントを入れたスケッチも紹介します。

入力を10KΩでプルアップしてあり、プッシュスイッチを
押すとGNDにつながりLOWになります。
LOWで外部割り込みしカウンタを加算します。
クリックすると元のサイズで表示します

カウンタ数値をシリアルでESPr Developperへ送っています。
クリックすると元のサイズで表示します
今更ですが、通常の割り込みと、外部割り込みは
ちがうことがわかりました。
外部割り込に使えるデジタルI/Oはマイコンボードによって
違いがあります。Arduino UNOは2と3です。


2020.06.03
Seeeduino XIAOを使って、パルスカウンタをやって
みました。
ArduinoでBlinkスケッチで作ったパルス(HIGH-LOW
繰り返し信号)を入力しています。
クリックすると元のサイズで表示します
外部割り込みなので、パルスの取りこぼしがないはずです。

スケッチです。
long pulseCount = 0;//long型の最大値2147483647
long count = 0;

void setup(){
SerialUSB.begin(9600);//SerialUSB
mySerial.begin(9600); //SoftwareSerial Tx57600max,Rx19200max通信速度に制約あり
pinMode(1,INPUT_PULLUP);//デジタルピン1を入力にしてプルアップを有効に

attachInterrupt(1, onPulse, FALLING);//外部割り込み
//構文 attachInterrupt(pin, ISR, mode)
//pin ピン番号 割り込みに使えるピンはボードによって違います。
//ISR 割り込み発生時に呼び出すISR ここではonPulseという名前にしてる。
//mode 割り込みをトリガーするタイミングを定義します。
//LOW:ピンがLOWのとき発生 CHANGE:状態が変化したとき発生
//RISING:ピンがLOWからHIGHに変わった時
//FALLING:ピンがHIGHからLOWに変わった時
}

void loop(){
}

// ISR 割り込みが発生したときにonPulse()が実行される。
void onPulse(){
pulseCount++; //pulseCounter
count = pulseCount;
 //countに代入せずにpulseCountを使っても問題ないと思う
mySerial.println(count , DEC);//countをSoftwareSerialへ出力
}
0
投稿者:管理人

ESP-WROOM-02のデジタルI/Oを増やす。

ESP-WROOM-02(ESP8266)の少ないI/Oを増やすため、
I2Cバス用I/OエキスパンダMCP23017をテストしています。

ブレッドボードでのテスト風景、ユニバーサル基板で製作した
I/Oエキスパンダボード部品レイアウトと完成品写真
MCP23017ライブラリのインストールを紹介します。

外付けする部品数は、コンデンサ3個、抵抗3本(I2Cプルアッ
プ抵抗が必要な場合)とわずかです。
スケッチも、本体I/Oと類似した感じで書くことができて、
難しくないと感じました。
これで16個のデジタル入出力を増やすことができます。
 動作電源電圧 1.8〜5.5V
 SPI用のMCP23S17もあります。

16-Bit I/O Expander with Serial Interface(I2C)
クリックすると元のサイズで表示します

クリックすると元のサイズで表示します


2020.05.28

私はコスト面からDIP ICタイプ、抵抗、コンデンサを
ブレッドボードに挿してテストしましたが、手軽に試す
には、必要部品が付いたモジュールも販売されています。
switch science製
MCP23017 Raspberry Pi用GPIOエクスパンダ
コード番号 SSCI-016506 990 円
Raspberry Pi用となっていますがArduinoやESPでも
使うことができます。(私も1個買いました)
回路図も公開されていてありがたいです。

個別に組み立てた部品参考価格
MCP23017-E/SP I-09486 110円(秋月電子)
抵抗10KΩ 3本 3円
コンデンサ 0.1μF 2個 30円
コンデンサ 10μF 1個 30円
基板 P-03232 170円


2020.06.13

I/OエキスパンダとSeeeduino XIAOを載せたボードを
製作しました。
クリックすると元のサイズで表示します

クリックすると元のサイズで表示します


MCP23017ライブラリのインストール
Adafruitのライブラリを使用させてもらいます。

ライブラリマネージャでMCP23017と入力し
Adafruit MCP23017 Arduino Library 表示されたら、
インストールをクリックしてしばらく待ちます。
終わると、緑文字で「INSTALLED」と表示されて
います。
クリックすると元のサイズで表示します

ライブラリをインストールするとスケッチ例にサンプルも
追加されます。

クリックすると元のサイズで表示します
サンプルスケッチを開いて
コメントをgoogle翻訳してみましょう。
続く
0
投稿者:管理人
1 | 《前のページ | 次のページ》
/1 
 
AutoPage最新お知らせ