初歩の電子工作とデジカメの日記

電子工作備忘録とデジカメで撮影した写真のブログです。

ATMEGA88のブレッドボード用シールドを作る

2014-05-29 13:36:21 | AVR
AVRマイコンにプログラムを書き込むには純正書き込み器「AVRISP mk2」を使うのだがマイコン側は6ピンリボンケーブルになっているので6本のジャンパ線を用意してターゲットマイコンの端子に接続する形になっている。
このジャンパ線をいちいち1本ずつ接続していくのも手間がかかる作業なのでWebで情報を集めていたらブレッドボードに搭載するシールド基板の製作法が出ていたので自分も作ってみた


Photo Shop Elementsを使って配線図を作成。



使用した部品

  • ユニバーサル基板=端材
  • 2x3の6Pinピンヘッダ(長いのをカットして使用)
  • 28Pin ICソケット
  • 14Pinピンヘッダx2(画像では普通の長さのピンヘッダになっていますがあとで足の長いピンヘッダに変えました)
  • マイコンATMEGA88-20PU (わかりやすいようにピン配置のシールを作って貼りました)


配線図の通りに基板に部品を載せてハンダ付けしました。



基板のハンダ面です。ハンダ付けの稚拙さは置いといて、7列分の中にリード線が重なりながら接続されています。そのうち電気的にショートしないか心配です。



ICソケットにピンラベルを貼っているマイコン「ATMEGA88-20PU」をはめ込みます。



Cタイプのブレッドボードに完成したシールドをはめ込みます。
電源取得用のDCジャック(変換アダプター)も載せました。
このタイプのブレッドボードでは作業スペースが狭いので簡単な回路しか組めません。大きなブレッドボードが必要になってきました。



AVRライターと5VのACアダプターを接続して通電テスト。グリーンランプが点灯して通電を確認しました。




AVRマイコン電子工作(3) 8led count

2014-05-27 18:16:37 | AVR
AVRマイコン " ATMEGA88-20PU " を使った電子工作の3回目です。
今回も前回使った8個のLED回路はそのまま利用して、プログラムだけ変更します
8個のLEDが2進数でカウントアップするプログラムです。



#include<avr/io.h>
#include<util/delay.h>

int main(void){

char count = 0; // 変数の型char 変数の名count

DDRD = 0b11111111; // ポートDを出力
PORTD = 0b00000000; // ポートD初期化

while(1){ // 無限ループ
PORTD = count;
_delay_ms(500); // 0.5秒待機
count++; // 1増加

}
return 0;
}
8個のLEDが2進数でカウントアップする様子は動画でご覧ください。



AVRマイコン電子工作(3) 8led count

AVRマイコン電子工作(2) 8led pass it on

2014-05-25 11:15:35 | AVR
AVR マイコン " ATMEGA88-20PU " を使った電子工作の2回目です。
前回作った8個の LED の回路はそのまま使ってプログラムだけを変更します。
今回は8個の LED が順送りで点灯する回路です。



// ATMEGA88-20PU 使用
// 8個のLEDを順送りで点灯させるプログラム
#include<avr/io.h>
#include<util/delay.h>

int main(void){

DDRD = 0b11111111; // ポートDを出力
PORTD = 0b00000000; // ポートD初期化

while(1){ // 無限ループ
PORTD = 0b00000001; //PD0点灯
_delay_ms(200); //200ms待機
PORTD = 0b00000010; //PD1点灯
_delay_ms(200); //200ms待機
PORTD = 0b00000100; //PD2点灯
_delay_ms(200); //200ms待機
PORTD = 0b00001000; //PD3点灯
_delay_ms(200); //200ms待機
PORTD = 0b00010000; //PD4点灯
_delay_ms(200); //200ms待機
PORTD = 0b00100000; //PD5点灯
_delay_ms(200); //200ms待機
PORTD = 0b01000000; //PD6点灯
_delay_ms(200); //200ms待機
PORTD = 0b10000000; //PD7点灯
_delay_ms(200); //200ms待機
PORTD = 0b01000000; //PD6点灯
_delay_ms(200); //200ms待機
PORTD = 0b00100000; //PD5点灯
_delay_ms(200); //200ms待機
PORTD = 0b00010000; //PD4点灯
_delay_ms(200); //200ms待機
PORTD = 0b00001000; //PD3点灯
_delay_ms(200); //200ms待機
PORTD = 0b00000100; //PD2点灯
_delay_ms(200); //200ms待機
PORTD = 0b00000010; //PD1点灯
_delay_ms(200); //200ms待機

}
return 0;
}

