This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
DUDA Error al copilar
#1
Exclamación 
Hola, disculpen tengo un problema sale error al copilar 
aqui les dejo la programación:

#include <boarddefs.h>
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>
#include "DHT.h"
#define DHTPIN 2
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Servo.h>
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);// nombre de lcd
Servo servoMotorr;
const int LDRPin = A0;
const int umbral = 100;

/*-----( Declare Constants )-----*/
const int receiver = 3; // pin 1 of IR receiver to Arduino digital pin 11
const int Red = 9;// leds
const int Green = 10;// leds
const int Blue = 11;// leds
#define BUZZER 8
const float sonido = 34300.0; // Velocidad del sonido en cm/s
const float umbral1 = 30.0;
const float umbral2 = 20.0;
const float umbral3 = 10.0;
/*-----( Declare objects )-----*/
IRrecv irrecv(receiver);           // create instance of 'irrecv'
decode_results results;            // create instance of 'decode_results'
/*-----( Declare Variables )-----*/

void setup(){   /*----( SETUP: RUNS ONCE )----*/
  Serial.begin(9600);
  Serial.println("IR Receiver Raw Data + Button Decode Test");
  Serial.print(9600);
  irrecv.enableIRIn(); // Start the receiver
  lcd.begin();
  lcd.clear();
  dht.begin();
  pinMode(BUZZER, OUTPUT);
  pinMode (Red, OUTPUT);
  pinMode (Green, OUTPUT);
  pinMode (Blue, OUTPUT);
  pinMode(LDRPin, INPUT);
  servoMotorr.write(0); // Inicializamos al ángulo 0 el servomotor
  servoMotorr.attach(4);// pin del servo
}/*--(end setup )---*/
void EstablecerColor(int R, int G, int B) {
  analogWrite(Red, R);
  analogWrite(Green, G);
  analogWrite(Blue, B);
}
void loop(){
  lcd.clear();
  lcd.backlight();
  lcd.setCursor(0, 0);// linea 1 del lcd


float t = dht.readTemperature();

if ( t == 25) {//cuando es temperatura ambiente
  lcd.setCursor(0, 1);
  lcd.print("temperatura normal");
}


if ( t > 27) {
  EstablecerColor (255, 255, 0);
  tone(BUZZER, 3000, 200);
}



if ( t > 29) {
  EstablecerColor (255, 0, 0);
  tone(BUZZER, 2500, 200);
}



int input = analogRead(LDRPin);
 

{
  if (input > umbral) {
    digitalWrite(Red, LOW);
    tone(BUZZER, 2500, 200);
  }
  else {
    digitalWrite(Green, HIGH);
  }
  {
    if (irrecv.decode(&results)) // have we received an IR signal?
    {
      //    Serial.println(results.value, HEX);  UN Comment to see raw values
      translateIR();
      irrecv.resume(); // receive the next value
    }
  }/* --(end main loop )-- */


  }
}

  /*-----( Declare User-written Functions )-----*/
  void translateIR() // takes action based on IR code received
  // describing Car MP3 IR codes
  {
    switch (results.value)
    {

      case 0xFF6897:
        Serial.println(" 0              ");
        lcd.setCursor(0, 0);// linea 2 del lcd
        lcd.print("0");
        EstablecerColor(0, 255, 0);
        servoMotorr.write(0);
        break;

      case 0xFF30CF:
        Serial.println(" 1              ");
        lcd.setCursor(0, 0);// linea 2 del lcd
        servoMotorr.write(45);
        lcd.print("45");
        EstablecerColor(255, 0, 0);

        break;
      case 0xFF18E7:
        Serial.println(" 2              ");
        lcd.setCursor(0, 0);// linea 2 del lcd
        servoMotorr.write(90);
        lcd.print("90");
        EstablecerColor(0, 255, 0);
        break;
      case 0xFF7A85:
        Serial.println(" 3              ");
        lcd.setCursor(0, 0);// linea 2 del lcd
        lcd.print("120");
        EstablecerColor(255, 255, 0);
        servoMotorr.write(120);
        break;
      case 0xFF10EF:
        Serial.println(" 4              ");
        lcd.setCursor(0, 0);// linea 2 del lcd
        lcd.print("180");
        EstablecerColor(0, 255, 255);
        servoMotorr.write(180);
        break;

      default:
        Serial.println(" other button   ");
        EstablecerColor (0, 0, 0);
    }
    delay(500);
  }
  Responder
