戻る

ブロックコードの詳細

//This c++ code is generated by PictoBlox

//Gloabl Variables are declared here
float average;
float threshold;
float val_left;
float val_right;
float val1;
float val2;
float valueX;
float valueY;

//User Defined Functions
void forward() {
	digitalWrite(15, true);
	digitalWrite(2, false);
	digitalWrite(18, true);
	digitalWrite(19, false);
}
void backward() {
	digitalWrite(15, false);
	digitalWrite(2, true);
	digitalWrite(18, false);
	digitalWrite(19, true);
}
void stop() {
	digitalWrite(15, false);
	digitalWrite(2, false);
	digitalWrite(18, false);
	digitalWrite(19, false);
}

void setup() {
	//put your setup code here, to run once:
	pinMode(39, INPUT);
	pinMode(36, INPUT);
	pinMode(15, OUTPUT);
	pinMode(2, OUTPUT);
	pinMode(18, OUTPUT);
	pinMode(19, OUTPUT);
	pinMode(34, INPUT);
	pinMode(35, INPUT);
	
	
	average = 150;
	threshold = 4;
	val_left = 0;
	val_right = 0;
}

void loop() {
	//put your main code here, to run repeatedly:
	
	
	for(int i = 0; i < average; i++) {
		val1 = analogRead(39);
		val2 = analogRead(36);
		val_left = (val_left + val1);
		val_right = (val_right + val2);
	}
	val_left = (val_left / average);
	val_right = (val_right / average);
	if(((val_left > threshold) && (val_right < threshold))) {
		forward();
		delay(0.2 * 1000);
	}
	else {
		if(((val_right > threshold) && (val_left < threshold))) {
			backward();
			delay(0.2 * 1000);
		}
		else {
			stop();
		}
	}
	valueX = analogRead(34);
	valueY = analogRead(35);
	if((valueY < 50)) {
		forward();
	}
	else {
		if((valueY > 3000)) {
			backward();
		}
		else {
			stop();
		}
	}
}