안드로이드용

안드로이드용

아이폰용 블루투스4

아이폰용 블루투스4

HM10 문제해결.pdf

자율주행영상 QR

자율주행영상 QR

컨트롤러 주행영상 QR

컨트롤러 주행영상 QR

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(10, 11);  // Rx , Tx

void setup() {
  pinMode(9, OUTPUT); // enable 핀에 high 입력해서 at command 모드로 들어
  digitalWrite(9, HIGH);

  Serial.begin(9600);
  Serial.println("Enter AT Commands:");
  BTSerial.begin(9600);
}

void loop() {
  // pc 출력, HC05 입력코드
  if(Serial.available())  // 아두이노 시리얼 모니터를 통해 데이터를 받음
    BTSerial.write(Serial.read());  // 받은 데이터 HC05에 입력

  // HC05 출력, pc입력 코드
  if(BTSerial.available())  // HC05에서 데이터를 읽어옴
    Serial.write(BTSerial.read());  // 읽은 데이터를 pc(시리얼 모니터)에 입력
}
#define TRIG_PORT   GPIOC
#define TRIG_PIN    GPIO_PIN_0

void HCSR04_TRIG(void)
{
  HAL_GPIO_WritePin(TRIG_PORT, TRIG_PIN, GPIO_PIN_SET);
  delay_us(10);
  HAL_GPIO_WritePin(TRIG_PORT, TRIG_PIN, GPIO_PIN_RESET);

  __HAL_TIM_SET_COUNTER(&htim4, 0);
  __HAL_TIM_ENABLE_IT(&htim4, TIM_IT_CC1);
  __HAL_TIM_ENABLE_IT(&htim4, TIM_IT_CC2);
  __HAL_TIM_ENABLE_IT(&htim4, TIM_IT_CC3);
  __HAL_TIM_ENABLE_IT(&htim4, TIM_IT_CC4);
}
void SonicTask01(void *argument)
{
	for(;;)
	{
		if(autoFlag == 1)
		{
            HCSR04_TRIG_ALL();
            HAL_Delay(10);

			if (autoFlag == 0)
			{
				autostop();
				continue;
			}

			if ((distance_R <= 20 && distance_L <= 20) || distance_M <= 35)
			{
				autostop();

				if (distance_L > distance_R)
					auto_Left();
				else
					auto_Right();
			}
			else if (distance_R <= 15 && distance_L > 20)
				front_Left();
			else if (distance_L <= 15 && distance_R > 20)
				front_Right();
			else
				autofrontBehave();
		}
		osDelay(1);
	}
}

TIM2(PA0) → buzzer