2009年6月10日水曜日

スケッチを、ちょっと手直し

まえと同じ内容ですが
定数と変数、関数を使ってloopの中をすっきり・・・という印象です。

 

/* 定数の設定 */
#define RmotorPin 3 // Right FET connected to analog pin 3
#define LmotorPin 5 // Left FET connected to analog pin 5
#define photPin 0
#define ledPin 13

/* 変数の宣言 */
int pt = 0;
int Rpower = 100;
int Lpower = 100;

/* 関数のプロトタイプ宣言 */
int readPhot(int);
void right(int);
void left(int);

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

void loop() // run over and over again
{
pt = readPhot(photPin);
if(pt > 80)
right(50);
else
left(50);
}

int readPhot(int p){
int val = 0;
digitalWrite(ledPin, HIGH);
delay(5);
val = analogRead(p);
digitalWrite(ledPin, LOW);
Serial.print(val);
Serial.print("\n");
return val;
}

void right(int t){
analogWrite(RmotorPin, 0); // sets the LeftMotor on
analogWrite(LmotorPin, Lpower);
delay(t);
}

void left(int t){
analogWrite(RmotorPin, Rpower); // sets the RightMotor on
analogWrite(LmotorPin, 0);
delay(t);
}




どうでしょう?
#define
という部分が定数の設定です。
一度決めたら変化しないものは、これで設定できます。
loop
の部分も
センサ読んで
判断する
という内容が読みやすいと思いませんか?

0 件のコメント:

コメントを投稿