|
|
int dh = 0;
int pde = 0;
int de = 0;
int ode = 0;
int hi = 0;
int power = 0;
int powerout = 0;
int const trig = 12;
int const echo = 13;
void setup(){
pinMode(3,INPUT);
pinMode(4,INPUT);
pinMode(5,INPUT);
pinMode(6,INPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
Serial.begin(9600);
}
void loop(){
long ch1, ch2, ch3, ch6;
ch3 = pulseIn(5, HIGH);
ch6 = pulseIn(6, HIGH);//receiver input
if(ch6 > 1500){
digitalWrite(trig,LOW);
delayMicroseconds(12);
digitalWrite(trig,HIGH);
delayMicroseconds(12);
digitalWrite(trig,LOW);
ode = pulseIn(echo, HIGH); //[0,7000], ultrasonic ranger input
hi = 0;
digitalWrite(9, HIGH);
delayMicroseconds(ch3);
digitalWrite(9, LOW);
while( ch6 > 1500 ) {
digitalWrite(trig,LOW);
delayMicroseconds(12);
digitalWrite(trig,HIGH);
delayMicroseconds(12);
digitalWrite(trig,LOW);
de = pulseIn(echo, HIGH); //[0,7000], ultrasonic ranger input
de = de - ode + (pde - de);
dh = (de - ode)/de;
powerout = map( de, -3000, 3000, 10, -10) + map(hi, -3000, 3000, 10, -10);
powerout = ch3 + powerout;
pde = de;
hi = hi + dh;
ch6 = pulseIn(6, HIGH);//receiver input
digitalWrite(9, HIGH);
delayMicroseconds(powerout);
digitalWrite(9, LOW);
delayMicroseconds(15000);
}
}
else{
digitalWrite(9, HIGH);
delayMicroseconds(ch3);
digitalWrite(9,LOW);
}
} |
|