#2
Podrias subir un archivo comprimido con el proyecto completo y sus respectivas librerias. Si no, lo veo un quebradero de cabeza saber primero que funcion tiene ese programa, y luego encontrar que es lo que falla.
  Responder
#3
hola si    yo tengo un problema devido  a  que cuando complilo el programa me aparece un error de compilacion en tarjeta arduino

este es mi codigo   si me podrian ayudar 


#include <keypad.h>
#include < LiquidCrystal_I2C.h>
#include <DHT11.h>
#define DHT11_PIN 9

dht11 DHT;
int LED = 8;
float temp;

float LDR = A0;
int val;
int ilum;

int conta;

const byte ROWS = 4;
const byte COLS = 4;
char hexaKeys[ROWS][COLS] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {A2, A3, 7, 6}; //filas
byte colPins[COLS] = {5, 4, 3, 2};//columnas

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

LiquidCrystal_I2C lcd(0x27, 20, 2);

void menu_pantalla0()
{
  lcd.setCursor(5, 0);
  lcd.print("BIENVENIDO");
  lcd.setCursor(2, 1);
  lcd.print("PROYECTO DE LEO");
  lcd.display();
  delay(2000);
  lcd.noDisplay();
  delay(1000);
  lcd.display();
  delay(2000);
  lcd.clear();
  delay(1000);
}
void menu_pantalla1()
{
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("1)LED ON 3)TEMP.");
  lcd.setCursor(0, 1);
  lcd.print("2)LED OFF 4)LUZ Lv1");
}
byte grados [8] =
{
  0b01110,
  0b01010,
  0b01110,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
};

void setup()
{
  pinMode(LED, OUTPUT);
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  conta = 0;
  menu_pantalla0();
  menu_pantalla1();
}

void loop() {

  char key = customKeypad.getKey();

  if (key == '1' && conta == 0);
  {
    digitalWrite(LED, HIGH);
    lcd.crear();
    lcd.setCursor(5, 0);
    lcd.print("DIODO LED");
    lcd.setCursor(5, 1);
    lcd.print("ENCENDIDO");
    conta = 1;
  }

  if (key == '2' && conta == 0)
  {
    digitalWrite(LED, LOW9;
                 lcd.clear();
                 lcd.setCursor(5, 0);
                 lcd.print("DIODO LED");
                 lcd.setCursor(6, 1);
                 lcd.print("APAGADO");
                 conta = 1;
  }

  if (key == '3' && conta == 0)
  {
    lcd.clear();
    temp = DHT.read(DHT11_PIN);
    lcd.setCursor(0, 0);
    lcd.print("TEMPERATURA");
    lcd.setCursor(12, 1);
    lcd.print(DHT.temperature);
    lcd.print("C");
    lcd.createChar(1, grados);
    lcd.setCursor(15, 1);
    lcd.write(1);
    conta = 1;
  }

  if (key == '4' && conta == 0)
  {
    conta = 2;
  }
  if (conta == 2);
  {
    lcd.clear();
    val = analogRead(LDR);
    ilum = _((long)val * 1000 * 10) / ((long)15 * 10 * (1024 - val));
    lcd.setCursor(0, 0);
    lcd.print("NIVEL DE LUZ");
    lcd.setCursor(14, 1);
    lcd.print(ilum);
    delay(1000);
  }

  if ((key == '*') && (conta == 0 || conta == 1 || conta == 2))
  {
    menu_pantalla1();
    conta = 0;
  }
}
  Responder
#4
Sube un pantallazo del el error, y tal véz así.....
si no quien pretenda ayudarte tendra que crear el proyecto, descargar librerias...
Vamos, que si indicas el error es más facil que alguien se decida a ayudarte
Saludos
  Responder
#5
buenas para todos tengan presente de agregar todas las librerías que estas incluyendo en el programa, miren que estén de color naranja.
  Responder
#6
buenas tardes y saludos, estuve trasteando y ahora no me compila nada, la pantalla lcd se ha quedado en dos lineas y no consigo, este error es uno de los que me sale al compilar de nuevo. igual tengo que cambiar la placa base

Arduino:1.8.5 (Mac OS X), Tarjeta:"Anet V1.0"

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0xaab53]

