投稿

ラベル(Arduino)が付いた投稿を表示しています

RTC DS1302が動かない:動作が変なとき

イメージ
 aitendoさんの福袋は毎回買ってるんですが、その中にDS1302キットがちょくちょく入ってまして、せっかくだからと組み立て使っているわけなんですが、 動作が変なんです。まず時刻が設定できない。設定してもカウントアップしないなど、動作が不安定で参ってました。 困ったときのデーターシートですが、これ以上簡単にできないというぐらい簡単で完全に手詰まり状態。どうすりゃいいのよ?と思ってたら、ふと「各ピンプルアップされてない...」ということに気づき、さっそく実験。 仮配線! 各ピン(CE, I/O, SCLK)に4.7kΩのプルアップを入れたところ、正常に動きましたとさ。普通なら当然pinModeでINPUT_PULLUPとするところですが、今回はDS1302ドライバに丸投げしてたので誰がプルアップするのかが曖昧になってましたという反省の弁。 ちなみにDS1302はINT信号はないわ誤差が大きいと言う評判だわで散々ですが、電波|GPS|NTP時計のバックアップにする予定ですので無問題だと思ってます。 以上です。

量子化レベルメーターの製作

イメージ
 相変わらずタイトルだけでは意味不明ですが。  このアイデアは今から約40年前、CDがまだ普及とは言えない頃のパイオニアのCDプレーヤーにあります。 そのCDプレーヤーには普通のバー式のサウンドメーターがついていたんですが、スイッチで切り替えると量子ビットをそのまま出すという機能がついてました。  まぁ44KHzでCDの全データーなんて流しても全ビット点灯するだけなので、ピークホールドか何かで適当にデーターを間引いて表示していたんでしょうけど。  それが何の意味があるかというと「何もありません」  ただただ見てて楽しい(※個人的な感想です)だけです。  そもそも素人が作るサウンドメーターなんて入力電圧に対しどうのこうのなんて必要は全くないので、LEDがなんかチカチカしてればいいのではないかという発想です。副作用として8個のLEDだと分解能8ビットが分解能256ビットに大幅にアップします。 8x8マトリクスLEDをMAX7219でドライブ、写真右から縦1列が5msごとにサンプリングした量子化ビットで、その値がホールドされて左に順次流れていく動作になっています。 つまり、 ←下辺  上辺→ ◯◯◯◯◯◯◯◯ = 入力レベル0x00  ●●●●●●●● = 入力レベル0xff とすればいいわけです。 スケッチのloopの一部   // A0, A1 (R-CH, L-CHの数値を読み取る)   float a00= analogRead ( A0 );   float a01= analogRead ( A1 );   // 量子化する。200は入力レベルにあわせただけで本来は1024   int i = a00/ 200 *0x ff ;   int j = a01/ 200 *0x ff ;   // LEDマトリクスの右から1列目と2列めの値をセット   dispbar [ 1 ]=i;   dispbar [ 2 ]=j;   // LEDマトリクスの左から描写していく。   for ( int k= 8 ;k>= 1 ;k--){     //maxTransferはMAX7912にデータを送る関数...

8LEDx2 74HC595 LEDの製作

イメージ
 Aitendoさんの福袋(23/5現在)、 意外なものからほぼゴミまでイロイロ入ってますが、 その中で2色LED(赤、青)x8発のキットが入ってましたので、 これがなんとかならんかと組み立て。 全部配線するのもかったるいので74HC595に全投げ。 毎度の回路は秋月さんのAE-7SEG丸パクリです。 https://akizukidenshi.com/download/ds/akizuki/AE-7SEG-BOARD_a2.pdf キットに入ってたのはここまで。 74HC595x2発追加しています。 配列の都合上595は中側に入ってます。 相変わらずイケてないはんだ付け図。 さてこれでテストスケッチ...といったところですが、ここででっかい落とし穴が。     digitalWrite (RCLK, LOW);     shiftOut (SER, SRCLK, MSBFIRST, [点灯するLED] );//赤LEDを点灯   shiftOut (SER, SRCLK, MSBFIRST, [点灯するLED] );//青LEDを点灯     digitalWrite (RCLK, HIGH); とすれば赤と青が同時に動くはずですが。 なんと赤と青の基底が違う(つまり赤が左から増えると青は右から増える) 基板に書いてあったシルク印刷を信じたばっかりに。 (R0-7とG0-7って書いてあったら0が左じゃないのかよw) ということで。     digitalWrite (RCLK, LOW);     shiftOut (SER, SRCLK, MSBFIRST, [点灯するLED] );//赤LEDを点灯   shiftOut (SER, SRCLK, LSBFIRST, [点灯するLED] );//青LEDを点灯     digitalWrite (RCLK, HIGH); とすることで青も赤も左から動くようになりました。 もう一つの問題が... 何に使おう... 以上です。
