ATmega328P-PU とタクトスイッチとFT232 シリアルコンバーター スイッチで負荷をコントロール

ATmega328P-PU と ブレッドボードを使って タクトスイッチに連動した出力信号を出す実験 1

初めて Arduino UNO を使った時、基本スケッチのLEDを点滅させたと思います。

今回は、4番ピン(Digital pin 2) にタクトスイッチを追加して、このタクトスイッチのON/OFFに連動して任意の出力ピンから信号を出して負荷をコントロールしてみましょう。

入力ピンは、4番ピン(Digital pin 2) を使っていますが、スケッチの入力ピン番号を変更する事でその他の入力ピンを使う事も可能です。

今回の実験では、LEDのON/OFFで作動を確認しています このラインは、同様にデジタルデバイスをON/OFFと切り替える操作と同じプロセスであるため これは今後の制御回路の学習の良い練習になると思います。

実験1.タクトスイッチを1回押すと19番ピン (Digital pin 13) から出力信号が出た状態になります。

タクトスイッチをもう一度押すと19番ピン (Digital pin 13)から出ていた信号が止まります。

シンプルな操作で作動する基本的なスケッチです。

1.タクトスイッチを押す→19番ピン (Digital pin 13) から信号を出力する→2.タクトスイッチをもう一度押す→19番ピン (Digital pin 13) の信号が止まる

この様な作動になります。

タクトスイッチの配線は、次のようになります。

今回は、マイコンの 4番ピン(Digital pin 2) を入力にして 19番ピン (Digital pin 13) を出力に設定ていしています。

注:この任意のピン番号は、スケッチの変更で変える事が出来ます。

スケッチの書き込みは、Arduino IDE を使ってください。

下記のスケッチ(点線の間)を Arduino IDE のスケッチボードにカットアンドペーストしてください。

1.ボードの設定(Arduino Uno) 2.ポートの設定 3.書き込み装置 (AVRISP mkⅡ)

設定に問題がなければ、(マイコンに書き込む)ボタンを押してください。

スイッチ1 ————————————-

// constants won’t change. They’re used here to set pin numbers:
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin

// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}

void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
} else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}

——————————————————-

スケッチの説明

—————————————————-

const int buttonPin = 2; // the number of the pushbutton pin   入力ピン 2
const int ledPin = 13; // the number of the LED pin      出力ピン 13

// variables will change:
int buttonState = 0; // variable for reading the pushbutton status 押ボタンステータスを読み込むための変数

void setup() {
// initialize the LED pin as an output:   LEDピンを出力として初期化
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input: プッシュボタンピンを入力として初期化する
pinMode(buttonPin, INPUT);
}

void loop() {
// read the state of the pushbutton value:  押ボタン値の状態を読み取る
buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed. If it is, the buttonState is HIGH: 押しボタンが押されているか確認してください。 そうであれば、タクトスイッチの状態はHIGHです。
if (buttonState == HIGH) {
// turn LED on:  LED点灯
digitalWrite(ledPin, HIGH);
} else {
// turn LED off:   LED消える
digitalWrite(ledPin, LOW);
}
}

——————————————————-

まとめ

今回は、ブレッドボードATmega328P-PU とタクトスイッチとFT232 シリアルコンバーターを使って任意のスイッチで負荷をコントロールする実験1をしました。

スケッチの書き込みが終了したら タクトスイッチを押してください。

***** LEDが点灯状態になります *****

もう一度 タクトスイッチを押して下さい。

***** 点灯状態だったLEDが消えます *****

ブレッドボード上の ATmega328P の19番ピン (D13 ) に異なる機器を付けてコントロールする事も可能です。

今後は この様な スケッチ例を紹介していきます。

スポンサーリンク