Go Down

Topic: nivel de deposito (Read 1 time) previous topic - next topic

Jossema106

Hola!

Estoy probando un nivel de deposito con el siguiente código
Code: [Select]

int sensor=48;  //Indicamos el pin al que tenemos conectado el sensor de nivel de liquido
int led=45;      //Indicamos el pin al que tenemos conectado el led que indica alarma

void setup()
{       
  Serial.begin(9600) ;

  //Configuramos los pines correspondientes como entradas o salidas
  pinMode(sensor,INPUT);   //sensor de nivel de liquido
  pinMode(led, OUTPUT); //salida led
}

void loop()
{
  Serial.println(digitalRead(sensor));
  if(digitalRead(sensor)==LOW)
    digitalWrite(led,LOW);
  else
    digitalWrite(led,HIGH);
}



y al leer el estado del sensor da estos valores:

Si está cerrado:

0
0
0
0
0
0

Pero si está abierto:


1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1


Lo tengo conectado al GND y al pin digital sin resistencia, puede ser este el fallo?

Gracias

Sergegsx

necesitas una resistencia de pull up. puedes usar la interna que lleva el arduino
En el setup

pinMode(numeropin, INPUT);
digitalWrite(numeropin, HIGH);
* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

Jossema106


necesitas una resistencia de pull up. puedes usar la interna que lleva el arduino
En el setup

pinMode(numeropin, INPUT);
digitalWrite(numeropin, HIGH);



Muchas gracias como siempre!!!
Me puedes explicar que es un resistencia pull up?

Graciad de nuevo

Sergegsx



necesitas una resistencia de pull up. puedes usar la interna que lleva el arduino
En el setup

pinMode(numeropin, INPUT);
digitalWrite(numeropin, HIGH);



Muchas gracias como siempre!!!
Me puedes explicar que es un resistencia pull up?

Graciad de nuevo


en serio?
te recomiendo esta pagina... www.google.es
"resistencia pull up"

de verdad que no vale la escusa de ser nuevo, aquí se espera que te lo den todo. así va el pais !
* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

Jossema106

Tienes razon.

I'm sorry!

flico

Sabeis que ventajas tendria usar una resistencia pushpull externa frente a una interna.
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Heke

#6
Jan 23, 2013, 06:19 pm Last Edit: Jan 23, 2013, 06:35 pm by Heke Reason: 1

Sabeis que ventajas tendria usar una resistencia pushpull externa frente a una interna.

En mi caso:

Que te da mas libertad en el diseño.

Con las internas fijas son 20k si no recuerdo mal. en circuitos logicos ausentes de interferencias esto es muy aceptable y te ahorras componentes pero si quieres reducir consumo al maximo o quieres inmunizarlo a señales mas fuertes pues varias estos valores con externas en valores superiores o inferiores.

Un ejemplo:


En este caso mi resistencia de Pullup seria la que esta marcada como 1k en la linea de colector. Con una de 20k interna igual se quedaba corta por permitir solo 0,2mA. En este caso la de 1k me vale para polarizar la entrada del arduino y aparte me vale de carga para el transistor cuando este conduzca.

No te quedes con este esquema fijo, solo es ejemplo (ademas pone 10v), puedes imaginar un led en la linea de colector o cualquier otra carga... empleando la conmutacion por transistor y aparte la entrada de arduino como señal de control de que este conduce.

Imagina esta otra combinacion:


La R seria la resistencia limitadora de corriente del transistor, pero a su vez seria la resistencia de pullup externa de la pata del arduino.

Cuando el optoacoplador recibiera corriente iluminaria el led y el transistor conduciria. El arduino detectaria la conduccion del transistor porque mandaria su entrada a masa (casi).

Este esquema me valdria como ejemplo de resistencia externa y seria el tipico de emplear un arduino para leer los codigos del mando de TV infrarrojo, por ejemplo.

O si fuera un opto de este estilo, me valdria para detectar cuando un objeto pasa por el hueco.


Esquema tal que asi:



Un saludo Flico.




CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Jossema106

#7
Jan 24, 2013, 11:52 am Last Edit: Jan 24, 2013, 11:54 am by Jossema106 Reason: 1

necesitas una resistencia de pull up. puedes usar la interna que lleva el arduino
En el setup

pinMode(numeropin, INPUT);
digitalWrite(numeropin, HIGH);


Lo he añadido al setup pero sigue dando los mismos valores, alguna idea?

Sin embargo, si lo conecto al pin 13 sin problema.

Heke



necesitas una resistencia de pull up. puedes usar la interna que lleva el arduino
En el setup