8個の LED が順送りで点灯する様子は動画でご覧ください
いわゆるナイトライダーという点灯スタイルですかね。




AVRマイコン電子工作(2) 8led pass it on


AVRマイコン電子工作(1) change 8led

2014-05-21 08:19:43 | AVR
Arduino,PIC,Mbed,に続きまたまた新しいマイコンに手を付けてしまった。
その名は「AVRマイコン」。メーカーは「ATMEL社」だが、どうも初心者向けのネットじょうほうや、書籍が「Arduino」や「PIC」に比べると少ないらしい。
Webで「零からの電子工作」という動画での講座の中で「AVRマイコン」が取り上げられているのを知り、これを視聴しながら勉強することにした。


プログラム作成やbuldする開発環境はメーカーのホームページから無償でダウンロード、インストールできるがマイコンチップにプログラムを書き込むライターは純正製品「AVRISPmk2」を秋月電商で購入、3,200円也。(左画像)
使用したマイコンは ATMEGA88-20PU(右画像)



以前の通り回路図はソフト " BSch3v " を使って作成、画像右の6Pinのコネクターは AVRマイコンライター "AVRISPmk2"から出ています。



// 8個のLEDが交互に点灯するプログラム
#include<avr/io.h>
#include<util/delay.h>

int main(void){

DDRD = 0b11111111; // ポートDを出力
PORTD = 0b00000000; // ポートD初期化

while(1){ // 無限ループ
PORTD = 0b01010101; //PD0,2,4,6のLEDを点灯
_delay_ms(500); //500ms待機
PORTD = 0b10101010; // PD1,3,5,7のLEDを点灯
_delay_ms(500); //500ms待機

}
return 0;
}


小さいブレッドボードに電源用のDCジャック、マイコン "ATMEGA88-20PU" 、そして8個のカーボン抵抗とLEDを配置し、ジャンパ線で結線するこの作業が一番手がかかった。
LED点灯の様子は動画でご覧ください


AVRマイコン電子工作(1) change 8led

秋月の「多機能デジタル時計 Ver.3 」を作る

2014-05-07 19:04:07 | 電子工作
今の時代、デジタル表示の卓上用時計なんてデザイン良く価格も安い商品がたくさん売られているが、そこは男のロマンで工作をしたくなり、秋月電商で「多機能デジタル時計 Ver.3 」を買い、早速製作開始!


