C++ esp8266mod板的gps和超声波代码
我使用esp8266mod为gps和超声波编程代码 单独运行每个代码时,代码正常工作,但组合代码时,gps不工作,但超声波给出距离。如果有人能帮我解决这个问题 gps代码和超声波代码 这是我的密码:C++ esp8266mod板的gps和超声波代码,c++,arduino,C++,Arduino,我使用esp8266mod为gps和超声波编程代码 单独运行每个代码时,代码正常工作,但组合代码时,gps不工作,但超声波给出距离。如果有人能帮我解决这个问题 gps代码和超声波代码 这是我的密码: #include <TinyGPS++.h> #include <SoftwareSerial.h> #include <HttpClient.h> #include <ESP8266WiFi.h> #include <WiFiClient.h&
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <HttpClient.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
#define echoPin 16 // attach pin D2 Arduino to pin Echo of HC-SR04
#define trigPin 4 //attach pin D4 Arduino to pin Trig of HC-SR04
// defines variables
long duration; // variable for the duration of sound wave travel
int distance; // variable for the distance measurement
int RXPin = 13;
int TXPin = 0;
int GPSBaud = 9600;
// Create a TinyGPS++ object
TinyGPSPlus gps;
SoftwareSerial gpsSerial(RXPin, TXPin);
long cm, inches;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT); // Sets the trigPin as an OUTPUT
pinMode(echoPin, INPUT); // Sets the echoPin as an INPUT
Serial.println("Ultrasonic Sensor HC-SR04 Test"); // print some text in Serial Monitor
Serial.println("with WeMos ");
gpsSerial.begin(GPSBaud);
delay(2000);
}
void loop()
{
currentMillis = millis();
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin HIGH (ACTIVE) for 10 microseconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance= duration*0.034/2; // Speed of sound wave divided by 2 (go and back)
Serial.println();
Serial.print("Distance: ");
Serial.print(distance);
while (gpsSerial.available() > 0)
if (gps.encode(gpsSerial.read()))
displayInfo();
if (millis() > 5000 && gps.charsProcessed() < 10)
{
Serial.println("No GPS detected");
while(true);
}
}
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}
void displayInfo()
{
if (gps.location.isValid())
{
Serial.print("Latitude: ");
Serial.println(gps.location.lat(), 6);
Serial.print("Longitude: ");
Serial.println(gps.location.lng(), 6);
Serial.print("Altitude: ");
Serial.println(gps.altitude.meters());
}
else
{
Serial.println("Location: Not Available");
}
Serial.println();
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#定义echoPin 16//将针脚D2 Arduino连接到HC-SR04的针脚Echo上
#定义trigPin 4//将插脚D4 Arduino连接到HC-SR04的插脚Trig上
//定义变量
持续时间长;//声波传播持续时间的变量
整数距离;//用于距离测量的变量
int RXPin=13;
int-TXPin=0;
int GPSBaud=9600;
//创建TinyGPS++对象
TinyGPSPlus gps;
软件串行gpsSerial(RXPin、TXPin);
长厘米,英寸;
无效设置(){
Serial.begin(9600);
pinMode(trigPin,输出);//将trigPin设置为输出
pinMode(echoPin,输入);//将echoPin设置为输入
Serial.println(“超声波传感器HC-SR04测试”);//在串行监视器中打印一些文本
Serial.println(“带WeMos”);
gpsSerial.begin(GPSBaud);
延迟(2000年);
}
void循环()
{
当前毫秒=毫秒();
数字写入(trigPin,低电平);
延迟微秒(2);
//将trigPin设置为高(激活)10微秒
数字写入(trigPin,高);
延迟微秒(10);
数字写入(trigPin,低电平);
持续时间=脉冲强度(echoPin,高);
//计算距离
距离=持续时间*0.034/2;//声波速度除以2(来回)
Serial.println();
串行打印(“距离:”);
串行打印(距离);
而(gpsSerial.available()>0)
if(gps.encode(gpsSerial.read()))
displayInfo();
如果(毫秒()>5000&&gps.charsProcessed()<10)
{
Serial.println(“未检测到GPS”);
虽然(正确);
}
}
}
长微秒分秒计(长微秒)
{
返回微秒/29/2;
}
void displayInfo()
{
if(gps.location.isValid())
{
连续打印(“纬度:”);
Serial.println(gps.location.lat(),6);
连续打印(“经度:”);
Serial.println(gps.location.lng(),6);
连续打印(“高度:”);
Serial.println(gps.altime.meters());
}
其他的
{
Serial.println(“位置:不可用”);
}
Serial.println();
}