pinMode(numeropin, INPUT);
digitalWrite(numeropin, HIGH);


Lo he añadido al setup pero sigue dando los mismos valores, alguna idea?

Sin embargo, si lo conecto al pin 13 sin problema.


¿Puedes poner el codigo con la modificacion que has hecho?
CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO

Jossema106

int pinNivel=48;  //Indicamos el pin al que tenemos conectado el sensor de nivel de liquido
int led=45;      //Indicamos el pin al que tenemos conectado el led que indica alarma
int nivel;
void setup()
{       
  Serial.begin(9600) ;

  //Configuramos los pines correspondientes como entradas o salidas
digitalWrite(pinNivel, HIGH);
  pinMode(pinNivel,INPUT);   //sensor de nivel de liquido
  pinMode(led, OUTPUT); //salida led
}

void loop()
{
   nivel = digitalRead(pinNivel);
  Serial.println(nivel);
  if(digitalRead(pinNivel)==LOW)
    digitalWrite(led,LOW);
  else
    digitalWrite(led,HIGH);
}

Heke


int pinNivel=48;  //Indicamos el pin al que tenemos conectado el sensor de nivel de liquido
int led=45;      //Indicamos el pin al que tenemos conectado el led que indica alarma
int nivel;
void setup()
{       
  Serial.begin(9600) ;

  //Configuramos los pines correspondientes como entradas o salidas
digitalWrite(pinNivel, HIGH);
  pinMode(pinNivel,INPUT);   //sensor de nivel de liquido
  pinMode(led, OUTPUT); //salida led
}

void loop()
{
   nivel = digitalRead(pinNivel);
  Serial.println(nivel);
  if(digitalRead(pinNivel)==LOW)
    digitalWrite(led,LOW);
  else
    digitalWrite(led,HIGH);
}



Asi si, lo habias puesto mal:
Code: [Select]
int pinNivel=48;  //Indicamos el pin al que tenemos conectado el sensor de nivel de liquido
int led=45;      //Indicamos el pin al que tenemos conectado el led que indica alarma
int nivel;
void setup()
{       
  Serial.begin(9600) ;

  //Configuramos los pines correspondientes como entradas o salidas

  pinMode(pinNivel,INPUT);   //sensor de nivel de liquido
  digitalWrite(pinNivel, HIGH);  //--------->esta es la modificacion, se pone despues.
  pinMode(led, OUTPUT); //salida led
}

void loop()
{
   nivel = digitalRead(pinNivel);
  Serial.println(nivel);
  if(digitalRead(pinNivel)==LOW)
    digitalWrite(led,LOW);
  else
    digitalWrite(led,HIGH);
}
CUIDADO !! MIS POST NO SON APTOS PARA MENORES. SI ERES MENOR DE 14 AÑOS DEBES DE LEERLOS ACOMPAÑADO DE UN ADULTO


flico



Sabeis que ventajas tendria usar una resistencia pushpull externa frente a una interna.

En mi caso:

Que te da mas libertad en el diseño.

Con las internas fijas son 20k si no recuerdo mal. en circuitos logicos ausentes de interferencias esto es muy aceptable y te ahorras componentes pero si quieres reducir consumo al maximo o quieres inmunizarlo a señales mas fuertes pues varias estos valores con externas en valores superiores o inferiores.

Un ejemplo:


En este caso mi resistencia de Pullup seria la que esta marcada como 1k en la linea de colector. Con una de 20k interna igual se quedaba corta por permitir solo 0,2mA. En este caso la de 1k me vale para polarizar la entrada del arduino y aparte me vale de carga para el transistor cuando este conduzca.

No te quedes con este esquema fijo, solo es ejemplo (ademas pone 10v), puedes imaginar un led en la linea de colector o cualquier otra carga... empleando la conmutacion por transistor y aparte la entrada de arduino como señal de control de que este conduce.

Imagina esta otra combinacion:


La R seria la resistencia limitadora de corriente del transistor, pero a su vez seria la resistencia de pullup externa de la pata del arduino.

Cuando el optoacoplador recibiera corriente iluminaria el led y el transistor conduciria. El arduino detectaria la conduccion del transistor porque mandaria su entrada a masa (casi).

Este esquema me valdria como ejemplo de resistencia externa y seria el tipico de emplear un arduino para leer los codigos del mando de TV infrarrojo, por ejemplo.

O si fuera un opto de este estilo, me valdria para detectar cuando un objeto pasa por el hueco.


Esquema tal que asi:



Un saludo Flico.







Gracias @Heke por la info.
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Go Up