イメージ
 遠足は帰宅まで(2):温湿度計の製作 4桁LEDx2発+MAX7219で8桁LEDの製作の最中、 片方のLEDの1桁目のe位置が点灯しないことが発覚。 不良LEDは差し替えるとして、差し替えたのをゴミ箱に直行させるのは忍びなく、 急遽DHT-11を使った温湿度計にすることを思い立ち、 (温湿度なら3桁あればOKですから) NANO+DHT-11+不良LEDで温湿度計を製作。 温湿度計だけですから、ダイナミック点灯でいいので MAX7917は使用せず74HC595x2発で配線。 例によってダイソーで売ってる100円のケースに収めました。 うーんいい感じ。 ケースはかなり大きめなので中身はスカスカです。 なお、今回使用したパチモノNANOはUSB-C仕様で、Aruduino IDEからアップロード できない+シリアルモニターがつながらないといった困ったちゃんでした。 この問題は鋭意解決中です。 以上です。

RTCとBME180 RTC DS1307 が動作しない件

 Arduinoでまず作るのは、 時計、温度湿度気圧計あたりだと思います。 時計といえばRTC(DS1307)、気圧計は一番安いBME180を選択することが多いと思いますが、 この2つは相性が非常に悪く、最悪RTCがまともに動作しない、変な値に飛んでしまう などの症状が出てきて頭抱えてました。 こういうときのググる先生ですが、この組み合わせは1、2件ぐらいで、 しかもわけがわからん事が書いてあって勝手に解決してるって参考にもなりゃしねぇ。 ってことでメモ書いておきます。 BME180は「Vccは3.3Vね、5Vにつながないでね♡」って注意書きはありますが、 SDAとSCKはそのままでいいと思えるフシがあります。実際BME180単独をI2Cに つないだときは正常に動いています。 でも実際には3.3V→5Vレベルコンバーターが必要なようです。 その理由は以下に書いてあります。 https://umek.topaz.ne.jp/mameduino/bmp180_pressuresensor_1/ 上記ブログでもかいてますが、「別にレベル変換しなくてもつかえるよね?」 っていうのは大抵のHPにかかれているのでなんとなくそうだ、とぐるぐるしちゃうの がアマチュアの情けないところであります。 こんなこともあろうかと、 秋月からI2Cレベル変換ユニット買ってました。 I2Cバス用双方向電圧レベル変換モジュール(FXMA2102): 半導体(モジュール) 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com) ここで大ハマリ。 OEピンに関して何も言及がなかったので無視してましたが、 OEピンはVccに接続しないと、動作しません。 これはデーターシートに書いてあることですが、指摘されないと見逃しますよね。 この処置の結果、Nanoパチもん+RTC+BME180で機嫌よく動いてるようです。 教訓:必要なものはどこかに落ちてる。 以上です。

遠足は帰宅まで:Arduinoのケース:ダイソーのケース(1)

