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++){
   212   213   214   215   216   217   218   219   220   221   222