Pages: 1 [2]   Go Down
Author Topic: termometro digital  (Read 5824 times)
0 Members and 1 Guest are viewing this topic.
spain
Offline Offline
Full Member
***
Karma: 0
Posts: 203
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

despues de deducir que si la liquidcrystal viene con el arduino y tb me indicaba que faltaba deduje que era un error en el nombre lo comprobe y cierto esta todo en minusculas y por eso no lo reconocia.

luego descarge las 2 librerias y me paso lo mismo lo corrijey funciono.
pero salio un ultimo error en la ultima linea esta:  </LiquidCrystal.h></DallasTemperature.h></OneWire.h>

este error me da: sketch_may25a:124: error: expected unqualified-id before '<' token

aki si que no entiendo nada asiq directamente borre la linea y entonces pudo compilarse el codigo sin problemas pero el probla este en que no funciona...
siempre me da la misma temperatura: -127 y lo caliente o enfrie no varia estoi algo perdido ya que es sencillisimo y me he atascado 3 veces.

yOPERO aver si puedes decirme que esta mal en tu codigo ya que creo que el problema esq hay algun error.

gracias
Logged

spain
Offline Offline
Full Member
***
Karma: 0
Posts: 203
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

al final he reiniciado la placa vuelto a conectar el sensor y indica bien la temperatura osea que la ultima linea supongo que sobrara ya que al menos de momento parece funcionar correctamente.

aver si alguien me confirma que esa linea sobra o que le falta o lo que sea ya que no se cual era su funcion.

gracias
Logged

spain
Offline Offline
Full Member
***
Karma: 0
Posts: 203
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

aver si alguien me puede decir como podria poner en el codigo para que se encienda un led si es inferior por ejemplo a 22 como frio eso lo se pero y entre 22 y 25 encender uno que indique temperatura normal como se escribe? es decir que se encienda el led entre si es mayor que 23 y menos que 25. he hecho un if para el led frio eso es muy facil pero no recuerdo como se podia poner entre esto y esto...

gracias
Logged

0
Offline Offline
God Member
*****
Karma: 1
Posts: 524
Arduino inside
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

if  valor > X1  && valor < X2
 smiley-wink

el símbolo raro es el and, que no se porque me sale tan raro
Logged

spain
Offline Offline
Full Member
***
Karma: 0
Posts: 203
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

gracias nayma he solucionado lo de los 3 leds el cocdigo funciona perfectamente esq sabia que era algo asi pero se me ha olvidado ya el curso de programacion que hice... (la memoria de pez que tengo tb ayuda...)
Logged

spain
Offline Offline
Full Member
***
Karma: 0
Posts: 203
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

es normal que haya ruidos en los led? es decir que parpadeen cuando envia datos el arduino, esque cada vez que actualiza la temperatura en mi caso cada 1/2 segundo (nose si es mucho trabajo para el micro de ser asi avisarme porfa que originalmente esta cada 4 segundos...) pues eso cada que que parpadea el led de tx de la placa el dichoso led en este caso de temperatura ideal parpadea a la vez (siempre y cuando este apagado) es decir que cuando es temperautra ideal y tiene que estar encendido fijo lo hace perfectamente, pero cuand deberia estar apagado por que hay mucha temperatura o muy poca y este uno de los otros 2 leds encendidos le llegan esa especie de pulsos ruidos o lo que sea y me gustaria evitar ese parpadeo, aver si me podeis indicar si con un condensador en concreto o nose una resistencia o alguna forma de ponerle un filtro o algo para que no parpadee.(a los otros 2 led no les pasa y comparten la misma masa asiq tiene que ser un ruido que le llege por la señal del pin positivo directo del arduino).

gracias
Logged

spain
Offline Offline
Full Member
***
Karma: 0
Posts: 203
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

