Pages: [1]   Go Down
Author Topic: nivel de deposito  (Read 1388 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 1
Posts: 208
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola!

Estoy probando un nivel de deposito con el siguiente código
Code:
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
Logged


0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1413
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

* 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/

Offline Offline
Full Member
***
Karma: 1
Posts: 208
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged


0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1413
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 !
Logged

* 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/

Offline Offline
Full Member
***
Karma: 1
Posts: 208
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tienes razon.

I'm sorry!
Logged


0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Trabajando en ...

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

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

Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.




« Last Edit: January 23, 2013, 12:35:52 pm by Heke » Logged

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

Offline Offline
Full Member
***
Karma: 1
Posts: 208
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: January 24, 2013, 05:54:37 am by Jossema106 » Logged


Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

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

Offline Offline
Full Member
***
Karma: 1
Posts: 208
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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);
}
Logged


Spain
Offline Offline
God Member
*****
Karma: 25
Posts: 956
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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);
}
Logged

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

Offline Offline
Full Member
***
Karma: 1
Posts: 208
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

GRacias!!!!
Logged


0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Trabajando en ...

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

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

Pages: [1]   Go Up
Jump to: