迷走の果て・Tiny Objects

迷走する日々の覚え書きです。自分で分かってることは省略してますので、念のため。

PSoCで電圧・電流計(2)

だいぶ前に作ったままで放置していた電圧・電流計をケース(?)に収めてみました。
電流電圧計1

ケースというのは名ばかりで百均で売っていたアクリル製のカードスタンドを使いました。
曲げてある部分を電気ストーブで暖め、ゆっくりと広げていきました。かなり熱い思いをしましたが^^;;
うまいぐあいに角度が付いて机の上に置くと見やすいです。
電流電圧計2

ISSP用の穴もあけました。これを機にソースコードの見直しを行いました。
電流電圧計4

恥ずかしながらの裏面、見にくいのですが電流検出抵抗はデジットで買った0.1オームチップ抵抗です。
電流電圧計3

ちょっとした小物にはちょうどいいです、安いし。
問題は密閉できないのでそのうち埃だらけになることです。

ここのところArduinoばかりでしたので久しぶりのPSoCを楽しみました。
使い慣れた環境はいい、たとえArduinoみたいな豊富なライブラリーがなくても。(と強がり)
スポンサーサイト

デジットの7セグメントLCDをArduinoで動かす

だいぶ前にデジットで買った200円也の7セグメントLCDをArduinoで動かしてみました。
共立エレショップでも売ってます。
こちらのサイトのソースを何とかArduinoに移植したら、何とか動くようになりました。
ソースコードをちゃんと理解してないのですが(汗)

続きを読む »

オシロで謹賀新年(3)drawToを書き直す

1月も半ばだというのに、いまだに正月ネタかと言われそうですが^^;;
前の実験では描画速度が30.9mSでしたが、drawToルーチンを書き直すことによって高速化できました。
ラジオペンチさんのdrawToルーチンは巧妙かつシンプルなのですが、計算量が多くなります。
そこで泥臭く条件分けして計算量を減らしました。私の苦手なif-elseの入れ子状態(^^;;)なので頭が混乱してしまいます。
結果、描画速度は17.5mSになりました。これなら画面のちらつきはありません。
オシロで正月drawTo書き直し
数字の”1”の字体をちょっと変えてます。

74HC595を手に入れたのでR-2Rラダーで8BitDACを作ってもうちょっと高速化を試してみます。

続きを読む »

24ビットADコンバータモジュールを試す(2)

Bチャンネルで実験をすることにし、部品を追加しました。
AVDDを分圧し、その中点電圧を入力のグランドとし、BチャンネルのINNBに。入力電圧を分圧してINPBにつないでおきます。
HX711ボードtest2

まずはオフセットの測定。
気休めですがノイズの影響を減らすため、金属のケース(お菓子の入れ物)に押し込み、回路の最低電圧をケースと接続しておきます。
白いミノムシクリップがそれです、こういうときは黒でしょう・・・そうなんですが、手持ちにこれしかなかったんです^^;;

HX711実験写真

入力は無接続、ソフトによる平均化はせず、ADコンバータの値をシリアル接続でTera Termで読み込み、エクセルでグラフ化しました。データ数は約6000個です。
HX711オフセットグラフ
グラフの黄線はエクセルによる100回の移動平均です。
入力には無接続なのでADコンバータの出力はゼロになるはずですが、実際はオフセットがあります。
-5180ほどですが、24bitADコンバータなのでフルスケール2^24=16777216に対して0.03%程度となります。
それよりも変換値のばたつきが大きいので何らかの平均化が必要です。
ソフトである程度平均化しておいてから下位数ビットを切り捨てる方向で考えてます。

24ビットADコンバータモジュールを試す(1)


数ヶ月前にアマゾンで買った24ビットADコンバータモジュールです。
当初、これを見つけたときに商品説明を読んでもよくわからなかったのですが、商品の写真からHX711というICが使われているのがわかり、データシートを入手して検討したところ、使えそうだと判断して購入しました。
私の場合、注文から商品到着まで数週間を要しました。
それにしてももうちょっとわかりやすい説明文がほしいものです、アマゾンさん。

モジュールの回路図です。
データシートのFig.4 Reference PCB board schematicを参考にして、目視と導通テスターで調べました。
ただし、これに間違いがないとは保証できませんので、念のため。
HX711ボード
データシートに
designed for weigh scales and industrial control applications to interface directly with a bridge sensor.
とあるように、電子秤などに使うのが目的のようですが、高感度の電圧計として使えないかと目論見ました。
当初、PSoCにつないであれこれ実験していたのですが、他に面白そうなデバイスを見つけたので、興味がそちらに行ってしまい、しばらく放置したままでした。
今まで何度もこういうことを繰り返しています、こうやって部屋の中はろくに使わないパーツで埋まってくのです^^;;

