정보나눔

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

보드 Arduino/Genuino Uno 컴파일 에러뜨는데 뭐가 문제일까요..?
D0Q | 2019-06-23

아두이노:1.8.9 (Windows Store 1.8.21.0) (Windows 10), 보드:"Arduino/Genuino Uno"

In file included from sketch\sketch_jun22a.ino.cpp:1:0:

C:\Users\litti\OneDrive\문서\Arduino\sketch_jun22a\sketch_jun22a.ino: In function 'void loop()':

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:40:14: error: expected unqualified-id before numeric constant

 #define HIGH 0x1

              ^

C:\Users\litti\OneDrive\문서\Arduino\sketch_jun22a\sketch_jun22a.ino:90:24: note: in expansion of macro 'HIGH'

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:41:14: error: expected unqualified-id before numeric constant

 #define LOW  0x0

              ^

C:\Users\litti\OneDrive\문서\Arduino\sketch_jun22a\sketch_jun22a.ino:101:24: note: in expansion of macro 'LOW'

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:40:14: error: expected unqualified-id before numeric constant

 #define HIGH 0x1

              ^

C:\Users\litti\OneDrive\문서\Arduino\sketch_jun22a\sketch_jun22a.ino:111:24: note: in expansion of macro 'HIGH'

exit status 1
보드 Arduino/Genuino Uno 컴파일 에러.

 

라고 오류메세지가 뜹니다. 

arduino ide랑 라이브러리 삭제후 다시 깔아봤는데도 같은현상이 일어납니다

프로필사진

D0Q 2019-06-23 13:24:42

#include <SoftwareSerial.h>
#include <SPI.h>
#include <Wire.h>
#include <SimpleTimer.h>

#define LEDR 5
#define LEDG 6
#define LEDB 7

int CountG = 0;
int CountB = 0;
int CountR = 0;
int CountC = 0;
int CountT = 20;
int ClearT = 100;
int zero_X = 477;
int zero_Y = 476;
int zero_Z = 396;
float GreenLev = 3;
float BlueLev = 8;
float RedLev = 24;
float F = 0;
float X = 0;
float Y = 0;
float Z = 0;
float scale = 1.057;
int x = 0;
int y = 0;
int z = 0;
SimpleTimer timer;

void setup() {
  Serial.begin(9600);
}

void detect_acc()
{
  int x = analogRead(A0);
  int y = analogRead(A1);
  int z = analogRead(A2);
  delay(1);
  float(X) = ((float)x - zero_X) / scale;
  float(Y) = ((float)y - zero_Y) / scale;
  float(Z) = ((float)z - zero_Z) / scale;
  delay(1);
  float(F) = sqrt((X*X)+(Y*Y)+(Z*Z));
  Serial.print(X);
  Serial.print("    ");
  Serial.print(Y);
  Serial.print("    ");
  Serial.println(Z);

  if (F < GreenLev)
  {
    CountC = CountC + 1;
  }
  if (F >= GreenLev and F < BlueLev)
  {
    CountG = CountG + 1;
    CountC = 0;
  }
  if (F >= BlueLev and F < RedLev)
  {
    CountB = CountB + 1;
    CountC = 0;
  }
  if (F >= RedLev)
  {
    CountR = CountR + 1;
    CountC = 0;
  }
}

void loop() {
  timer.setTimeout(25, detect_acc);
  timer.run();
  if(CountG<CountT && CountB<CountT && CountR<CountT && CountC<ClearT){
    digitalWrite(LEDR, HIGH);
    digitalWrite(LEDG, HIGH);
    digitalWrite(LEDB, HIGH);
  }

  else if (CountG == CountT){
    CountG = CountG + 1;
  }

  else if (CountG>CountT && CountB<CountT && CountR<CountT && CountT<ClearT){
    digitalWrite(LEDR, HIGH);
    digitalWrite(LEDG, LOW);
    digitalWrite(LEDB. HIGH);
  }

    else if (CountB == CountT){
    CountB = CountB + 1;
  }


  else if (CountG>CountT && CountB>CountT && CountR<CountT && CountT<ClearT){
    digitalWrite(LEDR, HIGH);
    digitalWrite(LEDG, HIGH);
    digitalWrite(LEDB. LOW);
  }
  
    else if (CountR == CountT){
    CountR = CountR + 1;
  }

   else if (CountG>CountT && CountB>CountT && CountR>CountT && CountT<ClearT){
    digitalWrite(LEDR, LOW);
    digitalWrite(LEDG, HIGH);
    digitalWrite(LEDB. HIGH);
  }
}

소스코드는  위와 같습니다.

프로필사진

kocoafab 2019-06-24 08:23:08

안녕하세요. 

 

loop문 안에 digitalWrite에서  digitalWrite(LEDB. HIGH) 와 같이 , 대신 . 찍혀있는 부분이 있습니다.

 

이부분을 수정해주시면 될 것같습니다.

이전글   |    아두이노에 블루투스와 초음파동시 제어 방법... 2019-06-22
다음글   |    프로세싱 시리얼프린트 문제 2019-06-24