Arduino入門:後編
February 2, 2020•436 words
1. 電気基礎
電気とは?
電気=電子の運動
- 電圧:電気を流せる圧力。単位はボルト[V]。
- 電流:電気の量。1秒間に流れる電気の量。単位はアンペア[A]
- 抵抗:電気を通しにくくする物体、量。単位はオーム[Ω]
電圧・電流・電気の関係 ( オームの法則)
- 電圧 = 抵抗 × 電流
- 電流 = 電圧 ÷ 抵抗
- 抵抗 = 電圧 ÷ 電流
慣例表記
- 電圧:V (Volt)
- 電流:I (Intecity of Current)
- 抵抗:R (Resistance)
電力
電気のエネルギー
- 電圧が高くても供給できる電流が少なければ危険は少ない。例:静電気
- 供給できる電流が多くてても電圧が小さければ危険は少ない。例:モバイルバッテリー
- 電圧が高く供給できる電流量が多くても抵抗値が高ければ危険は少ない。例:ゴム、陶器
じゃあ電気の凄さ(ヤバさ)を表す指標って何?
電気が及ぼす影響量、パワー、エネルギー、仕事量 = 電力。単位はワット[W]
- W = V × I
- W = V × V ÷ R
- W = I × I × R
2. LEDの使い方
参考:https://www.elekit.co.jp/support/faq/1211
参考:https://inagidenshi.shop-pro.jp/?mode=f4
3. Arduinoとは?
C言語風の「Arduino言語」で記述できるマイクロコンピュータ(マイコン)の総称。
wikipedia
Arduino言語でマイコンチップに独自のソフトウェアを書き込み可能。
オープンソースハードウェア。回路図や基板データが公開されており、誰でも作ることが可能。
4. スケッチ
Arduinoにどういう動作をさせるか記述するためのもの。ソフトウェア(コード)。
スケッチの例
#define LED_PIN 13
void setup () {
pinMode (LED_PIN, OUTPUT); // 13番ピンをデジタル出力に設定する
}
void loop () {
digitalWrite (LED_PIN, HIGH); // LEDを点灯する
delay (1000); // 1秒待機する(1000ミリ秒)
digitalWrite (LED_PIN, LOW); // LEDを消灯する
delay (1000); // 1秒待機する
}
- setup(): 最初に1回だけ実行される関数
- loop(): 繰り返し実行される関数。回数は無限
- pinMode(制御するPIN番号, モード): 種類はOUTPUTで出力モード、INPUTで入力モード
- digitalWrite(制御するPIN番号, : 出力はHIGHで5V、LOWで0V
- delay(待ち時間[ms]): 単位はミリセカンド[ms]。1000ms = 1s(秒)
関数リファレンス:http://www.musashinodenpa.com/arduino/ref/
5. ステッピングモーター
ステッピングモータの動作原理
参考:https://dotstud.io/blog/stepper-motor-nefrybt-control/
購入先
http://akizukidenshi.com/catalog/g/gP-07601/
4,000円
6. ステッピングモータドライバ (A4988)
信号パルスとモータ電力パルスを変換。パルスでモータをドライブする。
参考
https://lastminuteengineers.com/a4988-stepper-motor-driver-arduino-tutorial/
購入先
https://www.switch-science.com/catalog/582/
1,393円
7. 接続図
Arduino Uno版
Pololu A-Star 32U4 Micro版 (Arduino Leonardo互換)
8. 演習
ステッピングモーターを実際に動かしてみよう
// https://lastminuteengineers.com/a4988-stepper-motor-driver-arduino-tutorial/
const int dirPin = 2;
const int stepPin = 3;
const int enPin = 4;
const int stepSize = 200;
const int stepRatio = 16;
void setup() {
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enPin, OUTPUT);
digitalWrite(enPin, LOW);
}
void loop() {
digitalWrite(dirPin, HIGH);
for (int x = 0; x < stepSize*stepRatio; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(20);
digitalWrite(stepPin, LOW);
delayMicroseconds(20);
delay(8);
}
digitalWrite(enPin, HIGH);
delay(1000);
digitalWrite(enPin, LOW);
digitalWrite(dirPin, LOW);
for (int x = 0; x < stepSize*stepRatio; x++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(20);
digitalWrite(stepPin, LOW);
delayMicroseconds(20);
delay(1);
}
digitalWrite(enPin, HIGH);
delay(1000);
digitalWrite(enPin, LOW);
}
9. Arduinoの種類
様々な製品があり、互換品は○○duinoと付けられることが多い。製品名に「Arduino」、基板にロゴを付けられるのはArduino財団が提供する製品のみ。(例:Arduino Uno)
Arduino Uno R3 (スイッチサイエンス)
一覧参考:https://blogs.yahoo.co.jp/nobita_rx7/27315465.html
用途に応じてArduinoを選ぶ。
主な選定POINT
- 大きさ
- PIN数
- 制御電圧(5V/3.3V)
- USBコネクタの形状
- USBシリアルの有無
- 無線機能(WiFi/Bluetooth)
- 入手性
- 値段
- CPUクロック≒消費電力
- 各種機能(ADC/PWM/DAC/I2C/SPI/USB)
ユニバでよく使うArduino互換ボード (A-Star 32U4 Micro)
特徴
- Arduino Leonardo互換
- 小さい
- 程よいPIN数
- そこそこ安い (1,652円)
購入場所
https://www.switch-science.com/catalog/1748/
資料
https://www.pololu.com/product/3101
10. その他電子工作であると良いもの
ブレッドボード
部品を載せるためのボード(基板)。はんだごてを使わずに配線可能。ただし強度は低め。展示等で使い続けるのは不向き。テスト、実験、プロトタイプ用。
参考:https://www.denshi.club/cookbook/breadboard.html
購入先: http://akizukidenshi.com/catalog/g/gP-05294/
200円
ジャンパワイヤ (長くて柔らかめ)
ブレッドボードに挿して使用。離れた穴同士を電気的に接続する。取り回しが楽。多めにあると便利。
購入先:https://www.switch-science.com/catalog/57/
492円
ジャンパワイヤ (固定長で硬め)
ブレッドボードに挿して使用。何種類か決まった長さ(穴の間隔)の線が用意されている。硬く直線的に接続できるためコンパクトな配線が可能。
購入先:http://akizukidenshi.com/catalog/g/gP-00288/
400円
ユニバーサル基板
部品を載せるためのボード(基板)。穴同士は一切繋がっていないため、はんだづけする必要がある。その分、ブレッドボードよりも高い強度での制作が可能。様々な大きさがあり、のこぎりで切断できる。ブレッドボードで実験できたら展示用にこの基板で制作するのがおすすめ。
購入先: http://akizukidenshi.com/catalog/g/gP-03230/
11. 心得
- 先行事例がないかネットで調べてみる
- 脳内シミュレーション(思考実験)をする。脳内シミュレーションをやりすぎると何もできなくなるので程々に。手を動かすことが大事
- メーカーや販売元が提供している仕様や資料をよく読むこと。慣れてくるとどこに要点が書いてあるかわかってくる
- 英語だったとしても根気よく読む
- 自分で動かしてみてどういう挙動をするか観察する
- 予想外の動作をして原因がわかればそれは自分だけの知見となる