본문 바로가기

프로그래밍/아두이노03- 연습

아두이노 개발 연습 - arduino + bluetooth + motor driver


















두이노uno r3 + bluetooth + Sonar sensor(MAX SONAR) + motor driver(l293d)


//


#include <SoftwareSerial.h>



  #define led 5

  #define led2 4

  #define BUFF_SIZE 256 

  #define motorEnable 6

#define motor1 7

#define motor2 8



  float Inch=0.00;

float cm=0.00;

int SonarPin=A0;

int  sensorValue;

  SoftwareSerial BTSerial(2, 3); // SoftwareSerial(RX, TX)

  uint8_t buffer[BUFF_SIZE];


void setup(){

  BTSerial.begin(9600); 

  Serial.begin(9600); 

  pinMode(led, OUTPUT);

  pinMode(led2, OUTPUT);

   pinMode(motor1,OUTPUT);

   pinMode(motor2,OUTPUT);

pinMode(SonarPin,INPUT);

   analogWrite(motorEnable,0);

  digitalWrite(motor1,HIGH);

  digitalWrite(motor2,LOW);

}



void loop(){

  while(BTSerial.available()){ // 블루투스로 데이터 수신

    byte data = BTSerial.read(); // 수신 받은 데이터 저장

    

     Serial.println(data); 

    switch(data){

      case '1' :

        digitalWrite(led, HIGH);

  analogWrite(motorEnable,1023);

  

        break;

      case  '2' :

        digitalWrite(led2, HIGH);

  analogWrite(motorEnable,1023);

  delay(100);

  analogWrite(motorEnable,400);

        

        break;

      case '0' :

        digitalWrite(led2, LOW);

        digitalWrite(led, LOW);

  analogWrite(motorEnable,50);

  analogWrite(motorEnable,0);

        break;

      default :

        break;

    }

  }

  

  

  char pass[10];

sensorValue=analogRead(SonarPin);

delay(0);

Inch= (sensorValue*0.497);

cm=Inch*2.54;


dtostrf(cm, 5, 2, pass);

  for(int i=9;i>0;i--){

    pass[i] = pass[i-1];

  }

  pass[0] = ' ';

  Serial.println(pass); // 수신 받은 데이터 저장

  BTSerial.write(pass);

  

  delay(100);

}