Go Down

Topic: "Error con llaves", si soluciono error "does not name type" (Read 3648 times) previous topic - next topic

usedcloned

Hola buenas tardes, tengo listo un codigo para mi arduino, para hacer una computadora para mi moto, pero ya terminando cuando quiero hacer la ultima verificacion me sale este error "does not name type'", si lo elimino me empieza a molestar con las llaves, ya solucionado me queda los dos errores que comente en el code que tengo mal, ya he probado de todo. Ayudenme por favor..
 le agradecere demasiado al que pueda ayudarme. Gracias muchas gracias

 
Code: [Select]

#include <LiquidCrystal.h>;                 
#include <DS3231.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);     
const int hallPin = 10;                     
const int ledPin =  13;                     
const int rpmmax = 11000;                   
DS3231  rtc(SDA, SCL);  // pines A4 y A5
Time  t;


//_____________________________________________________________________



int hallState = 0;                             
unsigned long time = millis();                 
int RPM = 0;                                   
int Limpiart1 = 0;                             
// int KMh = 0;                                 
float perisensor = 6 * 3.1416;                 
float factorescala = perisensor * 87 *60 / 1000;
long t1 = millis();                                   
long t2 = millis();                                   
//int barras = 0;                                     
int numcar = 0;                                       
float TempVolt_1 = 0;
float TempCelsius_1 = 0;
//definimos icono motor
byte motor[8] = {
  B11111,
  B11111,
  B10101,
  B00100,
  B01110,
  B01010,
  B01110,
  B00000
};
//definimos simbolo grado celsius
byte grado[8] = {
  B01110,
  B01010,
  B01110,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};
//______________________________________________________________________

// INICIALIZACION: Se inicializan todos los valores en Arduino para su calibración

void setup() {                                               
  lcd.begin(16, 2);                   
  lcd.print("Bajaj 125+");             
   pinMode(ledPin, OUTPUT);           
  pinMode(hallPin, INPUT);                   
  Serial.begin(9600);                             
  lcd.print("            ");                   
  while (millis() < 5000) {}                   
  time = millis();                             
  lcd.begin(16, 2);                             
  lcd.print("            ");                   
}                                               
//falla en esta llave
{
// pero si la quito o la muevo me sale error en la siguiente linea 'rtc' does not name

rtc.begin();
 
  //rtc.setDOW(LUNES);         // Set dia de la semana en mayusculas
  //rtc.setTime(02, 24, 00);     // Set hora formato hh:mm:ss (24 H)
  //rtc.setDate(1, 2, 2016);   // Set fecha dia, mes, año
}
  //creamos iconos y los enviamos a la memoria de la pantalla
  lcd.createChar(3, motor);
  lcd.createChar(4, grado);


//___________________________________________________________________________

