Redefinition of // Error

Good Morning. I am having a problem with my code, I need a variable, that I call mem to change along the program, but it always gives me these two erros:

A_funceminar_sem_Sonar.ino:10:5: error: redefinition of 'int mem'
A_funceminar_sem_Sonar.ino:1:5: error: 'int mem' previously declared here
Error compiling.

int mem;

int analogPin = A3;  // Luz
int analogPin1 = A4;
int analogPin2 = A5;

int val = 0;
int val_1 = 0;
int val_2 = 0;
int mem = 0;



void setup() {
  
  pinMode(analogPin, INPUT);
  pinMode(analogPin1, INPUT);
  pinMode(analogPin2, INPUT);


  pinMode(13, OUTPUT); // Motor Rodas
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT); // PWM
  
  pinMode(5, OUTPUT); // Motor Inclina
  pinMode(6, OUTPUT);
  pinMode(9, OUTPUT); // PWM
  
  pinMode(7, OUTPUT); // Motor Elevador
  pinMode(8, OUTPUT);
  pinMode(10, OUTPUT); // PWM
}

void loop() {
  

  val = analogRead(analogPin);
  val_1 = analogRead(analogPin1); // Linha do Meio
  val_2 = analogRead(analogPin2);
  
  digitalWrite(13, HIGH);  
  digitalWrite(12, LOW);
  analogWrite(11, 120);
  
  delay(1);
  
  if(val_1 >= 700 && val >= 700 && val_2 >= 700){
        
        digitalWrite(13, LOW);  
        digitalWrite(12, LOW);
        analogWrite(11, 0);
        
        delay(1000);
        
        if (mem == 0) {  // Com peça
        
                    delay(1000);
                    
                    mem = 1;

                    digitalWrite(7, HIGH);   // Sobe Elevador
                    digitalWrite(8, LOW);
                    analogWrite(10, 255);
                    
                    delay(3500);
                    
                    digitalWrite(7, LOW);   // Para Elevador
                    digitalWrite(8, LOW);
                    analogWrite(10, 0);
                    
                    delay(1000);
                    
                    digitalWrite(5, HIGH);   // Inclina
                    digitalWrite(6, LOW);
                    analogWrite(9, 255);
                    
                    delay(1000);
                    
                    digitalWrite(5, LOW);   // Para Inclina
                    digitalWrite(6, LOW);
                    analogWrite(9, 0);
                    
                    delay(1000);
                    
                    digitalWrite(13, HIGH);
                    digitalWrite(12, LOW);
                    analogWrite(11, 120);
                    
                    delay(2000);}
            
        else {  // Sem Peça

                    delay(1000);

                    mem = 0;
                    
                    digitalWrite(7, LOW);   // Desce Elevador
                    digitalWrite(8, HIGH);
                    analogWrite(10, 255);
                    
                    delay(3000);
                    
                    digitalWrite(7, LOW);   // Para Elevador
                    digitalWrite(8, LOW);
                    analogWrite(10, 0);
                    
                    delay(1000);
                    
                    digitalWrite(5, LOW);   // Inclina
                    digitalWrite(6, HIGH);
                    analogWrite(9, 255);
                    
                    delay(1000);
                    
                    digitalWrite(5, LOW);   // Para Inclina
                    digitalWrite(6, LOW);
                    analogWrite(9, 0);
                    
                    delay(1000);
                    
                    digitalWrite(13, HIGH);
                    digitalWrite(12, LOW);
                    analogWrite(11, 120);
                    
                    delay(2000);}
                    }
                    }

I did search on google and stuff, but I didnt find any solution. It really looks easy to solve, but neither me or my teacher knows the problem.

I hope you guys can help me. Thank you.

The answer's in the error message; you declare "mem" twice...

int mem; //<<<<<<<<<<<<<<<<<<<<<<<<

int analogPin = A3;  // Luz
int analogPin1 = A4;
int analogPin2 = A5;

int val = 0;
int val_1 = 0;
int val_2 = 0;
int mem = 0; //<<<<<<<<<<<<<<<<<<

But I need to say to the program to start mem with a value. That is 0. Is there a way, where I can tell him to have mem = 0 outside of the loop?

Just leave out the first one......

I have tried that. And it leaves even more erros.

Just delete this :

int mem;

And it leaves even more erros.

What errors ?

After removing the firs line, code compiles without any errors. So what did you do ?

And I sugest you to have a look at BlinkWithoutDelay example from Arduino IDE. You have a ton of delay() ...

Arduino: 1.6.0 (Windows 7), Board: "Arduino Uno"

