かわせみのページ
マイコンを使ってみよう
マイコンとは
機械を操作するコンピュータチップ
専門用語
抵抗・・電気を流れにくくするもの
コンデンサ・・・電気を蓄えたり放出したりする電子部品。直流を通さないで絶縁するはたらきもある。
トランジスタ・・・電気の流れをコントロールする部品。
ダイオード・・・電気の流れを一方通行にする部品。
Lチカ・・・LEDをチカチカさせることを
LEDは長い方が+、短い方がーで、+はアノード、ーはカソードと呼ぶ
LEDとマイコンをつなげてみる
LEDの
長い方(+)を13番ピン
短い方(ー)をGNDに
につなげます。
下記のプログラムをアルディーノに書き込む
void setup() {
// put your setup code here, to run once:
pinMode(13,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13,LOW);
delay(500);
}
アルディーノの画面左上にある矢印ボタンを押す
Arduinoのスケッチを作成するとという2つのプログラムがもともと書いてある。
setup・・・最初に一回だけ実行されるプログラム
loop・・・ずっと繰り返し実行されるプログラム
{ 〜 }の間がそれぞれのプログラム
Arduinoではifやforのように{}でくくるループや条件分岐の場合を除き、基本的に命令文の最後には;(セミコロン)をつける
デジタルピン(1〜13)の設定
・pinMode・・・指定したピンを入力用に使うのか、出力用に使うのかを設定する
LEDを点灯させるために13番ピンから電気を流したい(出力したい)ので、pinMode(13,OUTPUT);
・digitalWrite:デジタルピンの出力をLOWかHIGHで設定する。
LOW→0V
HIGH→5V
が出力されます。
つまり、digitalWrite(HIGH)でLEDがつき、digitalWrite(LOW)でLEDが消える事になります。
delayは指定した時間待つ命令
単位はミリ秒(ms)
delay(1000)→1秒待つ (1000/1000=1)
delay(100)→0.1秒待つ(100/1000=0.1)
delay(10)→0.01秒待つ(10/1000=0.01)
if (条件式){
処理内容1 //条件式を満たす場合にのみ実行する
}
else{
処理内容2 //条件式を満たさない場合にのみ実行される
}
明るさセンサーを使う
ブレッドボードを使って
Arduinoの5Vー10kΩの抵抗ーCdSセルーArduinoのGNDの流れができるような配線をする。
次に、10kΩの抵抗とCdSセルが繋がっている列からArduinoのA1ピンに配線します。
今回の課題は、LEDを暗くなった点灯させ、明るくなったら消灯するプログラムを書くこと
If文と明るさセンサーのコードを組み合わせる。
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int val=0;
val=analogRead(1);
Serial.println(val);
delay(300);
if(val<100){
// もしiが10より小さかったら間隔は0.3秒
digitalWrite(13,LOW);
}else{
// そうじゃなかったら間隔は2秒
digitalWrite(13,HIGH);
}
}