定数と変数、関数を使って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 件のコメント:
コメントを投稿