イメージ
だいたいの場合はブレッドボードで動かして満足してはい解散という スタイルが多いんですが。それではイカン最後までパッケージするぞ、 ということで、  ダイソーで売ってる「SQUARE FIT」ケースに入れてみました。 ※売っているといってもダイソーオンラインには記載なし。 私もセリアで手に入れたと記憶してます。手持ちにはSHORT, WIDE, TALL, MINIx2がありますが全種類売ってたらラッキーで、 たいてい売り切れてるか欲しいのがなかったかで、見つけたら こまめにストックしています。 まず気圧計から。 右が現地気圧、左が高度補正した海面気圧です。 LED部分に四角い穴をあけてません。 「ポリエチレンに四角い穴を【キレイに】空けるにはどうするか?」 で1ヶ月近く悩みましたが、「空けなくてもいいんでね?」ということで そのままにしてますが、LEDだといい感じ。 リア部分、押しボタン3個を配置しています。 このケースの特徴として、上蓋が開く、というのがあります。 蓋を開けた状態。スッカスカだと怒られるかもしれませんが(汗 実は諸事情がありボタンはまだ配線してません(汗 左からパチもんのNano、RTC、右上がBME160です。 RTCは電池の都合もあるのですが、意外に大きくちょうどいい配置に納めるのに 苦労しました。なお、フレームを3Dプリンタで作り、それをケースに納める形 にしているため、ケースにはネジ止めはありません。ケースに空けた穴は左の USB口、右の気圧計用の通気孔、それとボタンをはめ込む穴です。 ケース自体はなんと100円(税抜)それでそれなりのものが作れるとは、 いい時代になったものです。 実はMINIケースに仕込んだものも計画中。 以上です。

★決算処分★表示器搭載MP3/DACモジュール [MP3YZ22A31B]

イメージ
 ★決算処分★表示器搭載MP3/DACモジュール [MP3YZ22A31B] ★決算処分★表示器搭載MP3/DACモジュール - aitendo aitendoさんで199円で買ったデバイスですが、 何とも不思議な動きをするのでご報告。 とりあえずスピーカーとmini USBをPCにつないで、 mp3の入ったmicroSDを入れてスイッチON (赤LED直下のタクトスイッチを長押し) すると、ファイルデバイスとして(設定次第だとは思いますが) ファイルエクスプローラーが立ち上がります。 そのファイルエクスプローラーからmp3を選択すると、 私の環境からはVLCプレーヤーが立ち上がり、 そのまま(mp3モジュールの)スピーカーから音声が流れます。 なんだこのまわりくどい動作は! ちなみに、VLCプレーヤーで再生できるものはSDカード、PC内部に かかわらず再生できるようです。 上一つがmicroSD内のmp3、 下はPC内部にあったmp3です。 ちなみに、本体のNEXT、PREVでVLCプレーヤーのプレイリストの上下が できるようです。 動作中のプレーヤー、LEDには「PC」しか出てこないようです。 ちなみに、USBを充電器につないだらLEDに上記「PC」しか出てこず、何も 動かせません(microSDの中身を読むことができない?)。 3.7Vリチウムイオン電池でもつなげばなんとかなるんでしょうが、 手持ちがないので今日はここまで。どちらにしろ、一般的なmp3プレーヤー からはかなりかけ離れた動作をしているようです。 さて、 1)ステレオ再生ってどうすんの? 2)スタンドアロンでの試用は? という課題が残りましたが。 まぁ当面動かすことはなさそうです。 以上です。

7セグ6発 TM1637 表示器の製作

イメージ
7セグ6発 TM1637 表示器の製作 目的:6桁の7セグ表示器を作る。 aitendoさんの7セグ(KEM3011)6発と同じくTM1637キットで表示器の製作。 最初は楽勝楽勝♪となめてましたが... 回路図は東京精電さんのものを参考にしてます。 XB22005A-01.png (5393×1625) (tokyo-seiden.co.jp) おもて:まぁ普通です。一応3Dプリンタでパネルを設けるつもりなので おもて面は極力部品を配置していません。 うら:ポリウレタン線はあるんですが、 はんだごてが非力なのか被覆が融けない... のでいちいちPFA線をむいて配線するという 生産性のなさ... 押しボタンも使うつもりなのでなんちゃって配線だけはしています。 こんなゴミみたいな配線でもきちんと動作しますから やっぱりLEDドライバーの効果は絶大です。 ところで、この7セグ(KEM3011)にほ思い入れがありまして、 このLED特徴として、セグメントが長方形(正確には平行四辺形)になっています。 その昔初めて作ったデジタルクロック(そのときもユニバーサル基板でしたが)の 7セグLEDがシャープ製で、やはり平行四辺形でした。 古い測定器でたまにシャープ製の7セグが使われてると、ニキシー管みたいななつかしさ (ちなみに、初めて使ったリガクの回折X線装置はニキシー管でした)があり、 未だに売ってるってのはうれしい限りです。 でも、KEM3011は10ピンなのですが、上下にピンがあるタイプではなく、 左右に10ピンなので、 秋月の7セグキットが使えないというところがあり、 TM1637を使うことになったんですが、手配線だとかなりの時間がかかります。 まぁその分達成感は味わえるわけですが、今の時代どうなんだろ?ってところは あります。あまりおすすめはできません。てかおとなしく出来合いのLED表示器 を買ったほうがずっと安いし悩まなくていいと思います。 ちなみにTM1637はLED表示ガジェットにはよく使われてるんですが、 押しボタンを使った記事はあまりなく、先達もLED表示はTM1637だけど 押しボタンはArduino直つなぎになってることが多くてなんだかなぁ。 って感じでした。 以上です。

