前回の記事にも書いたのですが、arduinoを真面目に勉強し始めました^^
UNOが2つあるのはプログラムミスを何かとボードの故障ではないかと疑う私には必要と思われるからですw
どちらでも動かなければプログラムミスですもんね^^;
arduinoは以前一回トライしていたのですが、途中で放置していました。
とりあえずAVRで事足りていましたから^^;ただ、今回DFPlayerを扱うに当たって簡単なプログラムなのですが初めてarduinoでプログラム書いてみました。
細々と浅いところから深いところまでハマったのでご紹介w
まずvoid setup(),void loop()。そこからかい!!とツッコミが聞こえて来そうですがw
AVRのint main()がvoid loop()に当たると思ってvoid loop()の中にvoid setup();と書き込んでいましたwまっ、こんなのにはまる人間はいないと思いますのでさらっと流しますw
次にピン割り込み。
UNOでは2ピンしか使用できないようです。Megaなら6ピンあるようですが、AVRのあの豊富なピン割り込みが使えません^^;今回のエンタープライズのようなスイッチがたくさんある場合は困りますね。このへんはAVRとの使い分けが必要そうです。
次にスイッチのプルアップ
とりあえずそれらしいプログラム書けたので動かしてみるのですが、どうにもまともに動きません・・・・。試しにもう一台のUNOで試してもダメです・・・・・。
で、ネットで調べてみるとスイッチ部分にプルアップ抵抗を外部につけてるじゃありませんか!!
私はてっきりarduinoはAVRだから内部でプルアップしてくれているものと思っていました^^;
内部のプルアップ使うときは、INPUTでなくてINPUT_PULLUPと記述しないといけないんですね^^;
これでしばらくハマっていましたw
次にハマったのが、インクリですw
なぜにそこでw?と思われると思いますが、ボリュームアップでインクリ使って
mp3_vol++;
と通常記述するところを何を思ったのか
mp3_vol=mp3_vol++;
と記述していましたw通常AtmelStudioならコンパイルの時にエラーがでますよね。
下の欄にエラーが表示されてコードの左側にその部位のマークが出ます。
ところが、これarduinoだとそのままコンパイルしちゃうんですよねw
エラーの表示もなくそのままプログラムが動いてしまいます。ただし正常な動きはしませんが^^;
下の写真は色々な元の数字に1を足す式を試してシリアルで確認したものです。
やはりd=d++;の数は増加していません。
これシリアルプリントの画面なかったら気がつきませんw
それにしてもarduinoのこのシリアルプリントはほんと便利ですね。プログラムミスが見つけやすいです^^。まっAVRでもこの設定をすればできますが面倒です^^;
てな感じでプログラムにエラーが出ていないのでちょっとハマってしまいましたw
で、今回の最大のハマりは!
プログラムも出来たので今度はこのプログラムをarduino nanoに書き込んで基盤に埋め込める様にしようと。
ところがパソコンにnanoを繋げても全く反応しません・・・・・・・。
そこで中華製nanoで検索すると色々な情報が出て来ました。どうやら沢山の人たちが認識しなくて困っていた様です^^。よかった〜私だけではないんだ〜^^。
ども中華製nanoは本来のものとは一部違いCH340Gというチップが使ってあるようで、このドライバーをパソコンにインストールしないと認識しないそうです。
こちらのブログからリンクを辿ってドライバーをインストールしてみました。
これで多くに人たちは大丈夫になったようですが!しか〜〜〜!私の物は認識しない・・・・・。
ドライバーがダメなのかなとネット上を徘徊してCH340のドライバーを色々なところから入手してインストールしてもダメ・・・・。
macにつなげると一瞬nanoがチカチカするのですがダメです。
仕方ないので家にあるwindowsに先ほどのドライバーをインストールして試してみましたが、これもダメ・・・・。
nanoはお試しで1台しか持っていなかったので、nanoの故障を疑いもう一台注文。その際にUSBのミニジャックのケーブルも注文しておきました。
新しいnanoが届いて試してみるもこれもダメ・・・・・・・・うむ・・・・・・。
とりあえず新しいケーブルでやってみるか・・・・・・。
ちょw認識してるw
ケーブルかよ!!またこのパターンか・・・・進歩ないな・・・・・。
ドライバーの問題があったのでそちらばかりを気にしていました^^;
沢山の人たちがドライバーでつまずいているのを見たときは、私だけではないんだ〜と思っていましたが、ケーブルでつまずいていたのはお前だけだよ!との声が聞こえて来そうですw
これで4日くらい作業止まっていましたw
てな感じでarduinoでハマりながらなんとか出来ました。今後もarduinoを使っていこうと思います^^。色々なモジュールがあってとにかく便利ですしね^^。
関連すると思われる記事:
- None Found
こんばんは!
Arduino便利ですよね。
確かにWindowsで認識できないってのは良く聞きますよね。
大抵はCH340ドライバでしょうがそれでも認識しない人も多いようで・・・・。
中にはArduinoのブートローダーが壊れてた人も。
ケーブルとかArduinoとか複数無いと原因特定は困難ですね(><;)
そいやピン割り込みって使った事ないや(w)
レッサーかずさん こんばんは!
arduinoむちゃくちゃ便利ですね!
なんとかarduinoのお作法に慣れて来てプログラムも組めるようになって来たので使っていこうと思います。とにかくスケッチの例が豊富にあるのでとても便利ですね。
CH340ドライバは色々とつまずいている人が多いようですね。本家のドライバを入れてもうまくいかない人も多いようでパッチがされたドライバが出て来ているようです。
何かと問題のある中華製nanoですが、その価格と大きさは模型製作の上では魅力ですよね〜。
ピン割り込み使わずよくあれだけの動作のプログラム作れますね!そちらの方が脅威ですw
こんばんは!
まずは、底なし沼からのお見事な脱出、お疲れさまでした。
6jiroさんは、PICやAVR、そしてarduinoといろいろ幅広くされているので、文法などが混乱されるのでしょうね。
私はPICだけですが、それでも久しぶりにC言語に触れると、作法を忘れてはまります(笑)
arduinoは全く経験がないのですが、ピン割り込みなどが簡単に処理できそうで、便利ですね。
でも同じC言語なのに作法が違って、むつかしそうです。
あっ、ケーブルの断線でしたか!
これはわからないですね。
Vividさん こんばんは!
どうにか今回も底なし沼から脱出できましたw
PICは明らかにVividさんの影響なのですがwPIC,AVR,arduinoとどれも多少お作法が違うので間違うこともありますが、基本Cなのでどうにかなっています^^。
そう考えると一番最初にCを学んだのが大正解でした^^。
arduinoはざっくりいえば、PWMやシリアル通信、アナログ入力等がほとんど設定なしで使える感じです。あの設定用のビットでの指定とか一切ありません。細かい設定を追い求めるともっと難しいのだと思いますが、普通の使用ではすごく簡単に色々な機能が使えます。
ピン割り込みも同じように簡単に使えるのですがINT0とINT1しか使えなくて、AVRにあるPCINTは使えないようです。これも調べると使えるようにすることはできるようですが、その設定はAVRより複雑そうですw
ケーブルの断線は最後まで疑っていませんでした^^;
こんばんは!
6jiroさんほんと多彩ですね。
PICだけでいちうもハマりまくってる私にとっては、もう異次元のスキルです!
市販のケーブルが原因ってのはアンラッキーでしたね。
こういう失敗談って後から続く人のためにすごくためになりますから、この記事はかなり貴重な記事になると思います。
なおさん こんばんは!
いえいえ^^;私なんかどれも理解が浅いです^^;
なおさんやVividさんのようにPICを完全に使いこなしている方たちが羨ましいです。
なにぶん独学なんで時々他の方が思いもよらないことでつまずいたりします^^;
ケーブルがダメなのはなかなか気がつきませんでした^^;これも全くnanoが反応しなければ、ケーブルも疑ったのですが、パソコンに刺すとそれなりにLEDが点灯して反応するんですよねwそのためになかなか疑いませんでした^^;
中華製のarduinoを購入されて反応されない方は、ぜひドライバーのインストールしてみてほしいですね^^。
nano安くていいですよね。
一個300円くらいでまとめ買いしましたが、幸い一つも壊れていません。
ケーブル問題もなかったし、タブレットPCにサクサク接続できたので、特に困った記憶がないです。
マスターは、うっかりスキル発動で引きも強力ですねww
gyoさん こんばんは!
うっかりスキルはあらゆるところで発動していますw
中華製nanoは値段が安くていいですよね〜。
どうやらwindowsの8、や10ではもとからCH340チップのドライバーはインストールされているみたいです。私の場合ひねくれ者なのでMac使っているのでこのチップのドライバーが入っていなくて認識できない状態になっていました。まっ、その前にケーブルが使い物にならなかったんですけどねw