PCパーツジャンキーの日記
たまにエンコード、自作PC
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
mbedではライブラリをインポートして、そのライブラリの関数を利用することで自分でライブラリを作らずともデバイスを使うことができるという大きなメリットがあります。
今回使わせて頂いたライブラリは
AM2321 https://developer.mbed.org/users/tomozh/code/AM2321/
AQM0802A https://developer.mbed.org/users/tetsuya256/code/AQM0802A/
の2つです。
ソースコードは以下の通り。
#include "mbed.h"
#include "AQM0802A.h"
#include "AM2321.h"
AQM0802A lcd(dp5,dp27);
AM2321 am2321(dp5,dp27);
int main()
{
lcd.cls();
while(1){
if(am2321.poll()){
lcd.printf("%.1f C\n",am2321.getTemperature());
lcd.printf("%.1f %%\n",am2321.getHumidity());
}
wait(1);
}
}
コードではまずAM2321とAQM0802Aのライブラリを読み込み、LPC114FN28の5番ピンと27番ピンをI2Cに割り当てます。
その後lcd.cls()で液晶をクリアした後に1秒毎に温度と湿度を読み込んでいます。
am2321.poll()はAM2321から温湿度のデータを読み込んでくる関数です。
これをmain.cppに書き込み、あとはコンパイルしてbinファイルをダウンロードすれば準備完了!
あとはLPC1114にbinファイルを書き込んで完了です。
mbedはこんな感じで繋いでライブラリを読み込めばすぐに作れるというのが大きいですね。
今後もネタを思いついたら書いていこうと思います。
今回使わせて頂いたライブラリは
AM2321 https://developer.mbed.org/users/tomozh/code/AM2321/
AQM0802A https://developer.mbed.org/users/tetsuya256/code/AQM0802A/
の2つです。
ソースコードは以下の通り。
#include "mbed.h"
#include "AQM0802A.h"
#include "AM2321.h"
AQM0802A lcd(dp5,dp27);
AM2321 am2321(dp5,dp27);
int main()
{
lcd.cls();
while(1){
if(am2321.poll()){
lcd.printf("%.1f C\n",am2321.getTemperature());
lcd.printf("%.1f %%\n",am2321.getHumidity());
}
wait(1);
}
}
コードではまずAM2321とAQM0802Aのライブラリを読み込み、LPC114FN28の5番ピンと27番ピンをI2Cに割り当てます。
その後lcd.cls()で液晶をクリアした後に1秒毎に温度と湿度を読み込んでいます。
am2321.poll()はAM2321から温湿度のデータを読み込んでくる関数です。
これをmain.cppに書き込み、あとはコンパイルしてbinファイルをダウンロードすれば準備完了!
あとはLPC1114にbinファイルを書き込んで完了です。
mbedはこんな感じで繋いでライブラリを読み込めばすぐに作れるというのが大きいですね。
今後もネタを思いついたら書いていこうと思います。
PR
お次は配線です。
今回は使いデバイスが全てI2Cで接続されているので、I2Cの配線とVcc、GNDを接続すればOKです。
しかもプルアップが必要なラインはプルアップ抵抗が配線済みなので、こちらも気にしなくて大丈夫です。
I2Cの配線ですが、27番ピンをSCL(クロック)に、5番ピンをSDA(データ)につないで下さい。
I2Cはデイジーチェーンで配線できるので、下の写真のように液晶とセンサをそのまま繋げば配線完了です。
他のシリアル通信ボード、スイッチなどはこちらの記事を参照して下さい。
写真では24番ピンをGNDに接続していますが、これはプログラムを書き込むときだけで、書き込みが完了したらこのケーブルは外します。
では、次回はプログラムです。
今回は使いデバイスが全てI2Cで接続されているので、I2Cの配線とVcc、GNDを接続すればOKです。
しかもプルアップが必要なラインはプルアップ抵抗が配線済みなので、こちらも気にしなくて大丈夫です。
I2Cの配線ですが、27番ピンをSCL(クロック)に、5番ピンをSDA(データ)につないで下さい。
I2Cはデイジーチェーンで配線できるので、下の写真のように液晶とセンサをそのまま繋げば配線完了です。
他のシリアル通信ボード、スイッチなどはこちらの記事を参照して下さい。
写真では24番ピンをGNDに接続していますが、これはプログラムを書き込むときだけで、書き込みが完了したらこのケーブルは外します。
では、次回はプログラムです。
温湿度センサAM2321で取得したデータは、モノクロ液晶画面に表示することにします。
モノクロ液晶ディスプレイもいくつか種類がありますが、大雑把に分けるとグラフィック型とキャラクタ型があります。
グラフィック型は自由に絵や文字を表示することができますが、その一方で表示する内容を全て自分で作らなくてはなりません。
キャラクタ液晶は表示できる内容がある程度決まってしまっている一方、自分で表示内容までプログラムしなくていいという気楽さがあります。
今回は温度と湿度ということで数値と記号(℃と%)しか表示しないので、キャラクタ液晶を使います。
キャラクタ液晶も秋月で買えるAQM0802をチョイス(\600)。
この液晶は変換基板キットと液晶のみの販売がありますが、変換基板キットじゃないとブレッドボードで使えません。
こんな感じで、液晶そのもののピンピッチが全然ブレッドボードに合ってないんですね。
また、変換基板セットを買っておいたほうがいいい理由が他にもあります。
これは変換基板キットの裏面なんですが、「PU」と基板に書かれてる部分があります。
ここにハンダを盛ることで「プルアップ」という設定が有効になります。
「プルアップってなんじゃ?」と思っている人もいるでしょうけど、「I2Cを利用するときにはこの設定が必要」とだけ今は覚えておいてください。
次回はブレッドボードに実際に配線していきます。
モノクロ液晶ディスプレイもいくつか種類がありますが、大雑把に分けるとグラフィック型とキャラクタ型があります。
グラフィック型は自由に絵や文字を表示することができますが、その一方で表示する内容を全て自分で作らなくてはなりません。
キャラクタ液晶は表示できる内容がある程度決まってしまっている一方、自分で表示内容までプログラムしなくていいという気楽さがあります。
今回は温度と湿度ということで数値と記号(℃と%)しか表示しないので、キャラクタ液晶を使います。
キャラクタ液晶も秋月で買えるAQM0802をチョイス(\600)。
この液晶は変換基板キットと液晶のみの販売がありますが、変換基板キットじゃないとブレッドボードで使えません。
こんな感じで、液晶そのもののピンピッチが全然ブレッドボードに合ってないんですね。
また、変換基板セットを買っておいたほうがいいい理由が他にもあります。
これは変換基板キットの裏面なんですが、「PU」と基板に書かれてる部分があります。
ここにハンダを盛ることで「プルアップ」という設定が有効になります。
「プルアップってなんじゃ?」と思っている人もいるでしょうけど、「I2Cを利用するときにはこの設定が必要」とだけ今は覚えておいてください。
次回はブレッドボードに実際に配線していきます。
さて今回からmbedを利用しての回路を組んでいきます。
実際に基板を作成するのではなく、まずはブレッドボードで作っていきましょう。
ブレッドボードは秋葉原の電子部品ショップならどこでも置いてあり、\300~\500程度です。
で、何を作るかということですが、電子工作とはいえ「何か役に立つもの」を作ったほうが作ったあとも長く手元に置いておけますし、そういうアイテムにしたいと思います。
というわけで今回は温湿度計を作ってみましょう。
冬場はインフルエンザ対策で湿度も気になることですし、寒い今の時期にちょうどいいかなと。
センサはAM2321というセンサを使います。
これは秋月で売ってる温湿度センサで入手性が良いのがポイントです。\700くらいですね。
このセンサはI2Cという方式でデータを取得するので、配線も少なく簡単にできます。
(I2Cという方式は色々とクセがあるんですが、今回はその詳細については割愛します)
しかし1つ問題が。AM2321はピンの幅がブレッドボードに合ってないので、ちょっと加工が必要です。
自分はこんな感じにしました。
ユニバーサル基板(\100くらい)を小さくカットし、そこにヘッダピン(\50くらい)をはんだ付けします。これで準備OK!
では次回はもう1つのアイテム、液晶について解説します。
実際に基板を作成するのではなく、まずはブレッドボードで作っていきましょう。
ブレッドボードは秋葉原の電子部品ショップならどこでも置いてあり、\300~\500程度です。
で、何を作るかということですが、電子工作とはいえ「何か役に立つもの」を作ったほうが作ったあとも長く手元に置いておけますし、そういうアイテムにしたいと思います。
というわけで今回は温湿度計を作ってみましょう。
冬場はインフルエンザ対策で湿度も気になることですし、寒い今の時期にちょうどいいかなと。
センサはAM2321というセンサを使います。
これは秋月で売ってる温湿度センサで入手性が良いのがポイントです。\700くらいですね。
このセンサはI2Cという方式でデータを取得するので、配線も少なく簡単にできます。
(I2Cという方式は色々とクセがあるんですが、今回はその詳細については割愛します)
しかし1つ問題が。AM2321はピンの幅がブレッドボードに合ってないので、ちょっと加工が必要です。
自分はこんな感じにしました。
ユニバーサル基板(\100くらい)を小さくカットし、そこにヘッダピン(\50くらい)をはんだ付けします。これで準備OK!
では次回はもう1つのアイテム、液晶について解説します。
以前、簡単マイコンのmbedについてエントリを書きましたが、実は忙しかったこともあってなかなかいじれていませんでした。
最近になって色々とできるようになってきましたが、そのときにふと思ったことがあります。というのは、マイコンの記事ってたいてい「Lチカ」のはじめの一歩までで、その次のことを書いてるのってあんまりないんですよね。
というわけでこのブログではmbedの「次の二歩目」をちょっと書いていきたいと思います。
で、まずmbedですが、基本についてはこちらの記事を参照してみてください。
クラウド開発環境「mbed」の使い方とターゲットマイコンへの書き込み
自分もこのLPC1114FN28をベースにしてます。
※ただ、最近はLPC1114FN28に生産終了というウワサがあったりとちょっと怪しいので、実際にはLPC1114FDH28という表面実装のタイプを使っています。ソース自体はそのまま使えるので、表面実装を使うことに抵抗がないならこれもオススメですよ。
他に使うのはUSBシリアル変換機、ブレッドボード、ジャンプワイヤくらいですね。
こんな感じで、とりあえずLチカまではできてるという前提で進めていきたいと思います。
最近になって色々とできるようになってきましたが、そのときにふと思ったことがあります。というのは、マイコンの記事ってたいてい「Lチカ」のはじめの一歩までで、その次のことを書いてるのってあんまりないんですよね。
というわけでこのブログではmbedの「次の二歩目」をちょっと書いていきたいと思います。
で、まずmbedですが、基本についてはこちらの記事を参照してみてください。
クラウド開発環境「mbed」の使い方とターゲットマイコンへの書き込み
自分もこのLPC1114FN28をベースにしてます。
※ただ、最近はLPC1114FN28に生産終了というウワサがあったりとちょっと怪しいので、実際にはLPC1114FDH28という表面実装のタイプを使っています。ソース自体はそのまま使えるので、表面実装を使うことに抵抗がないならこれもオススメですよ。
他に使うのはUSBシリアル変換機、ブレッドボード、ジャンプワイヤくらいですね。
こんな感じで、とりあえずLチカまではできてるという前提で進めていきたいと思います。