2009年6月8日月曜日

関数・・・ってなんだっけ?

関数は、ひとつのスケッチのなかで、同じ操作を繰り返して行いたいときに便利です。
関数名(){
 操作手順;
}
のような形で記述します。

FETでモータをコントロールするロボットを前進させる関数を考えてみます。
前進は、左右のモータを同じ力で回転させれば良いですね。できれば、指定した時間前進するようにしたいです。

forward(前進時間){
 右モータON;
 左モータON;
 指定時間待つ;
}

のような形にしてみます。

実際のプログラムでは

 

int RmotorPin = 3; // Right FET connected to analog pin 3
int LmotorPin = 5; // Left FET connected to analog pin 5
int Rpower = 100;
int Lpower = 100;

void setup() // run once, when the sketch starts
{
pinMode(RmotorPin, OUTPUT); // sets the analog pin as output
pinMode(LmotorPin, OUTPUT);
}

void loop() // run over and over again
{
forward(1000);
stop(100); // wait
forward(500);
stop(200); // wait
}

void forward(int t){
analogWrite(RmotorPin, Rpower); // sets the Motor on
analogWrite(LmotorPin, Lpower);
delay(t);
}

void stop(int t){
analogWrite(RmotorPin, 0); // sets the Motor off
analogWrite(LmotorPin, 0);
delay(t);
}



のようになります。
前進とストップだけです。
左折・右折も同様に考えてみましょう。
パワーも関数で変えられるようにするのも良いアイデアです。
試してみてください。

0 件のコメント:

コメントを投稿