手順
- disitalWriteで光るよう、LEDの回路をつくります。
- Arudinoの3.3Vをブレッドボードの+ラインにつなぐ
- ArudinoのGNDをブレッドボードの-ラインにつなぐ
-LEDの端子の短いほうをGND
- LEDの端子の長い方を13番にさす。
- タクトスイッチを以下のようにつなぎます。
- Digital 2番からの線をボタンの右側につなぎ、さらに右側に10KΩ抵抗(プルダウン抵抗/ノイズを防ぐ)をつなぎ、GNDからの線をつなぐ。
- 3.3Vをつないでいる+のラインから、
ボタンの左側につなぐ
※タクトスイッチの正面に注意。足の付根が見えている方を手前にします。
- Arudinoを接続し、Arudino IDEを起動します
- スケッチ例からファイル-スケッチ例- Digital- "Button" を選びます
- コンパイルします
- ボタンをおすとLEDが光ることを確認してください。
ここではif else 文(日本語リファレンス)がつかわれています。
光ることを確認したら、コードに手を加えてみます。光る長さを伸ばしてみましょう。
- ソースコードに" delay(3000); " と書き足し、コンパイルします。
- ボタンを押すと、3秒LEDが光ることを確認してください。delayは、タイマー関数です。1000で1秒、制御を遅らせます。
関数リファレンス:
https://garretlab.web.fc2.com/arduino_reference/language/functions/time/delay.html
if文と論理積を使います。
"button.ino"に追加します。
やること
1つ前のボタンの状態を記録する変数と、LEDの状態を決める変数を加え、ボタンの状態を記録し、LEDの状態に反映させます。
実際のコードは以下。赤字が新しく付け加えたもの。
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
int oldState = 0; //1つ前のボタンの状態を記録する変数
int currentState = 0; //LEDの状態を決める変数。
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);
if(buttonState == HIGH && oldState == LOW){ //もしスイッチがおされていて、その前はおされていなかったら
currentState = 1 - currentState; //LEDの状態を決める変数。currentStateは0か1かの状態。1が代入されていたら0に、0のままであれば1になる計算式
delay(10); //チャタリング防止
}
if(buttonState == LOW && oldState == HIGH){ //スイッチが離された状態を現在の状態に代入
delay(10); //チャタリング防止
}
oldState = buttonState; //現在のボタンの状態を1つ前のボタンの状態に保存
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (currentState == 1) {
// turn LED on:
digitalWrite(ledPin, HIGH);
} else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
-LEDをはずします
- MOSFET(2SK2232), 整流用ダイオード(1N4007), DCモーターを以下のようにブレッドボードに刺します
MOSFETの右側にGNDをつなげます
MOSFETの中央に、ブレッドボードの+からジャンプワイヤをつなげたダイオード(灰色の線がない方)をつなげます。
ダイオードの向きに注意します。 MOSFETの中央には、さらにモーターをつなげます。
ダイオードの灰色の線があるほうはブレッドボードの空いた場所にさし、ブレッドボードの+につなげます
MOSFETの左側にDigital 13ピンをつなげます。
LEDの制御と同じプログラムで動きます(ボタンオンオフのときは、1秒以上待つ処理をいれてあげること 例: delay(100);)