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
Proyecto:
http://duinoblog.blogspot.com.es/

Sergegsx

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

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

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
Proyecto:
http://duinoblog.blogspot.com.es/

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 !

Jossema106

Tienes razon.

I'm sorry!
Proyecto:
http://duinoblog.blogspot.com.es/

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.
Proyecto:
http://duinoblog.blogspot.com.es/

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);
}
Proyecto:
http://duinoblog.blogspot.com.es/

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

Jossema106

Proyecto:
http://duinoblog.blogspot.com.es/

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