Buenas tardes,
He estado trabajando en un codigo y al añadir una variable y un if, no me compila y me da este error al compilar
collect2.exe: error: ld returned 5 exit status
podriais echarme una mano?
gracias
Buenas tardes,
He estado trabajando en un codigo y al añadir una variable y un if, no me compila y me da este error al compilar
collect2.exe: error: ld returned 5 exit status
podriais echarme una mano?
gracias
Claro que si, cuando publiques el código y leas las normas del foro que claramente piden que una consulta se exponga con la mayor claridad posible.
Usa tags, si no sabes, de nuevo, lee las normas.
Esperamos tu código!!
Tal como me indicas te pongo el codigo, el error solo lo da cuando incluyo en él, el if (inicializo = 0) con este if lo que pretendo es comprobar si el codigo ya ha corrido una vez y si lo ha hecho no modificar las variables de estado1,2,3
No se que mas informacion puedo poner, la version de IDE es la 1.6.7 uso windows XP SP2 pero me da el mismo fallo en windows XP con SP3
Saludos y gracias
// include the library code:
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
// Addr, En, Rw, Rs, d4, d5, d6, d7, backlighpin, polarity
LiquidCrystal_I2C lcd( 0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE );
// constantes que no cambian y que asignan el numero de pin
// a cada una de las entradas
const int entrada1 = 2; //pines de entrada
const int entrada2 = 3;
const int entrada3 = 4;
const int entrada4 = 5;
const int salida1 = 8; // pines de salida
const int salida2 = 9;
const int salida3 = 10;
const int salida4 = 11;
//variables
int estado1 = 0; //inicializo variables
int estado2 = 0;//que cogeran el estado de
int estado3 = 0;//arranque de los reles
int estado4 = 0;//externos despues de un apagado y encendido
int lectura1 = 0; //inicializo varibles
int lectura2 = 0;//que cogeran el valor
int lectura3 = 0; // de entrada
int lectura4 = 0; //a cero
int inicializo = 0;
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(20, 4);
//inicializo modos de cada pin
//pines de entrada
lcd.setCursor (0,0);
lcd.print ("IN 1=");
lcd.setCursor (0,1);
lcd.print ("IN 2=");
lcd.setCursor (0,2);
lcd.print ("IN 3=");
lcd.setCursor (0,3);
lcd.print ("IN 4=");
lcd.setCursor (10,0);
lcd.print ("OUT1=");
lcd.setCursor (10,1);
lcd.print ("OUT2=");
lcd.setCursor (10,2);
lcd.print ("OUT3=");
lcd.setCursor (10,3);
lcd.print ("OUT4=");
pinMode(entrada1, INPUT);
pinMode(entrada2, INPUT);
pinMode(entrada3, INPUT);
pinMode(entrada4, INPUT);
//pines de salida
pinMode(salida1, OUTPUT);
pinMode(salida2, OUTPUT);
pinMode(salida3, OUTPUT);
pinMode(salida4, OUTPUT);
delay (5000);
}
void loop() {
// cargo el estado de inicio de los pines
if (inicializo = 0){
estado1 = digitalRead(entrada1);
estado2 = digitalRead(entrada2);
estado3 = digitalRead(entrada3);
estado4 = digitalRead(entrada4);
}
lcd.setCursor (6,0);
lcd.print (estado1);
lcd.setCursor (6,1);
lcd.print (estado2);
lcd.setCursor (6,2);
lcd.print (estado3);
lcd.setCursor (6,3);
lcd.print (estado4);
lecturaestado();// me voy a un bucle para tratar las entradas
}
void lecturaestado(){// bucle donde comparo las entradas con el estado de incio
lectura1 = digitalRead(entrada1);
lectura2 = digitalRead(entrada2);
lectura3 = digitalRead(entrada3);
lectura4 = digitalRead(entrada4);
lcd.setCursor (16,0);
lcd.print (lectura1);
lcd.setCursor (16,1);
lcd.print (lectura2);
lcd.setCursor (16,2);
lcd.print (lectura3);
lcd.setCursor (16,3);
lcd.print (lectura4);
if (lectura1 != estado1) {//si es distina la lectura del estado es que se
delay(30000);
tratamientoentrada1(); //se ha caido y lo mando a bucle para ver is hombre
} //reacciona
if (lectura2 != estado2) {
delay(30000);
tratamientoentrada2();
}
if (lectura3 != estado3) {
delay(30000);
tratamientoentrada3();
}
if (lectura4 != estado4) {
delay (30000);
tratamientoentrada4();
}
}
void tratamientoentrada1(){
lectura1 = digitalRead(entrada1); //inicio del tratamiento de la entrada1
if (lectura1 != estado1){
digitalWrite(salida1, HIGH);
delay (5000);
}
/*digitalWrite(salida1, HIGH);
delay (300);*/
digitalWrite(salida1, LOW);
}
void tratamientoentrada2(){
lectura2 = digitalRead(entrada2); //inicio del tratamiento de la entrada2
if (lectura2 != estado2){
digitalWrite(salida2, HIGH);
delay (5000);
}
/*digitalWrite(salida2, HIGH);
delay (300);*/
digitalWrite(salida2, LOW);
}
void tratamientoentrada3(){ //inicio del tratamiento de la entrada3
lectura3 = digitalRead(entrada3);
if (lectura3 != estado3){
digitalWrite(salida3, HIGH);
delay (5000);
}
/*digitalWrite(salida3, HIGH);
delay (300);*/
digitalWrite(salida3, LOW);
}
void tratamientoentrada4(){ //inicio del tratamiento de la entrada4
lectura4 = digitalRead(entrada4);
if (lectura4 != estado4){
digitalWrite(salida4, HIGH);
delay (5000);
}
/*digitalWrite(salida4, HIGH);
delay (300);*/
digitalWrite(salida4, LOW);
}
te das cuenta, pusiste el código y 5 seg la solución
no se usa un = sino dos ==
if (inicializo == 0){
:o :o :o :o
gracias Surbyte que fallo mas tonto, acabo de cambiar al IDE 1.6.7 y no para de darme problemitas y pense que este ya era otro mas y era una torpeza mia jejejejeje
Muchas gracias!
vuelve al 1.6.0 o 1.6.4
Eso he leido que la gente no esta muy contenta con el 1.6.7
A ver que hago
Gracias