表示の改善 | おやじクリエイターがお小遣いで楽しむ工作室

おやじクリエイターがお小遣いで楽しむ工作室

趣味のことを中心に書きます。

 

 

 ご覧いただきありがとうございます。ニコニコ

 

 子供のころからものづくりレンチが好きな

 50代のおじさんです。

 

 「PICマイコン」を使った電子工作や、

 「Unity」というゲームエンジンを使った

遊びについて書いています。

 

ものづくりで悪戦苦闘している様子を

 キョロキョロ 見て行ってください。

 

 

 

 

 

いよいよ明日で

24年の折り返しです

半年で少しは成長したのだろうか

 

こぼれ種で芽を出した

ニチニチソウは

この1週間で2倍ぐらいに急成長チューリップ紫

 

半年前のブログを見ると

ブログの書き方は

成長してなさそうてへぺろ

 

 技術的な面でいうと

すぐに忘れてしまうのは

仕方ないとして

過去記事を読み返せば

先に進むのが早くなっているので

よしとしましょうグッ

 

 

 

  製作中の回路へ追加

 

前回お試し回路を組んで使えそうなことが判った表示器(OLED)ですが、これまでサーボモーターの動作確認を行っていたブレッドボードへ追加実装しました。

 

VKLSVAN 2個 0.96" iic i2c ホワイトOLEDモジュール128×64 OLED LCDディスプレイArduinoに対応

 

 

無計画に部品実装していたので空いてるスペースがあまり残っていなくて苦労しました。

思いつきでいろいろ機能追加するのも趣味でやってる醍醐味ですもんね。

ついでにジャンパ線を最短で配線できるU字タイプに置き換えました。少しスッキリ!気づき

 

 

 

 

  見やすさ改善

 

while (1)ループ内で

 表示器のクリア ⇒ 最新の値表示

のような処理をしていたのですが、チカチカして見づらかったのでif文で値が変わった時だけ上記の処理をするようにしたことで見やすくなりました。

 

 

 

 

  はまった点

 

今さらなんですが、基本を守らないことで「はまった」点が2点ほど。

 

1点目はPICへの書き込みしようとしてエラーが出てPICを認識しませんでした。

回路が簡単な段階ではなくても運よくPICを認識していたのですが、表示器(OLED)を追加してジャンパ線を張り替えるなどしたことで状態が変わったのでしょう。

プルアップ抵抗を追加してからは安定してPICへ書き込みできています。

 

 

 

2点目は押しボタンスイッチで設定値の増減ができるようにしていたのですが、ボタンを押していない時に勝手に増減することがあり、こちらもプルアップ抵抗(10kΩ)を入れることでボタンを押した時だけ反応するようになりました。

 

当初はボタンを押した時だけVccに接続する(Highになる)ようにしていただけで、プルアップやプルダウン抵抗は入れていなかったのでPICの入力ピンの電位がふらついていたのが原因と思われます。

 

 

 

 

プログラムでも1点はまり点が...

表示器に設定値として初期値「750」を表示したかったのですが、なぜか「7」しか表示されずかなり悩みました。

 

当初は 

 printf("%d",Duty);

のように書いていたのですが、これだと「7」しか表示されません。Dutyというのが設定値が入る変数でint型として指定していました。

 

printf()で文字列は問題なく表示できていたので、いきなりint型の変数を表示させようとするのがいけないのか?ということで一旦文字列に変換してからPrintfで表示するようにしたところ上の動画のようにうまくいきました。

 sprintf(str, "%d", Duty); ⇐ 文字列(str)に変換

   font12_posi(1, 70);
   printf(str);

 

 

 

設定値が表示可能となったので

現物(壁スイッチ)合わせで

サーボモーターの稼働範囲を

決められそうです

次の週末かな?

 

ではまた。