void loop(){                                     
   {
      hallState = digitalRead(hallPin);           
      if (hallState == LOW) {                     
         digitalWrite(ledPin, HIGH);             
          if (Limpiart1 == 1) {                   
            t2 = millis();                       
            RPM = 260000 / (t2 - t1);             
            //barras = RPM / revbarra;           
         // KMh = RPM * factorescala / 1000;     
          t1 = t2;                                         
          Limpiart1 = 0;                                   
                                                           
                                                                     
                    lcd.setCursor(0, 1);                   
                    lcd.print("RPM ");                     
                    lcd.print(RPM);                       
                    lcd.print("    ");                         
               
//__________________________________________________________________________________________________
 
 
  // leemos la trama de datos del reloj
 
  t = rtc.getTime();
 
   TempVolt_1 = analogRead (1)*0.004882812;
   TempCelsius_1 = (TempVolt_1 - 0.5) * 100;
     
  //Muestra la hora con formato hh:mm:ss
 
  lcd.setCursor(0, 0);
  if (t.hour < 10) lcd.print ("0");
  lcd.print (t.hour, DEC);
  lcd.print (":");
  if (t.min < 10) lcd.print ("0");
  lcd.print (t.min, DEC);
  lcd.print (":");
  if (t.sec < 10) lcd.print ("0");
  lcd.print (t.sec, DEC);

  // Muestra la temperatura del modulo RTC D3231
  lcd.setCursor (10,0);
  lcd.print (rtc.getTemp());
  lcd.write(4);                 
 
  lcd.setCursor (10,1);
  lcd.write (3);               
  lcd.print (" ");
  lcd.print (TempCelsius_1,0); 
  lcd.write (4);               
  lcd.print ("  ");
 
  delay (1000); // se actualiza cada segundo
}

Alfaville

Hola.

Tienes un buen lío con las llaves.

En lugar de comentar donde están los errores he reescrito el programa, miralo y prueba a ver si han desaparecido los errores.
Code: [Select]


#include <LiquidCrystal.h>;                
#include <DS3231.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);    
const int hallPin = 10;                    
const int ledPin =  13;                    
const int rpmmax = 11000;                  
DS3231  rtc(SDA, SCL);  // pines A4 y A5
Time  t;


//_____________________________________________________________________



int hallState = 0;                            
unsigned long time = millis();                
int RPM = 0;                                  
int Limpiart1 = 0;                            
// int KMh = 0;                                
float perisensor = 6 * 3.1416;                
float factorescala = perisensor * 87 *60 / 1000;
long t1 = millis();                                  
long t2 = millis();                                  
//int barras = 0;                                    
int numcar = 0;                                      
float TempVolt_1 = 0;
float TempCelsius_1 = 0;
//definimos icono motor
byte motor[8] = {
  B11111,
  B11111,
  B10101,
  B00100,
  B01110,
  B01010,
  B01110,
  B00000
};
//definimos simbolo grado celsius
byte grado[8] = {
  B01110,
  B01010,
  B01110,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};
//______________________________________________________________________

// INICIALIZACION: Se inicializan todos los valores en Arduino para su calibración

void setup()
{                                              
  lcd.begin(16, 2);                  
  lcd.print("Bajaj 125+");            
   pinMode(ledPin, OUTPUT);          
  pinMode(hallPin, INPUT);                  
  Serial.begin(9600);                            
  lcd.print("            ");                  
  while (millis() < 5000) {}                  
  time = millis();                            
  lcd.begin(16, 2);                            
  lcd.print("            ");                  

  rtc.begin();
 
  //rtc.setDOW(LUNES);         // Set dia de la semana en mayusculas
  //rtc.setTime(02, 24, 00);     // Set hora formato hh:mm:ss (24 H)
  //rtc.setDate(1, 2, 2016);   // Set fecha dia, mes, año
  //creamos iconos y los enviamos a la memoria de la pantalla
  lcd.createChar(3, motor);
  lcd.createChar(4, grado);
}


//___________________________________________________________________________

void loop()
{                                    
 hallState = digitalRead(hallPin);          
 if (hallState == LOW)
 {                    
 digitalWrite(ledPin, HIGH);            
 if (Limpiart1 == 1)
 {                  
 t2 = millis();                      
 RPM = 260000 / (t2 - t1);            
 //barras = RPM / revbarra;          
 // KMh = RPM * factorescala / 1000;    
 t1 = t2;                                        
 Limpiart1 = 0;                                  
 
 
 lcd.setCursor(0, 1);                  
 lcd.print("RPM ");                    
 lcd.print(RPM);                      
 lcd.print("    ");                        
 
 
 // leemos la trama de datos del reloj
 
 t = rtc.getTime();
 
 TempVolt_1 = analogRead (1)*0.004882812;
 TempCelsius_1 = (TempVolt_1 - 0.5) * 100;
 
 //Muestra la hora con formato hh:mm:ss
 
 lcd.setCursor(0, 0);
 if (t.hour < 10) lcd.print ("0");
 lcd.print (t.hour, DEC);
 lcd.print (":");
 if (t.min < 10) lcd.print ("0");
 lcd.print (t.min, DEC);
 lcd.print (":");
 if (t.sec < 10) lcd.print ("0");
 lcd.print (t.sec, DEC);
 
 // Muestra la temperatura del modulo RTC D3231
 lcd.setCursor (10,0);
 lcd.print (rtc.getTemp());
 lcd.write(4);                
 
 lcd.setCursor (10,1);
 lcd.write (3);              
 lcd.print (" ");
 lcd.print (TempCelsius_1,0);
 lcd.write (4);              
 lcd.print ("  ");
 
 delay (1000); // se actualiza cada segundo
 }
 }
}

La funcion void loop() tambien tenia varias llaves sin equilibrar.

Saludos

usedcloned

Hola.

Tienes un buen lío con las llaves.

En lugar de comentar donde están los errores he reescrito el programa, miralo y prueba a ver si han desaparecido los errores.
Code: [Select]


#include <LiquidCrystal.h>;                 
#include <DS3231.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);     
const int hallPin = 10;                     
const int ledPin =  13;                     
const int rpmmax = 11000;                   
DS3231  rtc(SDA, SCL);  // pines A4 y A5
Time  t;


//_____________________________________________________________________



int hallState = 0;                             
unsigned long time = millis();                 
int RPM = 0;                                   
int Limpiart1 = 0;                             
// int KMh = 0;                                 
float perisensor = 6 * 3.1416;                 
float factorescala = perisensor * 87 *60 / 1000;
long t1 = millis();                                   
long t2 = millis();                                   
//int barras = 0;                                     
int numcar = 0;                                       
float TempVolt_1 = 0;
float TempCelsius_1 = 0;
//definimos icono motor
byte motor[8] = {
  B11111,
  B11111,
  B10101,
  B00100,
  B01110,
  B01010,
  B01110,
  B00000
};
//definimos simbolo grado celsius
byte grado[8] = {
  B01110,
  B01010,
  B01110,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};
//______________________________________________________________________

// INICIALIZACION: Se inicializan todos los valores en Arduino para su calibración

void setup()
{                                               
  lcd.begin(16, 2);                   
  lcd.print("Bajaj 125+");             
   pinMode(ledPin, OUTPUT);           
  pinMode(hallPin, INPUT);                   
  Serial.begin(9600);                             
  lcd.print("            ");                   
  while (millis() < 5000) {}                   
  time = millis();                             
  lcd.begin(16, 2);                             
  lcd.print("            ");                   

  rtc.begin();
 
  //rtc.setDOW(LUNES);         // Set dia de la semana en mayusculas
  //rtc.setTime(02, 24, 00);     // Set hora formato hh:mm:ss (24 H)
  //rtc.setDate(1, 2, 2016);   // Set fecha dia, mes, año
  //creamos iconos y los enviamos a la memoria de la pantalla
  lcd.createChar(3, motor);
  lcd.createChar(4, grado);
}


//___________________________________________________________________________

void loop()
{                                     
 hallState = digitalRead(hallPin);           
 if (hallState == LOW)
 {                     
 digitalWrite(ledPin, HIGH);             
 if (Limpiart1 == 1)
 {                   
 t2 = millis();                       
 RPM = 260000 / (t2 - t1);             
 //barras = RPM / revbarra;           
 // KMh = RPM * factorescala / 1000;     
 t1 = t2;                                         
 Limpiart1 = 0;                                   
 
 
 lcd.setCursor(0, 1);                   
 lcd.print("RPM ");                     
 lcd.print(RPM);                       
 lcd.print("    ");                         
 
 
 // leemos la trama de datos del reloj
 
 t = rtc.getTime();
 
 TempVolt_1 = analogRead (1)*0.004882812;
 TempCelsius_1 = (TempVolt_1 - 0.5) * 100;
 
 //Muestra la hora con formato hh:mm:ss
 
 lcd.setCursor(0, 0);
 if (t.hour < 10) lcd.print ("0");
 lcd.print (t.hour, DEC);
 lcd.print (":");
 if (t.min < 10) lcd.print ("0");
 lcd.print (t.min, DEC);
 lcd.print (":");
 if (t.sec < 10) lcd.print ("0");
 lcd.print (t.sec, DEC);
 
 // Muestra la temperatura del modulo RTC D3231
 lcd.setCursor (10,0);
 lcd.print (rtc.getTemp());
 lcd.write(4);                 
 
 lcd.setCursor (10,1);
 lcd.write (3);               
 lcd.print (" ");
 lcd.print (TempCelsius_1,0);
 lcd.write (4);               
 lcd.print ("  ");
 
 delay (1000); // se actualiza cada segundo
 }
 }
}

La funcion void loop() tambien tenia varias llaves sin equilibrar.

Saludos

Gracias amigo, si ha sido mi punto debil, las llaves el cual me ha generado muchos inconvenientes con mi profesor de programacion. Igual agradezco mucho tu ayuda. saludos. Dar como finalizado el post.

Alfaville

El hilo debes de finalizarlo tú editando el titulo y anteponiendole "[SOLUCIONADO]"

Errores de equilibrar llaves y otros "cocos" de la programacion son los que te acaban haciendo ser "exquisito" al escribir el código, para que de un vistazo puedas detectar esos problemillas que tanto nos marean.

Saludos.

Go Up