Page 217 - MDP2022-3
P. 217
for(int j=0; j<n; j++){
num = j + j_state;
delay(50);
servo.write(num);
if(num>150)
num=30;
}j_state=num;
}
//RTOS TaskSensor 함수 사용
void TaskSensor( void *pvParameters ) {
digitalWrite(trig,1); //초음파 센서로 거리측정
delay(10);
digitalWrite(trig,0);
duration = pulseIn(echo,1);
distance = (duration*340)/2/10000;
Serial.println("distance = ");
Serial.print(distance);
if(distance > 30) {
rx = 1;
digitalWrite(send1 , 0);
digitalWrite(send2 , 0);
}
else if( distance < 30 && distance >10){
rx=4;
digitalWrite(send1 , 1);
digitalWrite(send2 , 1);
stp=1;
for(int i=0; i<10; i++){ //목을 돌리면서 12도마다 초음파센서로 거리 측정
digitalWrite(trig, 1);
vTaskDelay(10);
digitalWrite(trig, 0);
duration = pulseIn(echo, 1);
distance = (340*duration)/10000/2; //고개를 돌리면서 입력을 다 받고 비교
sen = distance;
ser[i]=sen; //측정한값을 배열에 저장
neck(12);
vTaskDelay(50);
}
for(int f=0; f<10; f++){
for(int d=0; d<10; d++){