Estoy probando un nivel de deposito con el siguiente código
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?
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.
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
}
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
}
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);
}
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.