goroutine 1 [running]:
panic(0x1559e0, 0xc420014040)
/home/jenkins/go/src/runtime/panic.go:500 +0x1a1
arduino.cc/builder.(*SetupBuildProperties).Run(0x24ac18, 0xc42004e400, 0x24ac18, 0x0)
/home/jenkins/workspace/arduino-builder-all-cross/src/arduino.cc/builder/setup_build_properties.go:84 +0xfe3
arduino.cc/builder.(*ContainerSetupHardwareToolsLibsSketchAndProps).Run(0x24ac18, 0xc42004e400, 0x42055555, 0x0)
/home/jenkins/workspace/arduino-builder-all-cross/src/arduino.cc/builder/container_setup.go:59 +0x3c3
arduino.cc/builder.runCommands(0xc42004e400, 0xc420035cd8, 0x3, 0x3, 0xc420071301, 0x1, 0x21d960)
/home/jenkins/workspace/arduino-builder-all-cross/src/arduino.cc/builder/builder.go:191 +0xcd
arduino.cc/builder.(*ParseHardwareAndDumpBuildProperties).Run(0xc420035d38, 0xc42004e400, 0xc420035d88, 0x160d80)
/home/jenkins/workspace/arduino-builder-all-cross/src/arduino.cc/builder/builder.go:180 +0xfb
arduino.cc/builder.RunParseHardwareAndDumpBuildProperties(0xc42004e400, 0xc420035d88, 0x24ac18)
/home/jenkins/workspace/arduino-builder-all-cross/src/arduino.cc/builder/builder.go:227 +0x35
main.main()
/home/jenkins/workspace/arduino-builder-all-cross/src/arduino.cc/arduino-builder/main.go:329 +0xd3d
/Applications/Arduino.app/Contents/Java/arduino-builder retornó 2

Error compilando para la tarjeta Anet V1.0.

Este reporte podría tener más información con
"Mostrar salida detallada durante la compilación"
opción habilitada en Archivo -> Preferencias.
  Responder
#7
Buenas noches.

Lamento no haber encontrado esta publicación antes, voy a intentar ayudaros en la medida de lo posible.

Para Sofía Alemán

Lo primero que necesito saber es que estas haciendo, explicarme un poco el proyecto, ¿Que quieres hacer?, no me gusta jugar a las adivinanzas, pero si ayudar en la medida de lo posible, por mucha prisa que tengas en solucionar tu problema debes explicarlo un poco.

Si no pones el tipo de placa que estas utilizando, no te puedo ayudar mucho, voy a suponer que estas utilizando el Arduino Uno R3, que es el más sencillo, si no es así, dímelo para que pueda cambiar la configuración a la de tu placa.

Supongo que pretendes controlar algo (un vehículo de Lego Technic), con los módulos infrarrojos de Lego, o algo parecido, utilizando un sensor de temperatura y humedad DHT11, una pantalla lcd i2c, con un servo, varios LED, un buzzer, que pita cuando pasa algo, que no se que es.

Pero esto lo tengo que adivinar, y la adivinanzas no son mi fuerte, seria vidente, no aficionado a la programación.

Incluyes dos librerías para el control de infrarrojos, <IRremote.h>, y IRremoteInt.h>, no sé porque, con una sola librería puedes controlar el infrarrojo, las dos librerías lo único que hacen es liar al IDE Arduino, y a mí, y dar problemas de compilación.

Si mezclas los #include, con los #define, lo único que haces es liarnos al IDE Arduino y a mí, una de las claves de la programación es que los códigos tengan un cierto orden para poder leerlos, si lo apelotonas todo, y no sigues un cierto orden, no hay quien se aclare.

En la línea 10 pones

#define DHTTYPE DHT11 // DHT 11

No sé qué pretendes con esto, pero no estás consiguiendo nada

En la línea 11, pones

DHT dht(DHTPIN, DHTTYPE);

Aquí tienes que definir el número de pin al que tienes conectado el sensor, y el tipo de sensor que estas utilizando, sustituye estas dos líneas, por la línea correcta que seria esta

DHT dht (9, DHT11); // Por ejemplo

En la línea 37, debes indicar que tipo de pantalla estas usando

Lcd.begin (16, 2);

Si instalas la librería Buzzer

Se arreglan bastantes errores de compilación.

Mantemne al tanto de tus progresos y problemas

Un saludo.



Para Leo Barrionuevo

Lo primero que necesito saber es que estas haciendo, explicarme un poco el proyecto, ¿Que quieres hacer?, no me gusta jugar a las adivinanzas, pero si ayudar en la medida de lo posible, por mucha prisa que tengas en solucionar tu problema debes explicarlo un poco.