それはさておき、「びんぼうでいいの」を使い出したので、Arduinoの勉強を兼ねて「びんぼうでいいの」につないでみました。

まずはHX711について。
AチャンネルとBチャンネルの二つの入力があります。
Aチャンネルはゲインが128倍と64倍に切り替えが出来ます。
Bチャンネルはゲイン32倍固定です。
この切り替え方法がユニークです。
シリアル接続のADコンバータなのでクロックを送ってデータを1ビットずつ読み出します、24bitADコンバータなので24クロック送りますが、チャンネル/ゲイン切り替えに追加クロックを送るのです。
1クロック追加でAチャンネル、ゲイン128倍
2クロック追加でBチャンネル、ゲイン32倍
3クロック追加でAチャンネル、ゲイン64倍
となり、以後のAD変換がこの設定で行われます。
トータルで25~27クロック送ることになります。この範囲外だとデータシートによれば変換がおかしくなるようです。

続きを読む »

オシロで謹賀新年(2)シリアル接続DAコンバータを試す(2)

ArduinoとMCP4811の接続回路です。デュアルタイプのMCP4822なら簡単になります。
デジットでも扱っているようです。
秋月ならMCP4922が使えるでしょう、ただしレファレンス電圧は外付けになりますが。
DualChannelDAC.png
オシロへの出力をanalogWrite()からシリアル接続DACに変えての周期は約125mSですが、DACの制御をDigitalWrite()から直接ポート制御に変えても10mS程度しか短くなりません。
そこでスケッチを見直すとメインループ内でdelay()が多用されています。
arudinoのanalogWrite()はPWMなのでフィルタが必要で、出力の変化には応答時間を要します。
そのためのdelay()ですが、シリアルDAコンバータなら不要なので、スケッチ内の全delay()およびdelayMicroseconds()をコメントアウトしました。
その結果周期は30.9mSになりました。


左上に写っているのはヤフオクで落札したロジックアナライザです、今回の測定に活躍してくれました。

続きを読む »

aitendoでお買い物

年末に振込んだのですが、やっと今日来ました。
びんぼうでいいの [U3R]と抵抗パック。
aitendo買い物


ICソケットとUSBコネクタは手持ちを使いました。
これに以前買ったスイッチサイエンスさんのArduinoブートローダ書き込み済みATMega328をのせたらあっさり動きました。
びんぼうでいいのLチカ
ただいまLチカ中。

オシロで謹賀新年(2)シリアル接続DAコンバータを試す

パーツボックスからSPI接続10bitDAコンバータMCP4811が出てきたので、さきのオシロで謹賀新年にこれを使ってみました。
1チャンネルのDAコンバータなので2個使ってます。

オシロで正月シリアルDAC実験
arduinoでのSPI接続は初めてですが、PSoCでやったことがあったのでさほど苦労なく動かすことが出来ました。

オシロで正月シリアルDAC
ブランキングするのをまたしても忘れました(汗)。フィルタを入れてないのでドットが目立ちます。
それより描画が前と比べてさほど早くないのです。どれぐらいかまだ測ってませんが。
1点に付きポートの上げ下げにdigitalWrite()を6回使ってますが、digitalWrite()はどうも遅いらしいです。
ポートを直接いじる方法があるようで、調べてやってみます。

プラグインを変更した。

公式プラグインのユーザータグから共有プラグインのタグリストに変更した。
これですっきりした。

オシロで謹賀新年

ラジオペンチさんのブログでオシロの画面から謹賀新年という面白い記事があったので早速試してみた。
Arduinoを使ってオシロスコープにベクトル文字を描くというもの。

オシロで賀正1
ブランキングをしていないとこうなる。
私のオシロのZ軸は背面にあり、引っ張り出すのがめんどうだから。

オシロで賀正2
何とか引っ張り出し、ブランキング信号をつないだ。
文字がラジオペンチさんのと比べて太いが、これはフィルタのカットオフの違いである。
ラジオペンチさんが使ったCRは10KΩと0.1μFだが、わたしは手近にあった2KΩと0.22μFを使った。

オシロで賀正実験
実験の様子、たったこれだけ。(黒いDIPは集積抵抗)
描画には0.2秒ほどかかるのだが、DAコンバータを外付けにすればもっと速くなるそうで、いずれやってみたい。

arduinoでサーミスタ温度計を試す(2)表示を右詰にする