開封したキットの内容
(右)部品・製作説明書
(左上)専用基板・・・[LED基板]と[IC基板]に分割する。「大型7セグLED表示器」 4個
(左下)パーツ袋



  • 最初に取り付けると一番背が低くなるカーボン抵抗器 5種ー30本と積セラコンデンサ4本をハンダ付け、1本に付き2ヶ所ハンダ付けするので2x34=68回ハンダ付けするわけで、これだけでも結構根気が必要


  • 2種類の電解コンデンサとトリマコンデンサそして2種類のICをセットするICソケットをハンダ付け

  • 5φLED 赤色ー3本、黄色ー2本をハンダ付け(後で時刻表示のコロン部分は色を揃えました)
    3端子レギュレータと水晶発振子もハンダ付け。3端子レギュレータは足を深く入れてハンダ付けしたため、平らに寝かせられませんでした


  • 2種類のコンデンサー10本をハンダ付け


  • ブザーとタクトスィッチ-4個をハンダ付け


  • モード切替用の3ピンヘッダピンと[LED基板]と[IC基板]を連結するための20ピンソケットをハンダ付け


  • 電源と接続する部分は[CN1]の2つの穴があるだけ。別に用意したDCジャックにリード線をハンダ付けする細工の工作後、(+)(-)を間違わないようにしてこの穴にリード線を通してしっかりハンダ付け


  • [ LED 基板]下部の20P用のホールに 20P ヘッダピン(L型)をハンダ付け

  • 20pピンソケットとピンヘッダのハンダ付けが完了したので[ LED 基板]と[ IC 基板] を連結してみる。これでLED表示面が立つ形になるのでLEDが見やすくなる


  • [ LED 基板]に4個の大型7セグメントLED表示器をハンダ付け
    これが最後の電子部品の取り付け

  • 電子部品をすべて取り付けたので全体をチェック、見た範囲では特に問題なし

  • 最後の工作で基板四隅にネジ、スペーサーを取り付けてすべての工作が完了
    ICソケットにプログラム書込み済みの PIC16F57[28P] と ドライバIC TD62003A[16P] をはめ込む

  • DCジャックに9V用のACアダプターを接続して通電テスト
    この瞬間が一番緊張する。無事にLEDが点灯しなかったらもう一度最初から点検しなければならないからだ。
    無事に点灯してホットひと息

  • 時計モードで現在時刻を設定してパソコンデスクの上に置きました。
    手前の赤色LEDが点灯しているのはアラーム時刻(7:00)を設定して、その時刻にはブザーが鳴る状態です。
    大きく明るい表示なのでデスクから離れていてもよく見えます

ATtiny2313をArduino化する

2014-05-02 13:32:48 | Arduino Uno
ArduinoにはAVRのATMEGA系のマイコン(ATMEGA328P、ATMEGA168-20Pなど)が使用されている。AVRのマイコンにはもう1系統がある。ATtiny系だ。こちらの系統のマイコンはArduino化できないと思っていたら・・・Arduino UNO があればできるらしい!


画像で上側のマイコンが Arduino UNO で 使用されている「ATMEGA328P」(28P)、下側のマイコンが「ATtiny2313」(20P)
幅が大分違うのでATtiny2313がArduino化できれば、よりコンパクトな回路が組めそうだ。

こちらのブログ記事「Arduino IDEでATtiny他の開発(Arduino-ISP編)」 をお手本にして実証しました。



回路図作成ソフト「BSch3v」で Arduino UNO と ATtiny を結ぶ配線図を作成



先日製作した Arduino 用「ブレッドボード・シールド」に部品を配置、結線してPCとArduino Uno を USB ポート接続する。画像にあるLEDと抵抗器は動作確認用です。
【ここからの手順】

  1. 開発環境「 Arduino IDE」[ツール]→[マイコンボード]に「ATtiny2313」を追加するため、ZIPファイルを解凍、インストールする。
  2. Arduino Unoに[ファイル]→[スケッチの例]→スケッチ[ArduinoISP]を書き込む
  3. Arduino IDEのメニュー[ツール]→[マイコンボード]を開き 一覧表から ATtiny2313 を選択、ターゲットマイコンとする
  4. Arduino IDEのメニュー[ツール]→>[書込装置]を開き 一覧表から Arduino as ISP を選択する
  5. LED点滅のスケッチを書込み


動作確認用のLEDが点滅を開始して成功!



シールドからマイコン ATtiny2313をはずしてミニブレッドボードに電源用のジャンパ線だけ接続して点滅テスト。こちらでも点滅した。
これで Arduino を使った電子工作の幅が広がる気がした。
参考ブログ記事によるとこの回路でしか動作確認をしていないそうなので、次回は他の回路でも有効か確認しよう。