Creo entender, que lo que pretendes es leer la temperatura, y la humedad no, con un sensor DHT11, y que te muestre los datos en la pantalla lcd i2c, y que cuando pase de un cierto valor te encienda una luz, que tu llamas "diodo led", pero me estas volviendo loco, porque también utilizas ordenes para encender una pantalla matricial de 8 segmentos, o es que ¿Quieres ver la temperatura en los dos sitios?

Pero lo que has conseguido es un "código Frankenstein", que no tiene ni pies ni cabeza, pero vamos a intentar arreglarlo.

Si todavía continuas con los errores, es que no has mirado las soluciones en Internet, y si lo has solucionado, debes ponerlo en la publicación, para que yo no pierda el tiempo en ver porque no compila.

Si no pones el tipo de placa que estas utilizando, no te puedo ayudar mucho, voy a suponer que estas utilizando el Arduino Uno R3, que es el más sencillo, si no es así, dímelo para que pueda cambiar la configuración a la de tu placa.

De todas formas te cuento varias cosas, no te enfades, pero es verdad.

Uno de los problemas que tienes, es que no tienes instaladas todas las librerías en el IDE Arduino, que te hacen falta, vete a la barra de herramientas, programa, librerías, te aparece la lista de librerías que tienes instalada, comprueba que tienes las tres que estas utilizando, si te falta alguna, que seguro que si, abre el gestos de librerías, con el botón incluir librería, en la línea de texto que tienes arriba escribe el nombre de la librería, cuando te aparezca, pincha en instalar.

La librería para que el sensor DHT11, o DHT22, trabajen correctamente, no es esa, la librería correcta se llama DHT.h

La primera, la definición del sensor DHT11, la tienes al revés, eso es porque no te has fijado en cómo funciona el programa, solo has copiado y pegado, y encima lo has hecho mal

Tu línea 6 pone dht11 DHT;

La correcta es

DHT dht (9, DHT11); // Seleccionamos el pin y tipo de sensor, DHT11 o DHT22

No has creado la clase de controlador keypad, tienes que poner en la línea por 10 ejemplo

keypad keypad;

Has mezclado todo tipo de estructuras de codificación, y así es imposible que el programa compile, ¿No has visto ningún programa ya escrito y funcionando?, o no has entendido como hacer un programa.

No puedes poner en el bloque de definiciones, un "void menu_pantalla0" de ninguna manera, los void son ordenes de trabajo en bucle, que se repiten constantemente, y van después del void loop, por lo tanto desde la línea 34 en adelante hasta la línea 56, debes quitarlas de donde están y ponerlas después del void loop. Y a demás no se llaman así, luego te pongo la línea correcta.

En el void setup

No inicias el sensor DHT11, inicias mal la pantalla lcd i2c, y no inicias el LED de 8 segmentos, por lo tanto ninguno de los tres está trabajando correctamente, y el sensor (apagado) no manda datos a ningún sitio, y las pantallas (apagadas) no reciben nada, te faltan las líneas

dht.begin(); // Inicia el trabajo del sensor DHT11

lcd.begin(); // Inicia el trabajo de la pantalla lcd i2c

keypad.begin // Inicia el trabajo del LED de 8 segmentos

En el void loop

Te faltan todas las líneas de trabajo de

void loop_pantalla0 () //Que están puestas en el bloque de definiciones

void loop_pantalla1 () // Que están puestas en el bloque de definiciones

Y todo el trabajo de lectura del sensor DHT11, que no tienes por ningún lado, por lo tanto el sensor no te está haciendo nada, te falta un

void loop_DHT11 ()

Mira mi publicación en el siguiente enlace, y veras como se hace trabajar varios sensores, entre otros un DHT22, que trabaja igual que el DHT11, por lo tanto donde yo pongo DHT22, tú tienes que poner DHT11,

https://www.spainlabs.com/foros/tema-Un-...agua-dulce

Y donde yo pongo Serial.print, que es la orden para ver los datos en el Monitor Serie de Arduino, tú debes poner lcd.print, que es la orden para mandar los datos a la pantalla lcd.

Mis programas compilan, me falta depurar el funcionamiento del mando de PS2, nadie es perfecto.

Mantenme al tanto de tus progresos y problemas.

Un saludo.
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  error al copilar Gabo2801 1 950 19-04-2020, 10:59 PM
Último mensaje: JLSiles79