des pues de 4 horas he conseguido que todos los leds hagan lo que kiero y como deben xD Ah y he descubierto xq demonios se encendia ese led a la vez que el led tx cuando el arduino enviaba los datos al pc era el pin 12 que nose xq le ocurre esto pero conectandolo en un pin pwm en el 9 en concreto ha dejado de tener esa interferencia acople o lo que fuese. subo el codigo por si alguien kiere usar algo para algun proyecto suyo: el codigo se compone de que cuando hay mas de 26 grados hace calor y se enciende el led rojo, cuando la temperatura es entre 25 y 26 grados se enciende un led amarillo y cuando la temperatura es inferior a 25 grados hace frio y se enciende el lez azul, (aparte de esas funciones junto con la temperatura en pantalla lcd y puerto com por supuesto hay 1 de los 3 led siempre encendiendose y apagandose de manera lenta alternando de no parpadear nunca el que esta indicando la temperatura para evitar confundir una cosa con otra.
Code:
#include <OneWire.h> //Libreria para el sensor

#include <DallasTemperature.h> //Libreria para el sensor

#include <LiquidCrystal.h> //Libreria para el LCD


// Conectamos el sensor de temperatura al pin 10 de Arduino

#define ONE_WIRE_BUS 7


// Setup de oneWire instance para que se comunique con dispositivos OneWire

OneWire OneWire(ONE_WIRE_BUS);


// Pasomos la referencia de oneWire a Dallas Temperature.

DallasTemperature sensors(&OneWire);


//Iniciamos la libreria del LCD con los respectivos pines

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


const int ledPinc =  13;      //Pin led caliente
const int ledPinf =  6;       //Pin led frio
const int ledPini =  9;      //Pin led intermedio
const int ledPinp =  11;      //Pin led parpadeo
int contador = 0;             //Variable que almacena el valor
void setup(void)

{

  //Setup de las lineas y columnas.

  lcd.begin(16, 2);

  //Escribimos Temperatura en el LCD.


  lcd.print("Temperatura:");



  // Inicializar los led:

  pinMode(ledPinc,  OUTPUT);
  pinMode(ledPinf, OUTPUT);
  pinMode(ledPini, OUTPUT);
  pinMode(7, OUTPUT);
  // Inicializar el puerto com

  Serial.begin(9600);

  Serial.println("Control de Temperatura");


  // Inicializar la libreria

  sensors.begin();

}


float val = 0; // Importante usar el float para obtener la temperatura en formato ºC y NN,NN


void loop(void)

{

  // call sensors.requestTemperatures() to issue a global temperature

  // request to all devices on the bus

  Serial.print("\n Solicitando Temperatura... ");

  sensors.requestTemperatures(); // Send the command to get temperatures

    Serial.println(" Recibida");

  Serial.print("La Temperatura es:  ");

  Serial.print(sensors.getTempCByIndex(0))  ; // Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire

  Serial.print("   ");

  float val =  sensors.getTempCByIndex(0) ; // Almacenar la temperatura

  //Serial.println(val);      // print the value to

  // the serial port

  // set the cursor to column 0, line 1

  // (note: line 1 is the second row, since counting begins with 0):

  lcd.setCursor(0, 1);

  // print the number of seconds since reset:

  lcd.print(val);                     



  if (val >= 27) {

    // encender led:

    digitalWrite(ledPinc, HIGH);

  }

  else {

    // apagar led:

    digitalWrite(ledPinc, LOW);

  }

  if (val < 27 && val >= 26) {

    digitalWrite(ledPini, HIGH);

    // led intermedio
  }

  else {

    digitalWrite(ledPini, LOW);

  }

  if (val < 26 && val >=25) {

    digitalWrite(ledPinf, HIGH);
     //led frio
  }

  else {

    digitalWrite(ledPinf, LOW);

  }
 
if (val < 26 or val >= 27) {
 {
for (contador = 0 ; contador <= 255; contador ++) // ciclo para ir subiendo el voltaje desde 0 a 5 voltios
{
analogWrite(ledPinp, contador); // PWM
delay(7);
}

delay(5);

for (contador = 255 ; contador >=0 ; contador --) // ciclo para ir bajando el voltaje desde 5 a 0 voltios
{
analogWrite(ledPinp, contador); // PWM
delay(7);
}
delay(50);
}

                           }
else        {
  for (contador = 0 ; contador <= 255; contador ++) // ciclo para ir subiendo el voltaje desde 0 a 5 voltios
{
analogWrite(ledPinf, contador); // PWM
delay(7);
}

delay(5);

for (contador = 255 ; contador >=0 ; contador --) // ciclo para ir bajando el voltaje desde 5 a 0 voltios
{
analogWrite(ledPinf, contador); // PWM
delay(7);
}
delay(50);
}
           

  delay(250);              // actualizar temperatura cada 1/2 segundo
 

}


Si alguien ve algun error que pudiese mejorarse o bien estoi forzando el micro por los retardos muy cortos o por la cantidad de ellos a la vez que me avise por favor.
Logged

Madrid
Offline Offline
Sr. Member
****
Karma: 5
Posts: 481
Life isn't about finding yourself, life is about creating yourself!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

despues de deducir que si la liquidcrystal viene con el arduino y tb me indicaba que faltaba deduje que era un error en el nombre lo comprobe y cierto esta todo en minusculas y por eso no lo reconocia.

luego descarge las 2 librerias y me paso lo mismo lo corrijey funciono.
pero salio un ultimo error en la ultima linea esta:  </LiquidCrystal.h></DallasTemperature.h></OneWire.h>

este error me da: sketch_may25a:124: error: expected unqualified-id before '<' token

aki si que no entiendo nada asiq directamente borre la linea y entonces pudo compilarse el codigo sin problemas pero el probla este en que no funciona...
siempre me da la misma temperatura: -127 y lo caliente o enfrie no varia estoi algo perdido ya que es sencillisimo y me he atascado 3 veces.

yOPERO aver si puedes decirme que esta mal en tu codigo ya que creo que el problema esq hay algun error.

gracias


Alex, veo que ya es solucionado el problema de la ultima linea.

Efectivamente esa linea no deberia estar, parece ser  que el formateador de codigo de blogger ha añadido eso, como lo tengo para #C no sabia que generaba esos errores al no ser especifico de arduino, ya lo he corregido y gracias por decirmelo.

s2
Logged

Engineering is the art of
making what you want from
things you can get.

     

[SOLUCIONADO]

spain
Offline Offline
Full Member
***
Karma: 0
Posts: 203
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

nada tio! oye por favor no te lo tomes como una falta tan solo pretendo comentartelo ya que no sabia sikiera si era que yo soi muy burro o realmente era cosa del codigo hasta que me puse a probar y descubri como solucionarlo.

Oye no podras decirme si es normal que en el pin 12 haya interferencias con el led no? esq tuve que cambiarlo de pin xq parpadeaba cada vez que el arduino enviaba datos al pc.
Logged

Madrid
Offline Offline
Sr. Member
****
Karma: 5
Posts: 481
Life isn't about finding yourself, life is about creating yourself!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

una falta!! faltaba mas, es de agradecer que la gente te de feedback.

Según el código:

Code:
//Iniciamos la libreria del LCD con los respectivos pines

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

tienes el pin 12 asignado al LCD, no deberias tener nada mas alli.
« Last Edit: May 26, 2011, 11:19:33 am by yOPERO » Logged

Engineering is the art of
making what you want from
things you can get.

     

[SOLUCIONADO]

spain
Offline Offline
Full Member
***
Karma: 0
Posts: 203
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

jolin Gracias al fin la explicacion!!! esque yo aun no conecte el lcd por que de momento no lo necesito ya que para probar como funciona y aprender no necesito verlo en el lcd y me sirve con el programa del arduino y asi me ahorro pins, pero claro no habia caido en que ese pin ya estaba usado por el codigo en la zona del lcd la cual ni me fije puesto que eso ya se como funciona y no me pare a ver que pines usaba...

un saludo y gracias por la aclaracion ya me estaba teniendo tener una pista cortocircuitada o quemada en la pcb.
Logged

Pages: 1 [2]   Go Up
Jump to: