정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

아두이노 코드들을 합치는데 문제가 있습니다
KMS | 2019-06-04

안녕하세요 아두이노를 공부하는 학생입니다

제가 이번에 미세먼지 센서와 스테핑 모터, 수위센서를 이용하는데 각각의 코드들을 합치는데 어려움이 있습니다.

자세히 설명해주시면 감사드립니다!!!

 

#include <SoftwareSerial.h> 
#include <Stepper.h>
 
SoftwareSerial Serial1(2,3); 
///////////////////수위센서 시리얼 필요없을거같은데 어떻게 할까요?//////////////////
const int stepsPerRevolution = 200;
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
 
 long pmcf10=0; 
 long pmcf25=0;
 long pmcf100=0;
 long pmat10=0;
 long pmat25=0; 
 long pmat100=0; 
 
int analogPin = 0; 
int val = 0;
  
//////int stepMotorOn = 0;////////////
 
 
char buf[50];
void setup()
 {
  myStepper.setSpeed(60);
 
  Serial.begin(9600); 
  Serial1.begin(9600);
 
void loop()
 {
 int count = 0; 
 
unsigned char c; 
unsigned char high;
 
Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);
 
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500);
 
while (Serial1.available()) 
c = Serial1.read(); 
 
if((count==0 && c!=0x42) || 
   (count==1 && c!=0x4d))
{
 Serial.println("check failed"); 
break; 
}
 
if(count > 23){ 
Serial.println("complete"); 
 
}
else if(count == 4 || count == 6 
   || count == 8 || count == 10 
   || count == 12 || count == 14 ) 
high = c; 
 
else if(count == 5)
{
pmcf10 = 256*high + c; 
 
Serial.print("CF=1, PM1.0=");
Serial.print(pmcf10); 
Serial.println(" ug/m3"); 
}
else if(count == 7)
{
pmcf25 = 256*high + c; 
Serial.print("CF=1, PM2.5="); 
Serial.print(pmcf25); 
Serial.println(" ug/m3");
 } 
 
else if(count == 9)
{
pmcf100 = 256*high + c; 
Serial.print("CF=1, PM10=");
 Serial.print(pmcf100); 
 Serial.println(" ug/m3"); 
}
else if(count == 11)
{
pmat10 = 256*high + c;
Serial.print("atmosphere, PM1.0="); 
Serial.print(pmat10);
Serial.println(" ug/m3");
 } 
 
else if(count == 13)
{
pmat25 = 256*high + c;
Serial.print("atmosphere, PM2.5="); 
Serial.print(pmat25); 
Serial.println(" ug/m3"); 
}
 
val = analogRead(analogPin);   // analogPin 의 변화값(전류값)을 읽음
 
  if (val > 500)                 // val 값이 100이 넘으면 (전류가 100이 넘으면)
  {                               
    Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);
  }
  
  else                           // val 값이 100이하면 (전류가 100이하면)
  {
   Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500);
  }
  
    Serial.println(val);      // 시리얼모니터에 전류값 표시
    delay (500);
}
 
오류 메시지는 이렇게 뜨네요ㅜㅜ  왜 이런 오류가 뜨는지 알려주시면 감사드립니다!!!!!!
 
DHT11:4: error: conflicting declaration 'SoftwareSerial Serial1'
 
 SoftwareSerial Serial1(2,3); 
 
                       ^
 
In file included from C:\Users\IT\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/Arduino.h:263:0,
 
                 from sketch\DHT11.ino.cpp:1:
 
C:\Users\IT\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\cores\esp8266/HardwareSerial.h:201:23: error: 'Serial1' has a previous declaration as 'HardwareSerial Serial1'
 
 extern HardwareSerial Serial1;
 
                       ^
 
exit status 1
conflicting declaration 'SoftwareSerial Serial1'
 
잘못된 라이브러리가 C:\Program Files (x86)\Arduino\libraries\examples에서 발견: C:\Program Files (x86)\Arduino\libraries\examples
 
이전글   |    아두이노 관련 질문 2019-06-04
다음글   |    서보모터 및 LCD출력에 관한 질문입니다. 2019-06-05