- 348
- 244 444
e-tools研究所
Japan
Приєднався 21 січ 2020
PICマイコンの使いかた。電子工作。
PIC32MX370F512 + OV7670カメラ カラーキャプチャー
Qiita:PIC32MX + OV7670カメラ カラーキャプチャーqiita.com/etoolsLab369/items/945f17a13cae3e06cd81
Qiita:OV7670カメラ 資料かき集めとポイント整理。qiita.com/etoolsLab369/items/0621fabb2748870301f0
Qiita:PIC32MX370F512F 64pin (1) 事始めqiita.com/etoolsLab369/items/2a5aa632e81472658dca
ナレーション:Voicevox ずんだもん
#pic32MX #OV7670
Qiita:OV7670カメラ 資料かき集めとポイント整理。qiita.com/etoolsLab369/items/0621fabb2748870301f0
Qiita:PIC32MX370F512F 64pin (1) 事始めqiita.com/etoolsLab369/items/2a5aa632e81472658dca
ナレーション:Voicevox ずんだもん
#pic32MX #OV7670
Переглядів: 64
Відео
PIC32MX370F512 64pin 動画表示 OV7670カメラ + ST7735S液晶QQVGA
Переглядів 26114 годин тому
Qiita:PIC32MX370F512 OV7670カメラ画像表示qiita.com/etoolsLab369/items/dfcdf24afbd75cfd2418 Qiita:OV7670資料かき集めとポイント整理。 qiita.com/etoolsLab369/items/0621fabb2748870301f0 #PIC32MX #OV7670 #ST7735S
PIC16F1827 ブレッドボード配線7 <CCP2キャプチャー> DCモータの回転数計測
Переглядів 179Місяць тому
Qiita:PIC16F1827 ブレッドボード配線7 DCモータの回転数を計測。qiita.com/etoolsLab369/items/80d5adeaf4e8b7d87e20 VOICEVOX:ずんだもん #PIC16F1827 #ブレッドボード #RPM
PIC16F1827 ブレッドボード配線6 <PWM出力> DCモータの回転速度
Переглядів 222Місяць тому
Qiita:PIC16F1827 ブレッドボード配線 PWM信号でDCモータを駆動させる。qiita.com/etoolsLab369/items/60913ac72e4538e3577e VOICEVOX:ずんだもん #PIC16F1827 #ブレッドボード #PWM
PIC16F1827 ブレッドボード配線5 <AD変換>
Переглядів 123Місяць тому
Qiita:PIC16F1827 ブレッドボード配線 AD変換qiita.com/etoolsLab369/items/d3434f8937cf47c9c3c6 #PIC16F1827 #ブレッドボード #AD変換
PIC16F1827 ブレッドボード配線4 <I2C通信> LCDキャラクタ液晶の増設
Переглядів 139Місяць тому
Qiita:PIC16F1827 ブレッドボード配線 <I2C通信>LCD液晶 SC1602 qiita.com/etoolsLab369/items/79f9285468753951d780 Qiita:PIC16F MSSPモジュール I2Cマスター 送信 資料qiita.com/etoolsLab369/items/491b424f2f1a6554063f #PIC16F1827 #ブレッドボード #I2C
PIC16F1827 ブレッドボード配線3 <I2C通信> IOエキスパンダーMCP23017
Переглядів 186Місяць тому
16F1827 ブレッドボードで、I2C通信の配線 IOエキスパンダーMCP23017 Qiita:PIC16F1827 ブレッドボード配線 <I2C通信>qiita.com/etoolsLab369/items/1c8e616b3c67ebc9ad4f Qiita:PIC16F MSSPモジュール I2Cマスター 送信 資料qiita.com/etoolsLab369/items/491b424f2f1a6554063f #PIC16F1827 #ブレッドボード #I2C
PIC16F1827 ブレッドボード配線2 <シリアル通信>
Переглядів 198Місяць тому
16F1827 ブレッドボードで、シリアル通信の配線 Qiita:PIC16F1827 ブレッドボード配線 <シリアル通信>qiita.com/etoolsLab369/items/cd06a9a25f9ac14bd065 #PIC16F1827 #ブレッドボード #シリアル通信
PIC16F1827 ブレッドボード配線1 <Lチカ基本回路>
Переглядів 1862 місяці тому
16F1827の基本回路、書込み、電源回路をブレッドボードに組んでみました。 Qiita:PIC16F1827 ブレッドボード配線<書き込み、Lチカ>qiita.com/etoolsLab369/items/f4202caef3f20855c232 #PIC16F1827 #ブレッドボード
[ PIC16F1827 ] MSSPモジュール I2C Slave 2バイト受信
Переглядів 2133 місяці тому
Qiita:PIC16F1827 I2C slaveサイド 2バイト受信コードqiita.com/etoolsLab369/items/57b89a32aeaf87d80bfd #pic16F1
PIC18F47Q43 光透過型センサーを用いた ”ものさし”
Переглядів 1853 місяці тому
Qiita:qiita.com/etoolsLab369/items/612fb91eec494135472d #pic18f47q43
[PIC18F47Q43+M5Stack ATOM Lite] bluetooth ラジコン メカナムホイール車
Переглядів 2184 місяці тому
Qiita:PIC18F47Q43 メカナムホイール車 M5AtomLite bluetooth通信qiita.com/etoolsLab369/items/9dc01d2313e45638f6c2 VOICEVOX:ずんだもん #PIC18F47Q43 #bluetooth #メカナムホイール
PICマイコン ”バイポーラステッピングモータ” を動かす。
Переглядів 2 тис.4 місяці тому
Qiita:PIC16F1827 バイポーラステッピングモータqiita.com/etoolsLab369/items/fb4c50974d20a94d8223 VOICEVOX:ずんだもん #PICマイコン #ステッピングモータ
ESP32-WROVER-E ESP32開発概要 GPIO入力割り込み
Переглядів 3464 місяці тому
Qiita:PlatformIO ESP-IDF GPIO汎用ピン入出力。ESP32-WROVER-E qiita.com/etoolsLab369/items/7b20bc32b019cee3e399 VOICEVOX:ずんだもん #ESP32 #PICマイコン
[ PIC18F27Q43 ] AD変換 Basic(legacy)Mode 通常のADC
Переглядів 2235 місяців тому
[ PIC18F27Q43 ] AD変換 Basic(legacy)Mode 通常のADC
[ PIC18F27Q43 ] IOピン 状態変化割り込み スイッチ割り込み
Переглядів 7915 місяців тому
[ PIC18F27Q43 ] IOピン 状態変化割り込み スイッチ割り込み
[ PIC16F18326 ] SPI通信 MCP23S08 8ビットIOエキスパンダー
Переглядів 4435 місяців тому
[ PIC16F18326 ] SPI通信 MCP23S08 8ビットIOエキスパンダー
[ PIC18F27Q43 ] I2C Host 2byte書込み、1byte読み込みシーケンス MCP23017編
Переглядів 2635 місяців тому
[ PIC18F27Q43 ] I2C Host 2byte書込み、1byte読み込みシーケンス MCP23017編
[ PIC18F27Q43 ] 割込み ベクターテーブル Timer0割込み
Переглядів 3356 місяців тому
[ PIC18F27Q43 ] 割込み ベクターテーブル Timer0割込み
[ PIC18F27Q43 ] Lチカ オシレータ設定、IOポート設定、 パーティション設定
Переглядів 2936 місяців тому
[ PIC18F27Q43 ] Lチカ オシレータ設定、IOポート設定、 パーティション設定
[ PIC18F47Q43 ] 40Pin PCB基板作成 汎用的に使用します。
Переглядів 3888 місяців тому
[ PIC18F47Q43 ] 40Pin PCB基板作成 汎用的に使用します。
[ M5StackCore2 ] C++学習 コンストラクタとデストラクタ 複数オブジェクト生成と消去
Переглядів 1058 місяців тому
[ M5StackCore2 ] C++学習 コンストラクタとデストラクタ 複数オブジェクト生成と消去
[ M5StackCore2 ] Buttonクラス カウントダウンタイマー 画面遷移 (コンストラクタとデストラクタ)
Переглядів 1368 місяців тому
[ M5StackCore2 ] Buttonクラス カウントダウンタイマー 画面遷移 (コンストラクタとデストラクタ)
[ PIC18F27Q43 ] I2C Host-Client通信 やりなおし。暫定版 とりあえず動いてますが、read時のI2C1CNTが機能してません。
Переглядів 1618 місяців тому
[ PIC18F27Q43 ] I2C Host-Client通信 やりなおし。暫定版 とりあえず動いてますが、read時のI2C1CNTが機能してません。
いつも拝見しています!質問なのですが、ノンシールド(シールド無し)の二芯ケーブルをステレオミニプラグにハンダすることは可能ですか?GND無しでも大丈夫だったり、GNDに代用できる物があったりしますかね? 困っているのですが、聞ける方が居なくて😓
私もオーディオ回路はそんなに詳しくないので、確かなことが言えませんが、ステレオでも、モノラルでもGND線と信号線の2本は最低限必要だと思います。
picライター購入検討のため情報収集をしていたらここに来ました!参考にさせていただきたいです😊
コメント失礼します。 こちらのコードをベースに機能を追加したアプリを作り、オープンソースで配布したいのですが、もしよければ許可をいただけないでしょうか。また、ライセンスを付けていましたら、教えていただきたいです。
ライセンス付加なしで、著作権も放棄してますので、ご自由にお使いください。
ありがとうございます!ありがたく使わせていただきます。
送信側回路図の赤外線LEDライトの抵抗を教えて頂きたいです。それと回路図と実際のブレッドボードの組み立てが異なるのはなぜですか?回路図のまま組み立てて問題はないですか?
送信側の赤外線LEDライトの抵抗は、1kから4.7kΩでOKだと思います。2mぐらい離れても動いた記憶があります。ダーリントンで、赤外LEDに電流を引っ張っているので、もっと大きな電流を流せば、長距離通信も可能になるかもしれません。 回路図と違うところは、赤外LEDと並列に可視光LEDを接続しているところでしょうか?これは、赤外LEDの動作確認用に後から増設したものです。 送信SC2261と受信SC2272のデータシートを確認してみたのですが、データシートの推奨回路と動画回路図はほぼおなじ回路なので、これで動くと思われますが、 出来れば、送受信ICのデータシートをダウンロードして、ご自身で、確認してみてから、回路を組んでみてください。 できる限り、正確な情報を視聴者の方にお届けしたいと心得ておりますが、回路図が間違っている可能性もあります。再検証する時間が取れないので、問題がないとは言い切れません。 このような、質問に的確に対応できるよう動画作成時の情報を、テキストベースでネットに保存するべきだとおもい、最近は、Qiitaに記事を同時に掲載していますが、このころは動画を作ったままでした。 ぜひ、送受信ICのデータシートをご確認しながら、組んでみてください。
回路図と実際の回路の抵抗の大きさが違うところがちらほらあるように伺えるのですが、データシートと照合をしてみようと思います。年月がたった動画なのに返信して下さりありがとうございました。
やはりできません。赤外線LEDの抵抗は2.7kΩにしました。送信は出来ているのですが、受信ができていません。そもそもRosc pairingがいまいち分かりません。教えて頂きたいです。
外部の抵抗を用いて、IC内部にあるRCオシレータクロックを生成していると思います。 送信機と受信機の同期をとるために、Rosc外部抵抗の値を対応させる必要があります。 送信用の赤外LEDの抵抗は、もう少し小さな値(ex,1kΩ)のほうがいいかもしれません。 ひさしぶりに、基板化した送受信機を動かしてみました。CNCルータで作った基板です。その時の作成回路図をQiitaに掲載しましたので、参考になれば幸いです。 Qiita:赤外線通信 SC2262IR、SC2272-L4 qiita.com/etoolsLab369/items/63f80dde385c28161998
Qiitaの回路図のコンデンサーの大きさを知りたいです。
最新版のMPLAB X, MCCでI2C接続の解説お願いします。最新の設定がよくわからないくて日本語で解説しているのが見つからなくて。。。
私も、数年前に、MCCの自動生成でI2Cを実装しようとしましたが、分かりずらかったので、MCCでI2Cを動かすことをやめた経緯があります。 データシートの解説フローを読んで独自にMSSPレジスタを操作してI2Cマスターを組み込みました。PICがマスターで、I2CデバイスのIOエキスパンダーMCP23017を相手に1バイトを書きこみました。 MCCとは違い、必要最低限のレジスタ操作で、実行させることができます。 このほうが、MSSPレジスタがどのように、I2Cシーケンスを実行していくのか、流れがつかみやすいと思います。 MCCの自動生成コードからMSSPモジュールの動作シーケンスを追うのは、難しいかもしれません。 MCCを使わないで、一旦MSSPレジスタを直接操作して通信させた後に、MCCに再チャレンジすると設定の仕方と、コード進行がよくわかるかもしれません。
@@etools ありがとうございます。 私も以前断念したのですが、もしかしたらと思ってコメントしました。 動画投稿頑張ってください。
ロータリーテーブルに付けたら、とっても便利😊
Library? For esp sdk?
Environment : VScode & Platform IO I am using the TFT 7735S driver that I previously wrote for a PIC microcontroller. I am converting it for use with the ESP32 using the ESP-IDF API. Qiita:qiita.com/etoolsLab369/items/c9ca5252e186f120cd96
消費電力じゃなくて出力電流とか供給電流では?
ほぼ、5vで使うなら、たしかに、電流値にフォーカスした表現になりますね。
前にどっかで観た、ESP32よりグレードが低いマイコンで同じような動画では、もっと描写が早かったと記憶してるので、問題箇所を見つけて改善すれば劇的に速度が向上すると思います。
What software do you use to program?
I use the MPLAB IDE with XC8 compiler.
@@etools thanks
割り込みが便利も云うより「ポーリングが面倒&非効率」なのだと思う。適材適所だが。
滅茶苦茶基本のことから教えて下さってとても参考になります
コメントありがとう。PIC、arduino、ESP32、STM32など、どのマイコンも、同じ基本的な機能で構成されてるからね。
身近なモノが題材になると、急激に興味をそそられますね!🤩 イメージしやすいので、理解もしやすいです!😆(理解できたとは言っていない
そーなんだよね。マイコンで制御できそうなジャンクを、ハードオフとかで探すのが楽しいんですわ。
ボードの電源と、PICKIT3の電源供給が衝突しないように、”MPLABXで、電源供給をオンボード” へ切り替えてください。
ボードの電源と、PICKIT3の電源供給が衝突しないように、”MPLABXで、電源供給をオンボード” へ切り替えてください。
ボードの電源と、PICKIT3の電源供給が衝突しないように、”MPLABXで、電源供給をオンボード” へ切り替えてください。
ボードの電源と、PICKIT3の電源供給が衝突しないように、”MPLABXで、電源供給をオンボード” へ切り替えてください。
「LSI」ではなく、このいかにも「IC」という外観に心躍ります!🤩(←変態
変態ってドイツ語とか英語で、メタモルフォーゼ、かっこよくなっちゃうんだなー、これが。生物学と魔術の文脈での意味だけど。
良く分かってないが面白そう❤
たぶん、このコメントの感性が、最強だなぁ。なんかわかんないけど、いいとか。ようは、自身の直観のことだ。
まだ触ったことも無い初心者です。 「マクロ」とか「関数」とかExcel操作の時と同じ言葉だけど、イメージは同じかな?とか思いながら見てました。 作っている風景も興味深く参考になりました。 ありがとうございます。
コメント、ありがとう。マイコンは、やったことが、すべて自分の身になるし、楽しいよ。簡単なものでも、自分で作ると嬉しいものだよ。
10代の頃、電気回路の動作原理も分かっておらず、それまでキットの組み立てしか経験が無かったのに、LM386を秋月で購入してデータシートの回路図をユニバーサル基盤に丸写しして自家製アンプを作ったことがあります!😆 元パチンコ台に使われていたジャンクの「液晶ディスプレイ」と「コンポジットビデオ→RGB変換キット」と共に組み合わせて、ディスプレイ型3.5インチFDケースに収めて自家製スピーカー内蔵小型ディスプレイに!🖥 はぁ……電子回路を理解したいけど未だによく分からないの。🥲(ソフト畑
ウキウキしながら、物を作っていた10代の君の姿が、目に浮かぶようだ。
中学生の頃にアセンブラに出会い、必要に迫られて2進数への変換方法を調べると、「2で割って行き、余りがどうこう~」という説明ばかりで「割るの?余りを出すの?説明としては楽だろうけど、コンピューター的には効率的じゃないなあ」と思っていた。 動画のように「2のn乗の大きい方から『引けたらビットを立てて、引けなかったらビットを立てない』を全ビット分繰り返す」方法を自分で思い付き、「ワイ天才!🤪」と己惚れていた厨二時代。(← 他にも、バイナリサーチなんかも自分で思い付いて「やっぱりワイ天才!🤪」と思い上がっていたり。 後からその手法に名前すら付いている至極ポピュラーな方法と知ってガッカリした甘酸っぱい思い出。🤤 厨二時代の話なんで、許してあげてください。🙇
中学生で、その発想すごいね。元気な君のコメントを読んでいると、こちらも、楽しくなるよ。
Raspberry Pi/PicoシリーズやArduinoシリーズが主流になってきている中、逆にこういう より基礎的な基礎中の基礎に触れているモノが少なくなり、とても貴重で有難いです!😆 導入こそ上述の様な機器の方が適しているでしょうけど、特に「動作を理解する」という点においては、こういう よりLow Levelな階層から理解できるPICマイコンの方が適していると思いますしね!
的確なコメントありがとう。
なかな丁寧に説明するのは難しいよね。
DENONのFMチューナ(TU500)のヘッドホン駆動回路が、このエミッタ~フォロワ回路です。
初めまして、動画製作お疲れ様です。いつも参考にさせて頂いています。 是非作って欲しいm5stackがあるのですが、 ジャイロセンサーを用いて、ボタンを押すと角度を0度に補正し、また違うボタンを押すと現在の角度を読み取り記録するような物を作って欲しいです。(ラチェットレンチに取り付けて、どのくらい回したか角度で読み取るものに使用したいです)是非参考にしたいので宜しくお願い致します。
RGBLEDの色指定 CRGB構造体 Blue=0x0000FF Green=0x008000 Red=0xFF0000 24ビットデータ 配列の並びは raw[0]=Red(8bit), raw[1]=Green(8bit), raw[2]=Blue(8bit) の 順番
テスト用オブジェクトの見た目がそのまんまw( ^ω^) Unityに情報送れるの凄いですね👏
私もPICで同じようなカラーLCDを使用したのですが、ものすごく早い描画ですね! 私のものと比べて10倍以上速いです。 数学を熟知されていると、ここまで違うのかと思い知らされました! (私は検索した計算サイトで出てきた式をそのままCで記述しました) これからも素敵な動画制作を期待しています。
Thank you for your advice. I thought it may be possible matrix LED indicater making.
Area = 1 x 12. 12 ÷ 3=4. Fold it up to make new Area = 4 x 3. Area = 1 x 25 . 25 ÷ 5 = 5. Fold it up to make new Area = 5 x 5.
LED Area = width x height. If it LED Area = 32 led x 32 led or even bigger value in width and height. Then it become PHD designing tool. Lots of picture figure work. Just run it with either binary bit left shift or right shift counter. LED Area = 1080 x 2000😊😊😉😉😉😉😊😊😊😉😊😊😊😉😊😊😊😊😉😊😊😊😊😉😊😊😊😊😊😉😊😊😊😊😊😉😊😊😊😊😊😉😊😊😊😊😊😉😊😊😊😊😊😊😉😊😊😊😊😊😉😊😊😊😊😊😉😊😊😊😊😊😉😊😊😊😊😊😊😉😊😊😊😊😊😊😊😊😉😉😉😋😊😊😊😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉
Led monitor.
😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊
It Area = 1 x 12. Area = width x height. If it Area = 32 x 32 or even bigger value in width and height. Then it become PHD designing tool. Lots of picture figure work. Just run it with either binary bit left shift or right shift counter. Area = 1080 x 2000
とてもわかりやすかったです。何回か見直して勉強したいと思います。16F84Aでアセンブラを勉強したかったのですがPICの値上がりがすごくて秋月で550円もするのであきらめて前に購入してあった16F1827でC言語でマイコンの勉強をしようと思います。ありがとうございました。(#^^#)
書き込み機のUSB5vとブレッドボード供給5vが、ショートしないように注意してください。電源供給方法をMPLABで設定してください。コメントありがとうございます。
返信ありがございます、嬉しかったです。MPLABの設定でPICkit4から電源供給しないのを確認しました。ありがとうございます。16F84Aの動画も見て勉強したい十と思います。@@etools
この回路をガンダムに取り付けよう。そして、すぐ実戦で試すんだ!!
#include <M5Stack.h> #define ADC_PIN 35 void setup(){ M5.begin(); pinMode(ADC_PIN,INPUT); M5.Lcd.setTextSize(3); M5.Lcd.setCursor(40,20); M5.Lcd.println("AD Converter"); M5.Lcd.setCursor(40,45); M5.Lcd.print("ADCpin:GPIO35 "); } void loop(){ int adc_val = analogRead(ADC_PIN); int adc_mVal = analogReadMilliVolts(ADC_PIN); M5.lcd.fillRect(0,100,280,200,BLACK); float Vout = adc_val/4095.0*3.3; M5.Lcd.setTextSize(3); M5.Lcd.setCursor(0,100); M5.Lcd.setTextColor(PINK); M5.Lcd.printf("analogRead "); M5.Lcd.setTextColor(WHITE); M5.Lcd.setTextSize(4); M5.Lcd.setCursor(0,130); M5.Lcd.printf("%3.2fV ",Vout); M5.Lcd.printf("%04d ",adc_val); float mVout = adc_mVal/4095.0*3.3; M5.Lcd.setTextSize(2); M5.Lcd.setCursor(0,160); M5.Lcd.setTextColor(ORANGE); M5.Lcd.printf("analogMilliVolts "); M5.Lcd.setTextSize(4); M5.Lcd.setTextColor(WHITE); M5.Lcd.printf("%3.2fV ",mVout); M5.Lcd.printf("%04d ",adc_mVal); delay(300); }
UNOはUSB⇔シリアル変換にATmega16u2を使っています。そのため、パソコンにつないで、キーボードの自動入力とか、マウスの制御もできますが、UNOでブートローダを書き込んでも、FTDI232がその機能に対応していないのでできません。 ブートローダ書き込むとしたらDuemilanoveか、pro miniの方がいいんじゃないかなぁ
#include <M5Stack.h> #include <Wire.h> void setup() { M5.begin(); Wire.begin(); M5.Lcd.setTextSize(3); M5.Lcd.setTextColor(WHITE); M5.Lcd.setCursor(20,50); M5.Lcd.print("I2C test"); M5.Lcd.setCursor(20,80); M5.Lcd.print("PCF8574"); M5.Lcd.setCursor(50,110); M5.Lcd.print("address 0x25"); M5.Lcd.setCursor(20,140); M5.Lcd.print("Send Data:"); M5.Lcd.setCursor(20,170); } void loop() { M5.Lcd.setCursor(20,170); M5.Lcd.setTextColor(WHITE,BLACK); M5.Lcd.print("0x55"); Wire.beginTransmission(0x25); Wire.write(0x55); Wire.endTransmission(true); delay(500); M5.Lcd.setCursor(20,170); M5.Lcd.setTextColor(WHITE,BLACK); M5.Lcd.print("0xAA"); Wire.beginTransmission(0x25); Wire.write(0xAA); Wire.endTransmission(true); delay(500); }
有用な動画のアップ、ありがとうございます。こちらの動画を拝見して、このPICを使い始めた者です。MCCを使用し、ソフト作成をしているのですが、ADコンバータが、想定の通りに動かなくて困っております。A/Dコンバータ、I2C通信など、その他の関連動画がアップされる日を楽しみにしています。
PICを使って何かを作ろうとした時に、書き込み機を購入しなければならないのはネックですね。 今後、色々と使っていく予定ならいいですが、今回限りかもしれないような時は自分ならArduinoかな。 ArduinoならUSBだけあればいいですからね。 とは言え趣味で色々と電子工作をしてみたい人はどっち使ってみたいでしょうね。
ゲームパッドは、スーファミ用ですか。
素晴らしい。 自分で信号を生成しているのでしょうか?
dsPIC33EP256GP502を使用。コンパイラはXC16で、下記の近似式を計算させています。近似計算は、マイコンで行っています。そして、パソコンの自作プロッターソフトに送信して、波形をみています。パソコン側は、結果値を表示しているだけです。5ライン分送信していますが、必要な2ラインだけを、表示しています。 if(Tm5.fg) { Tm5.fg=false; if(ADC.fg) { ADC.fg=false; theta+=0.02; if(theta>6.28) theta=0; switch(state) { case 0: dval[0]=512*sin(theta)+511; val16[0]=(int)dval[0]; dval[1]=512*cos(theta)+511; val16[1]=(int)dval[1]; break; case 1: //palse Wave dbuf=sin(theta)+sin(3*theta)/3+sin(5*theta)/5+sin(7*theta)/7; dval[0]=300*dbuf+511; val16[0]=(int)dval[0]; val16[1]=0x0000; break; case 2: //triangle Wave dbuf=sin(theta)-sin(3*theta)/9+sin(5*theta)/25-sin(7*theta)/49; dval[0]=300*dbuf+511; val16[0]=(int)dval[0]; val16[1]=0x0000; break; case 3: //saw Wave dbuf=sin(theta)+sin(2*theta)/2+sin(3*theta)/3+sin(4*theta)/4+sin(5*theta)/5+sin(6*theta)/6; dval[0]=300*dbuf+511; val16[0]=(int)dval[0]; val16[1]=0x0000; break; } cnt++; if(cnt==1600) { cnt=0; state++; if(state==4) state=0; } txBuf[0]=0xF0; txBuf[1]=ADC.val[0]>>8; txBuf[2]=ADC.val[0]; txBuf[3]=ADC.val[1]>>8; txBuf[4]=ADC.val[1]; txBuf[5]=ADC.val[4]>>8; txBuf[6]=ADC.val[4]; txBuf[7]=val16[0]>>8; txBuf[8]=val16[0]; txBuf[9]=val16[1]>>8; txBuf[10]=val16[1]; txBuf[11]=0xE0; for(i=0; i<=11; i++) { putCH(txBuf[i]); } //printf("%d %d %d ",ADC.val[0],ADC.val[1],ADC.val[4]); IEC0bits.T3IE=1; } IEC1bits.T5IE=1; }
/*--------------------------------------------------- Timer0 8-bit Timer ---------------------------------------------------*/ volatile _tm tm0; void Timer0_INIT(void) { OPTION_REGbits.T0CS=0; //Fosc/4 OPTION_REGbits.PSA=0; //Prescaler assigned. OPTION_REGbits.PS=0b100; //1:32 TMR0=0x83; //1ms interval timer INTCONbits.INTF=0; INTCONbits.TMR0IE=1; tm0.cnt=0x0000; tm0.fg=false; } void __interrupt()isr() { uint8_t buf; if(INTCONbits.T0IF) { INTCONbits.T0IF=0; tm0.cnt++; TMR0=0x83; if(tm0.cnt==500) { tm0.cnt=0; tm0.fg=true; INTCONbits.T0IE=0; } } } void main(void) { Oscillator_Init(); Port_Init(); Timer0_INIT(); Interrupt_START(); while(1) { if(tm0.fg) { tm0.fg=false; LED0=~LED0; INTCONbits.T0IE=1; } } return; }
/** * 矩形描画関数 * @param _xs X軸始点 * @param _ys Y軸始点 * @param _xsize X方向サイズ * @param _ysize Y方向サイズ * @param _R 描画点 赤 * @param _G 描画点 緑 * @param _B 描画点 青 */ void ST7735S_Rectangle(uint8_t _xs, uint8_t _ys, uint8_t _xsize, uint8_t _ysize,uint8_t _R,uint8_t _G, uint8_t _B) { uint8_t x,y; //始点終点アドレスセット ST7735S_AddSet(_xs,_xs+_xsize,_ys,_ys+_ysize); //RAMライトコマンド送信 ST7735S_Write(ST7735_CM,RAMWR); ST7735_A0= ST7735_DT; //描画データ書き込みスタート(SPI CS=Low) SPI2_START(); for(x=0; x<=_xsize; x++) { SPI2TCNT=_ysize*3;//列データ個数=SPI送信個数 for(y=0; y<_ysize; y++) { SPI2_Write(_R);//1ポイント:赤 SPI2_Write(_G);//1ポイント:緑 SPI2_Write(_B);//1ポイント:青 //__delay_ms(50);//debug用(実行時コメントアウト) } } SPI2_STOP(); }
はじめまして。 PICについて調べていてこちらのチャンネルに辿り着きました。 自分のチャンネルで上げていますLEDのパターン点滅用のユニットを自作したくて昔から頑張って独学で色々調べていますが難し過ぎて自分の頭の悪さにげんなりしています。 しかしこちらのチャンネルでのPICの解説等は非常に分かり易くてなんとなく始められそうな気がしてきました! 1番気になるのはこの手の工作をする為の知識等はどのように習得されたのでしょうか? 自分は電子工学科卒等でなければ足を踏み入れられないと思っていたのですが独学でもある程度覚えられるものでしょうか?
ネットがあるので、独学で十分ですね、今の時代は。これからは、ChatGPTに聞けばいいし。 私の場合、学生時代に電気電子は、学んでいませんでした。 C言語は学習していたのですが。ソフトウェアの仕事に就いたのに、いきなり、電子回路設計を、ゼロ知識からやらされたのが、始まりで、I2CもSPIもしらず、基板すら作ったことがない。そこからすこしずつ、何年もかけて習得しました。ですが、、、奥が深いです、この世界は。 電子工作は、ネット検索がすごく役に立っています。 コメントありがとう。
//USART受信割込み処理---------------------------------- if(rxUsart.completed) { rxUsart.completed=0; printf("length=%d %s ",rxUsart.length,&rxUsart.buf); if(rxUsart.length==5 || rxUsart.length==6) { cnt=asciiToInt((char*)rxUsart.buf,rxUsart.length); printf("cnt=%ld",cnt); Ucnt=(long)(cnt*1000/703); printf(" %ld ",Ucnt); if(rxUsart.length==5) for(i=0; i<Ucnt; i++) { for(j=8; j>=1; j--) { LATB&=0xF0; LATB|=(uint8_t)halfStep[j]; __delay_us(1200); } } __delay_ms(500); if(rxUsart.length==6 && rxUsart.buf[0]=='-') for(i=0; i<Ucnt; i++) { for(j=1; j<=8; j++) { LATB&=0xF0; LATB|=(uint8_t)halfStep[j]; __delay_us(1200); } } __delay_ms(500); } rxUsart.length=0; PIE4bits.U1RXIE=1; }
更新楽しみにしています。
これは面白い!