- //
- /*#include <SoftwareSerial.h>
- SoftwareSerial mySerial(10, 11); // RX, TX
- void setup() {
- Serial.begin(9600);
- mySerial.begin(9600);
- }
- void loop() {
- while(mySerial.available()){
- Serial.write(mySerial.read());
- }
- while(Serial.available()) {
- mySerial.write(Serial.read());
- }
- }*/
- #include <SoftwareSerial.h>
- int m1=10;
- int m2=11;
- int m3=6;
- int m4=9;
- #define TRIG 7
- #define ECHO 8
- float cm;
- float tmp;
- float juli;
- int zhi;
- int i;
- int c;
- char BT_COM;
- char BT_CON;
- void setup()
- {
- pinMode(m1,OUTPUT);
- pinMode(m2,OUTPUT);
- pinMode(m3,OUTPUT);
- pinMode(m4,OUTPUT);
-
- Serial.begin(9600);
- // mySerial.begin(9600);
- pinMode(TRIG,OUTPUT);//觸發輸入端,默認低電平,輸入一個時常超過10μs的高電平脈沖即可觸發模塊發射一組超聲波脈沖
- pinMode(ECHO,INPUT);//回聲輸出端,默認低電平,模塊發射超聲波脈沖結束后,回聲端就會輸出高電平,直到監聽到所有超聲波脈沖的回聲(或監聽超時)后才會重新輸出低電平
- }
- void distance()//定義距離
- {
- digitalWrite(TRIG,LOW);
- delayMicroseconds(2);
- digitalWrite(TRIG,HIGH);
- delayMicroseconds(10);
- digitalWrite(TRIG,LOW);
- tmp=float(pulseIn(ECHO,HIGH));
- cm=(tmp*17)/1000;
- Serial.print("Echo=");
- Serial.print(tmp);
- Serial.print(",距離=");
- Serial.print(cm);
- Serial.println("cm");
- juli=cm;
- }
- void pao()
- {
- analogWrite(m1,i);
- analogWrite(m2,0);
- analogWrite(m3,i);
- analogWrite(m4,0);
- }
- void pao1()
- {
- analogWrite(m1,255);
- analogWrite(m2,0);
- analogWrite(m3,255);
- analogWrite(m4,0);
- }
- void shache()//定義剎車
- {
- analogWrite(m1,0);
- analogWrite(m2,0);
- analogWrite(m3,0);
- analogWrite(m4,0);
-
- }
- void youzhuan()
- {
-
- analogWrite(m1,c);
- analogWrite(m2,0);
- analogWrite(m3,0);
- analogWrite(m4,c);
- }
- void zuozhuan()
- {
- analogWrite(m1,0);
- analogWrite(m2,c);
- analogWrite(m3,c);
- analogWrite(m4,0);
- }
- void houtui()
- {
- analogWrite(m1,0);
- analogWrite(m2,i);
- analogWrite(m3,0);
- analogWrite(m4,i);
-
- }
- void youxuanzhuan()
- {
- analogWrite(m1,255);
- analogWrite(m2,0);
- analogWrite(m3,130);
- analogWrite(m4,0);
- }
- void zuoxuanzhuan()
- {
- analogWrite(m1,130);
- analogWrite(m2,0);
- analogWrite(m3,255);
- analogWrite(m4,0);
- }
- void youzuozhuan()
- {
- analogWrite(m1,0);
- analogWrite(m2,130);
- analogWrite(m3,0);
- analogWrite(m4,255);
- }
- void youhouzhuan()
- {
- analogWrite(m1,0);
- analogWrite(m2,255);
- analogWrite(m3,0);
- analogWrite(m4,130);
- }
- void bizhang()
- {
- while(1)
- {
-
- distance();
- if(juli<=60)
- {
- if(juli<45)
- {
- youzhuan();
- delay(300);
- distance();
- if(juli<10)
- {
- shache();
- houtui();
- delay(200);
- }
-
-
- }
- else
- pao();
-
- }
- else
- pao();
-
- }
-
- }
-
-
- void loop()
- {
- while(1)
-
- {
-
- if(Serial.available())
-
- {
- BT_COM=Serial.read();
-
- if(BT_COM =='0')
- {
- zhi=0;
- i=155;
- }
- else
- if(BT_COM =='1')
- {
- zhi=1;
- i=175;
- }
- else
- if(BT_COM =='2')
- {
- zhi=2;
- i=195;
- }
- else
- if(BT_COM =='3')
- {
- zhi=3;
- i=225;
- }
- else
- if(BT_COM =='4')
- {
- zhi=4;
- i=255;
- }
- else
- if(BT_COM =='5')
- {
- zhi=5;
- c=155;
- }
- else
- if(BT_COM =='6')
- {
- zhi=6;
- c=175;
- }
- else
- if(BT_COM =='7')
- {
- zhi=7;
- c=195;
-
- }
- else
- if(BT_COM =='8')
- {
- zhi=8;
- c=225;
- }
- else
- if(BT_COM =='9')
- {
- zhi=9;
- c=255;
- }
- Serial.print(",a=");
- Serial.print( BT_COM);
- Serial.print(",值=");
- Serial.print(zhi);
- Serial.print(",i=");
- Serial.print(i);
- Serial.print(",c=");
- Serial.print(c);
- switch(BT_COM)
- {
- case'a': pao();
- break;
- case'b': houtui();
- break;
- case'c': zuozhuan();
- break;
- case'd': youzhuan();
- break;
- case'f': shache();
- break;
- case'h': bizhang();
- break;
- case 'g': zuoxuanzhuan();
- break;
- case 'e': youxuanzhuan();
- break;
- case 'l': youhouzhuan();
- break;
- case 'k': youzuozhuan();
- break;
-
- }
-
-
- }
-
-
-
- }
- }
-
復制代碼
|