8LED 74HC595 でバー表示の製作

イメージ
 8LED 74HC595 でバー表示の製作 朝の4時に思い立って、8時ごろ出来たやっつけですが。 何の変哲もない595+LEDの組み合わせです。 回路図は秋月さんところをそのまま使ってます。 秋月電子:AE-7SEG-BOARD https://akizukidenshi.com/download/ds/akizuki/AE-7SEG-BOARD_a2.pdf それだけだとブログネタにはなりませんが、 今回は秋月の8x6穴スルーホール基板に、無駄に集積度を高く作るという コンセプトで作ってみました。ぎりぎり収まったので一安心。 おもて:LEDとICだけ配置すると穴全部つかっちゃいます。 うら:はんだ付けは見せられるレベルじゃないですが。 だったら秋月の7セグメントボード使ったら?と思ったあなた。 その通りですごめんなさい。 以上です。

単なる感想なんで読み飛ばしてください:Arduinoブログ一般で思ったこと。

 単なる感想なんで読み飛ばしてください:Arduinoブログ一般で思ったこと。 Arduinoは教科書なんていらない!ってのはその通りで、 超マイナーなガジェットでも使用履歴があるんで参考にしてます。 各ブロガーさん感謝しています。いや、本当に。 でも、 配線図だけ載ってて、回路図がない。 ってのは結構きついんですね。 検索数が多そうなブログでも回路図がないっていうのには参りました。 まぁ回路図がなくても配線図さえあればいいってのはその通りですが。 ブレッドボードベースで追うのはきつい歳になりました。 あとSDI接続でMOSIがD12番という誤記には 半日ぐらい悩みましたw 以上

超コネタ:7seg 7セグメント LEDを使うときの抵抗

イメージ
 超コネタ:7seg 7セグメント LEDを使うときの抵抗 Arduinoの教科書:ブログを見ていると、 7セグメントLEDを使うときにはブレッドボードに抵抗を7個 (小数点含めたら8個)差し込めという無理ゲーの指示がありますが、 安物のブレッドボード使ってると4個目ぐらいで挫折します。 大昔はDIPサイズの集合抵抗があった記憶がありますが、 さすがに今はないようです(そりゃそうだ) だったら作れよ、ってのはその通り。 基板のきれっぱしで作りました。 作り方: 1)ブレットボードに8pのターミナルx2をぶっさす 2)適当に切った基板を載せて半田づけ 3)お好みの抵抗をはんだ付け ですぐ作れます。(基板切るのが大変かな) 大人しくTM1268とかMAX7219使えば?ってのはその通りなので反論はありません。以上。

超コネタ:LEDスペーサーまたはLEDホルダーまたはLEDスリーブ

イメージ
 超コネタ:LEDスペーサーまたはLEDホルダーまたはLEDスリーブ 基板に多数のLEDを配置する場合、 一般的にはLEDスペーサーを使用しないとガッタガタになってしますが、 LEDスペーサーがLEDより高いってどうですか。 例えば https://www.monotaro.com/g/00510657/?t.q=led%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B5%E3%83%BC LEDスペーサーにPTFEあるいはPFAチューブ(φ0.8) ってのがググる先生の答えですが、 PFAチューブなんて高くて買えません。てか秋葉原までいかないと手に入らない。 そこで何でもある百均でありましたよ。ビースコーナーの「竹」 ガラスでできてるから耐熱性は抜群、しかも100円で一生分の LEDスペーサーが手に入るという小さな幸せ。 ただし、スリーブの長さが微妙にそろってないという両刃の剣。 まぁその辺はゆっくりやりましょう。 それと無理やり位置調整するとスリーブ割れちゃうので要注意。 しかし、検索して思ったんだけど、LED実装において「リード線は長くとれ」 (LEDの放熱を促すためのリード線だから) ってのは昔の教科書に書いてあったような記憶が。いまは基板直付けでも大丈夫なんでしょうか。