周辺回路の作成に必要な
部品と知識(
プログラム、
電流制限抵抗、
プルアップ)が揃ったのでベースボードに周辺回路を接続します。
今回使用するのは
・いつもの
SH7125ベースボード・
ブレッドボード・LED
・抵抗(電流制限用1kΩ)
・タクトスイッチ
・抵抗(プルアップ用10kΩ)
・ブレッドボード用配線一式
・配線(GND:
黒、5V:
赤、入力:
黄、出力:
青)
プログラムは
IOの増設設定を行った回で作成したものをベースとして使用します。
プログラムを2パターン用意します。
1)SW1を読み込み、PE4-7を一斉に切り替える
2)PA10-13を読み込み、PE4-7をそれぞれ切り替える
プログラムを2パターン用意します。
使用する入出力関連の関数は以下の5種類
get_sw1();
set_LED_R(ON/OFF);
set_LED_G(ON/OFF);
get_PortA_bit(Aポート番号 10-15);
set_PortE_bit(Eポート番号 4-7、ON-OFF);
パターン1のメイン関数
main(){
int i;
int bit_state;
hardware_setup();
//マイコンの端子を初期化 set_LED_R(0);
//とりあえずLED赤消灯 set_LED_G(0);
//とりあえずLED緑消灯 while(1){
if(get_sw1()){
//スイッチ1がON:下の時 set_LED_R(1);
//LED赤点灯 set_LED_G(0);
//LED緑消灯 set_PortE_bit(4,0);
//PortEの4ビット目をOFF set_PortE_bit(5,0);
//PortEの5ビット目をOFF set_PortE_bit(6,0);
//PortEの6ビット目をOFF set_PortE_bit(7,0);
//PortEの7ビット目をOFF }else{
//スイッチ1がON:下じゃない時(OFF:上) set_LED_R(0);
//LED赤消灯 set_LED_G(1);
//LED緑点灯 set_PortE_bit(4,1);
//PortEの4ビット目をON set_PortE_bit(5,1);
//PortEの5ビット目をON set_PortE_bit(6,1);
//PortEの6ビット目をON set_PortE_bit(7,1);
//PortEの7ビット目をON }
}
}
パターン1では出力の接続確認を行うため、
動作が保証されているSW1の入力に対してPE4-7の制御を行います。get_sw1()の条件に対してPE4-7を一斉にONまたはOFFします。これはLED緑の動作に連動します。
パターン2のメイン関数
main(){
int i;
int bit_state;
hardware_setup();
//マイコンの端子を初期化 set_LED_R(0);
//とりあえずLED赤消灯 set_LED_G(0);
//とりあえずLED緑消灯 while(1){
if(get_sw1()){
//スイッチ1がON:下の時 set_LED_R(1);
//LED赤点灯 set_LED_G(0);
//LED緑消灯 }else{
//スイッチ1がON:下じゃない時(OFF:上) set_LED_R(0);
//LED赤消灯 set_LED_G(1);
//LED緑点灯 }
//4bit分の入力を受け付け、4bit分出力する for(i=0;i<4;i++){
bit_state = get_PortA_bit(10+i);
//PortAの10~13ビット目の状態取得 set_PortE_bit(4+i,bit_state);
//PortEの4~7ビット目に出力 }
}
}
パターン2ではスイッチ入力の動作を確認します。
PA10→PE4、PA11→PE5、PA12→PE6、PA13→PE7
それぞれ対応したポートから5Vを出力します。
ブレッドボードの使い方
ブレッドボード(Wikipedia)IC何かの動作確認等を行う際に半田付けしたくない場合に使用します。
ブレッドボードの穴に配線を挿すと、隣の穴に挿した配線と接続されます。
基本的にICをまたがせるための溝があり、溝から直角に配線が伸びています(水色と黄色のライン)。溝に直角な配線は溝で分断されており、水色と黄色のラインは独立しています。また、水色のライン同士、黄色のライン同士も独立しています。
また、電源を引き回すための列が並んでいるものが一般的です。(極小サイズだと無い場合もあるので選定時に注意)
このブレッドボードでは溝に対して左右1本ずつ電源用の線があります(赤と黒のライン)。
まずLEDを配置します。
LEDには極性があります。プラス側にプラス、マイナス側にマイナスを接続しないと光りません。
嬉しい事にプラスとマイナスを間違えても壊れることは滅多にありません。
※ICを逆接続する(極性を間違える)とICが異常に発熱して壊れます。電解コンデンサを逆接続すると盛大に破裂してとても危険です。
LEDの脚を切っていない限り、長い方がアノード(+)、短い方がカソード(ー)となっています。
ダイオード(LEDを含む)記号はAとKを組み合わせた様な形をしています。
Aっぽい側がアノード(Anode)で、Kっぽい側がカソード(英: Cathode、独: Kathode)です。
とりあえず短いマイナス側を横のラインに挿して、長いプラス側を縦の各ラインに挿します。
マイナス側を並べて挿した横のラインを
GNDラインとします。
脚を切って分からなくなった場合は、切ってないLEDと中の構造を比べてみてください。
続いて電流制限抵抗を配置します。
抵抗には極性がありません。ラッキー。
抵抗には無茶苦茶種類があります。
人が読める文字での表記はありません。超アンラッキー。
電流制限抵抗は1kΩを使います。袋から出してどれがどれだか分からなくなった場合は帯の色で判断します。
茶(1)
黒(0)
赤(2)
金(±5%)が1kΩです。10×102±5%を意味します。テスターがあれば慣れないうちはテスターで抵抗値を測っても良いでしょう。
とりあえず脚の生えてる付け根からまげてコの字にしておきます。
LEDのプラス側のラインに片方を挿し、もう片方をICの溝を超えた場所に挿します。
LED側はここまで。
続いてスイッチ側。
スイッチ、抵抗共に極性はありません。ただし、4本あるスイッチの脚のうち
どことどこがつながっているかはtテスター等で事前に確認しましょう。
スイッチの片側をGNDラインに挿します。
プルアップ抵抗を接続します。
プルアップ抵抗は10kΩを使用します。帯色は
茶(1)
黒(0)
橙(3)
金(±5%)の順です。
電流制限抵抗と同じく、脚の生えてる付け根からまげてコの字にしておきます。
スイッチの反対側にプルアップ抵抗の片方を挿します。もう片方はICまたぎの溝を超えた場所に挿します。
このままではプルアップにならないのでブレッドボード用の配線でGNDラインの反対側の横ラインに接続します。
GNDラインの反対側の横ラインを
5Vラインとします。
※4本脚のタクトスイッチが手元に無かったため2本脚を使用しています。
電源供給とLED動作確認
ベースボードとブレッドボードを接続します。
まずGNDと5Vをそれぞれ接続します。
ベースボードの右側の最下段のピン2つがGNDです。
ベースボードの左側の最下段のピン2つが5Vです。
ちょっとお高い配線(黒)でベースボードのGNDとブレッドボードのGNDラインを接続します。
続いて5Vを接続します。
ちょっとお高い配線(赤)をベースボードの5Vピンに挿します。
ベースボードに電源を入れて、5Vの配線をLEDの電流制限抵抗に接触させるとLEDが点灯することを確認できるはずです。
LEDの点灯確認ができたら一度ベースボードから電源を外しておいてください。
LEDの信号線接続
今回使用するプログラムではPE4~7をON-OFF出力として設定しています。
これはベースボード左側の列の3段目4段目に配置されています。
3段目4段目の計4本を
LEDの電流制限抵抗に接続します。
ここで一度動作確認を行います。
パターン1のプログラムを書き込んでください。
ダウンロードは
こちら正しく接続された状態でプログラムを実行するとSW1の切り替えに合わせて追加した4つのLEDが一斉に切り替わるはずです。
スイッチの信号線接続
続いてスイッチの信号線接続を行います。
PA10~13をON-OFF入力として設定しています。
これはベースボード右側の列の6段目7段目に配置されています。
6段目7段目の計4本を
スイッチとプルアップ抵抗が接続されている場所に接続します。
プルアップ用の5Vも接続します。
※接続しないと不可解な動作をします。 パターン2のプログラムを書き込んでください。
ダウンロードは
こちら正しく接続された状態でプログラムを実行すると
何もしていない状態では
LEDが全点灯します。
各スイッチを押すと対応したLEDが消灯します。
これは
プルアップにより、
スイッチを押していない状態がONだと判定されているためです。
get_PortA_bit関数の内部をいじると設定を反転させてスイッチを押した状態をONと判定させることができます。(ダウンロードプログラム100行目)