HeroTakechanのブログ

HeroTakechanのブログ

ブログの説明を入力します。

Amebaでブログを始めよう!
ARDUINOをお勉強した。
BLINKとか、SERVOとか、結構楽しい!!。
早速、ATmega328を購入、ARDUINOを量産・・・、
まずはブートローダーを書き込まないといけないらしい、
ブレッドボードにゼロプレッシャーとセラロック(20MHz)を載せて、
ARDUINOと接続、
 ARDUINOにはArduinoISPを書き込みして、手順通りに接続、リセットボタンを
押して難なく成功!!!。
ついでに、スケッチも書いてみることに・・・・
ArduinoからATmegaをはずして、(うまく外さないと、脚が悲惨なことになりますヨ)
ゼロプレッシャーから外したATmegaを移植。
BLINKのサンプルスケッチをコンパイル-->書き込み????????
エラーがでて、書き込みができない!!!!!。
ブートローダーが書けてない?------
  もう一度、最初からやり直してみる、
再度、移植、 さぁ、スケッチを書き込み、・・・ やはり errorじゃ
何故じゃ、何故なのじゃ~。
冷静に考えた末、     諦める事に・・・・・・、
ネットでいろいろと探してみると、リセットを押すタイミングではないか?とある、
試してみる、果てしなく、試してみる、夜明けが迫ってきた、でも、結果は同じダァ
Arduinoが出すエラーメッセージをさがしてみるが、答えがみつからん、
でも、シンクがエラーの表現になっている、やっぱりリセットのタイミングか?。
 ここで、相当の時間、嵌まってしまった、3日くらいは悩んでいたが、
ARDUINO UNOの回路図を見ていると、16MHzの水晶がかいてあるのに気がついた。
ブレッドボードには20MHzのセラロックが載っている、違うのはこれか!!!。???。
そもそも、セラロックを買うときに、16より20MHzのほうが早い!!と思って買ったのだった、
 ブレッドボード
右端の青いのが、問題のセラロック、
とりあえず、16MHzにスピードダウンしてみることに、
ブートローダーの書き込みからやり直し、取り外して、再度、UNOに移植、
スケッチをコンパイル…"書き込み完了"     エエ~っと思いながら、あっさり出来た!!。

後にいろいろ調べると、かの秋月さんのキットでも20MHzがついてくるが、
16MHzをつけましょうと言う記事が見つかった。
ど素人のわたくしには理解ができないが、どうも、理由がちゃんとあるらしい、
ATmegaはブートローダーをかくまでは(というか、外部クロックがなければ)内部クロックで
動作するようで、今回は、ブートローダーを書いたときに20MHzのクロックを入れてしまった事
が原因の様子。
というわけで、大きな峠を越えた気分。
でも、たぶん、たくさんの人が悩んでいると思いますよ、でもないかなぁ、素人は私だけかも
知れませんので、でも、どなたかの参考になれば幸いです。
<今回の損失>
    3日間の時間
  20MHzのセラロックと水晶発信子 計20ケ
  ATmeaga の脚 数本
  AVR 書き込み機 MarkⅡ 1台(買ってしまった)
                             以上
 次は、Arduinoの分身の製作をします。
ジャイロと加速度センサー使います、とくに、スイッチサイエンスさんのR1350Nに関心があったので、それも使います。