A_funceminar_sem_Sonar.cpp.o: In function `setup':
/Arduino/A_funceminar_sem_Sonar.ino:15: undefined reference to `pinMode'
/Arduino/A_funceminar_sem_Sonar.ino:16: undefined reference to `pinMode'
/Arduino/A_funceminar_sem_Sonar.ino:17: undefined reference to `pinMode'
/Arduino/A_funceminar_sem_Sonar.ino:20: undefined reference to `pinMode'
/Arduino/A_funceminar_sem_Sonar.ino:21: undefined reference to `pinMode'
A_funceminar_sem_Sonar.cpp.o:/Arduino/A_funceminar_sem_Sonar.ino:22: more undefined references to `pinMode' follow
A_funceminar_sem_Sonar.cpp.o: In function `loop':
/Arduino/A_funceminar_sem_Sonar.ino:36: undefined reference to `analogRead'
/Arduino/A_funceminar_sem_Sonar.ino:37: undefined reference to `analogRead'
/Arduino/A_funceminar_sem_Sonar.ino:38: undefined reference to `analogRead'
/Arduino/A_funceminar_sem_Sonar.ino:40: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:41: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:42: undefined reference to `analogWrite'
/Arduino/A_funceminar_sem_Sonar.ino:44: undefined reference to `delay'
/Arduino/A_funceminar_sem_Sonar.ino:48: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:49: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:50: undefined reference to `analogWrite'
/Arduino/A_funceminar_sem_Sonar.ino:52: undefined reference to `delay'
/Arduino/A_funceminar_sem_Sonar.ino:56: undefined reference to `delay'
/Arduino/A_funceminar_sem_Sonar.ino:60: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:61: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:62: undefined reference to `analogWrite'
/Arduino/A_funceminar_sem_Sonar.ino:64: undefined reference to `delay'
/Arduino/A_funceminar_sem_Sonar.ino:66: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:67: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:68: undefined reference to `analogWrite'
/Arduino/A_funceminar_sem_Sonar.ino:70: undefined reference to `delay'
/Arduino/A_funceminar_sem_Sonar.ino:72: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:92: undefined reference to `delay'
/Arduino/A_funceminar_sem_Sonar.ino:96: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:97: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:98: undefined reference to `analogWrite'
/Arduino/A_funceminar_sem_Sonar.ino:100: undefined reference to `delay'
/Arduino/A_funceminar_sem_Sonar.ino:102: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:103: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:104: undefined reference to `analogWrite'
/Arduino/A_funceminar_sem_Sonar.ino:106: undefined reference to `delay'
/Arduino/A_funceminar_sem_Sonar.ino:108: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:109: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:110: undefined reference to `analogWrite'
/Arduino/A_funceminar_sem_Sonar.ino:112: undefined reference to `delay'
/Arduino/A_funceminar_sem_Sonar.ino:114: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:115: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:116: undefined reference to `analogWrite'
/Arduino/A_funceminar_sem_Sonar.ino:118: undefined reference to `delay'
/Arduino/A_funceminar_sem_Sonar.ino:120: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:121: undefined reference to `digitalWrite'
/Arduino/A_funceminar_sem_Sonar.ino:122: undefined reference to `analogWrite'
/Arduino/A_funceminar_sem_Sonar.ino:124: undefined reference to `delay'
C:\Users\Stive\AppData\Local\Temp\build3745549081378164534.tmp/core.a(main.cpp.o): In function `main':
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/main.cpp:32: undefined reference to `init'
collect2: error: ld returned 1 exit status
Error compiling.

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.

This happens when I delete ONLY int mem

Arduino: 1.6.0 (Windows 7), Board: "Arduino Uno"

A_funceminar_sem_Sonar.ino:1:5: error: expected unqualified-id before '=' token
A_funceminar_sem_Sonar.ino: In function 'void loop()':
A_funceminar_sem_Sonar.ino:54:13: error: 'mem' was not declared in this scope
Error compiling.

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.

This happens when I delete ONLY int mem = 0

Read carefully what we said .
Delete ONLY int mem;

const byte analogPin = A3;  // Luz
const byte analogPin1 = A4;
const byte analogPin2 = A5;

int val;
int val_1;
int val_2;
int mem;

All global variables are initialised to zero by crt0, unless another value is specified.

I commented out int mem; from your code and it compiles for me.

JimboZA:
I commented out int mem; from your code and it compiles for me.

Same for me. IDE 1.6.3

waski:
Same for me. IDE 1.6.3

105r2

An actual redefinition of // would have been more fun. :slight_smile:

Can it be something about the version of my programm? Because it keeps giving me the erros...

I will try to download the newer version, and try out.

Well, repost the new version.

Post your new code.

Well, it worked with no errors with the 1.6.3 version. I am sorry about the trouble, and thank you for the help.