そもそもArduinoというのは業界ではマイコン系の開発分野に入り、一般には組み込み系と呼ばれます。組み込み系というの、こういう電子ボードを主体とした、ある特定の機能に特化した装置を開発する分野で、作ったプログラムをマイコンボードに組み込んで一体とした装置を完成させるために、組み込み系と呼ばれます。
マイコンプログラミングのやること
マイコンもパソコンも、コンピュータとプログラミングは全部同じなのですが、ここではArduinoをわかりやすい例として「マイコンプログラミングのやること」としてまとめてみます。
CPUとポートは何ができるのか?
CPUができるこのメインは「計算」と「記憶」と「入出力」です。
「計算」と「記憶」はCPUの内部で全部できますが、「入出力」は外部からの入力や外部への出力となるため、ポートを通して行うことになるだけです。
つまり、外部との「入出力」と「記憶」と「計算」だけがCPUの仕事となり、これをうまく使っていろいろなプログラムを作ることがマイコンのプログラミングなのです。
入出力が主体となる
組み込み系(装置)には必ずボタンや表示機、LEDや音など人間が操作したり、人間に表現したりする部分があります。これらが「入出力」であり、これらをベースにいろいろな動きを作っていくことになります。
入出力とはいったい何なのか…
マイコン(CPU)における入出力はとっても単純で、ポートから電気を出力するのか?ポートに入ってきた電気を検知するのか?これだけなのです。
その電気とは、乾電池と同じ直流の電気で、電圧は5Vまたは3.3Vというとても小さな電圧です。
5Vは1.5Vの乾電池3本+0.5V、3.3Vは1.5Vの乾電池2本+0.3Vです。
5Vまたは3.3Vというのは、メーカが作るCPUと型式によってことなりますが、CPUの電圧はなぜだかこの2つしかありません。
では、ArduinoUnoのあるポートから5Vを出力するとどうなるのでしょうか?
はい!そこにもし5Vで光るLEDや電球がついていればピカっと光ります。
逆に、ArduinoUnoのあるポートに5Vを入力するとどうなるでしょうか?
はい!CPUには何も置きませんが、プログラムでは5Vが入力されたことはわかります。
Arduino LED点灯のプログラムを理解
さて、ちょっとCPUの動きが理解できたところで、前に作ったLEDのプログラムを見てみましょう!
このプログラムは大きく分けると1~4行目、6~9行目の2つの機能(関数)に分かれています。
そして、この2つの機能はArduinoのプログラムには必ず最低限必要な機能(関数)です。
※C言語の文法については別途お勉強してください。
void setup()
void setup(){ //put you cord here,to run once pinMode(13,OUTPUT); }
この関数は、これから使うArduinoの動きを設定する命令を書く関数です。
必ずArduinoのプログラムに一つだけ必要です。
Arduinoに電源が投入されたときに一番最初に1回だけこの関数は動きます。
このプログラムでは、pinModeという命令を使い、ポートにあるピン(足)の13番を出力にしています。OUTPUTをINPUTにすれば入力に設定できます。
void loop()
void loop(){ //put your main code here,to run rpeatedly digitalWrite(13,HIGH) ; }
この関数は、Arduinoプログラムのメイン部分で、ずっと繰り返される部分です。
必ずArduinoのプログラムに一つだけ必要です。
このプログラムでは、digitalWriteという命令を使い、ポートにあるピン(足)13番にHIGH(5V)を出力します。HIGHをLOWにすれば0Vが出力されます。
※このようにArduinoではとっても簡単に入出力を扱えるようになっています。
Arduino Lチカプログラムの理解
loopの中では LOW と HIGH が delay(1000);(1000ミリ秒=1秒)まってから動いています。
それがloopによって何回も繰り返されているので、LEDがチカチカとLチカするのです。