先のスケッチでは温度表示が右詰にならない。
検索すると逆引きArduinoに答えが見つかった。
dtostrf()という関数を使えばいいようだ。
ついでに
tempSum+=
の計算式も変更。

スケッチをのせておく。

// サーミスタ103JTを使った温度計
// 近似式の違いを見るためのテスト
// 2015/01/01 edy
// 2015/01/02 dtostrfを使って表示を右詰めにした。
// http://garretlab.web.fc2.com/arduino/reverse_lookup/index.html

#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
 
void setup() {
  lcd.begin(16, 2);
  lcd.print("Start");
  delay(1000);
}

void loop() {
  char s[16];
  int average=1000;
  float divRatio , tempSum , tempSum2 ;
 
  tempSum= 0 ;
  tempSum2= 0 ;
 
  for(int n=0; n < average; n++){
    divRatio=analogRead(A2) / 1023.0 ;
    tempSum+=((174.63 * divRatio - 224.97) * divRatio + 199.61) * divRatio - 40.425 ;
    tempSum2+= 107.62 * divRatio - 28.578;
  }
  tempSum/=average ;
  tempSum2/=average ;
 
  dtostrf(tempSum, 6, 1, s);
  lcd.setCursor(0, 0) ;
  lcd.print(s) ;
  lcd.print("c") ;
 
  dtostrf(tempSum2, 6, 1, s);
  lcd.setCursor(0, 1) ;
  lcd.print(s) ;
  lcd.print("c") ;
 }


arduinoでサーミスタ温度計を試す

ACS712電流センサーをいじっていたのだが、ちょっと脱線する。まぁ、いつものことだが。
温度補償用のサーミスタ103JT。これに10Kオームの抵抗を直列にしてVccを分圧し、ADCで測って温度を求めている。
サーミスタ温度計

最初は簡単な近似曲線(というか直線)で近似していたのだが、両端で誤差が大きくなる。
サーミスタ103JT直線近似

ならば近似式の次数を上げたらどうなるか、やってみた。
サーミスタ103JT曲線近似
3次式にするとほぼどんぴしゃ。
計算上はプラスマイナス0.05℃以内に収まっている、あくまで計算上だが。

そこでこの二つの計算式をもとに温度表示させてみた。
サーミスタ温度計全体
上が三次式による表示、下が直線近似による表示。
たいした違いは出ていないが、熱した半田ごてをサーミスタに近づけてやると、50度ぐらいで数度の差が出た。
まぁそういう計算式なのだから当たり前なんだが。

このサーミスタ、熱時定数が小さいので指で触っただけでめまぐるしく温度が変化する。

続きを読む »

 | HOME | 

文字サイズの変更

プロフィール

edy

最新記事一覧(サムネイル画像付き)

DABP(Dual Amplifer Band Pass)フィルタとGIC(Generated Immitance Converter)の解析 Aug 22, 2017
百均のUSB LED電球(2) Aug 13, 2017
百均のUSB LED電球 Aug 11, 2017
状態変数型バンドパスフィルタ(2) Aug 05, 2017
状態変数型バンドパスフィルタの解析、発振回路に応用するため。 Jul 30, 2017
CJMCU Beetleを試す Jul 29, 2017
Arduino 互換ボード SS MICROを試す Jul 22, 2017
店の電飾(3)無限鏡(infinity mirror) Jun 25, 2017
店の電飾(2)回路の変更とスケッチ Jun 25, 2017
店の電飾 Jun 18, 2017

全記事表示リンク

全ての記事を表示する

ブログリンク

リンク

このブログをリンクに追加する

月別アーカイブ

08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  12  11  10  09  07  05  04  03  04  03  01  12  11  10  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  02  01  12  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  10  09  08  07  06  05  04  03  02  01 

カテゴリ

プログラミング (0)
freescale (1)
AVR (3)
テルミン (16)
緊急警報放送 (3)
78K (1)
PSoC (295)
地上デジタル放送 (2)
電子工作 (410)
HX711 (2)
ACS712 (6)
数学 (6)
パソコン (12)
PLC (14)
未分類 (39)
ブログ関係 (20)
スカイプ (37)
ロボット (1)
LTSpice (8)
OCXO (0)
arduino (32)
maxima (1)
フランクリン発振回路 (3)
GPS (3)
DTMF (1)
Linux (1)
KOMAINO (7)

タグリスト

最近のコメント

最近のトラックバック

メールフォーム

名前:
メール:
件名:
本文:

検索フォーム

アクセス

RSSリンクの表示

フリーエリア

FC2Ad

まとめ

Template by たけやん