Estoy probando lo de los sensores capacitivos. Hasta ahora todo bien. Esto es lo que he hecho:Resistencia de 1 megaohm entre pines 4 y 2,chapita metalica y andando.
Este es el codigo que le he puesto:
Sale todo correcto. Unos valores de 20 a 30 quando no se toca la chapa, y suben a 5000 al tocarla.
Lo que me interesa es el siguiente paso. Es decir, al darle un toque a la chapa poder conectar un rele.
Como lo puedo hacer? Gracias.
(aunque en la practica del sensor capacitivo hay tres sensores aqui lo simplifico en uno para no marearme ni a mi ni a nadie.)
Gracias.
Muchas gracias. Ya me acerco aunque no es bien bien lo que busco. Ahora mismo al poner el dedo el rele se enciende y al sacar el dedo se apaga. Lo que busco es que la placa haga una funcion de on/of. Es decir: un toque enciende el rele y se queda encendido, otro toque y lo apaga. Estoy intentanto modificar el codigo que me has dado pero me pierdo con las variables.
Mira este tutorial: http://www.arduino.cc/en/Tutorial/Switch cambia la lectura del pin y la condición (digitalread) por tu valor del capacitativo y casi lo tienes.
Prueba algo como esto (compila pero no lo he probado en un circuito)
#include<CapacitiveSensor.h>
CapacitiveSensor sensor=CapacitiveSensor(4,2);
int rele = 7;
int estado=LOW; // El estado previo de la salida
boolean cambiado=false; // Si se ha realizado un cambio de estado
void setup()
{
Serial.begin(9600);
pinMode(rele, OUTPUT);
digitalWrite(rele, estado); // Empezamos apagados
}
void loop()
{
long total1=sensor.capacitiveSensor(30);
Serial.println(total1);
if (total1 >=4000 && estado==LOW && !cambiado) {
digitalWrite(rele, HIGH);
cambiado=true;
}
else {
digitalWrite(rele, LOW);
cambiado=true;
}
if (cambiado && total1 < 4000){
cambiado=false; // Se ha soltado el sensor, preparar para próximo
}
delay(10);
}
#include<CapacitiveSensor.h>
CapacitiveSensor sensor=CapacitiveSensor(4,2);
int rele = 7;
int estado=LOW; // El estado previo de la salida
boolean cambiado=false; // Si se ha realizado un cambio de estado
void setup()
{
Serial.begin(9600);
pinMode(rele, OUTPUT);
digitalWrite(rele, estado); // Empezamos apagados
}
void loop()
{
long total1=sensor.capacitiveSensor(30);
Serial.println(total1);
if (total1 >=4000)
if (!cambiado) {
estado = !estado;
digitalWrite(rele, estado);
cambiado=true;
}
} else {
cambiado=false;
}
delay(10);
}
Conviene, y si. Miro bastantes tutoriales, aunque nunca he hecho nada de programación por eso me cuesta. Algunos no tenemos demasiado tiempo en esto aunque intentamos sacarlo de donde sea. Tambien dicho de la mejor onda.
Vale. Creo que lo he conseguido. Si alguien le quiere echar un vistazo por si tiene mejora (seguro que si) lo agradeceria.
Al tocar la chapa activa el rele y un led. Y al volver a tocar la desdactiva.
#include<CapacitiveSensor.h>
CapacitiveSensor sensor=CapacitiveSensor(4,2);
int led = 10;
int rele = 7;
int estadoAnterior = 0;
int salida = 0;
void setup()
{
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(rele, OUTPUT);
}
void loop()
{
long total1=sensor.capacitiveSensor(30);
Serial.println(total1);
if ((total1 >=4000) & (estadoAnterior <=4000)) {
salida = 1 - salida;
delay(150);
}
estadoAnterior = total1;
if(salida ==1) {
digitalWrite(led, HIGH);
digitalWrite(rele, LOW);
}
else {
digitalWrite(led, LOW);
digitalWrite(rele, HIGH);
}
delay(10);
}
Resulta que el sketch solo me funciona mientras el arduino es alimentado por el usb de la computadora. Al desconectarla de ella y alimentar por una fuente de 9v no funciona. He probado con dos tarjetas arduino y ocurre lo mismo. Es esto posible?