Paso 2: Añadir código
Copie y pegue el código siguiente en el sketch de Arduino (este código es una variación de una capacidad de detección de código que es bastante estable y libre de ruido. Aquí está el enlace al código original en el Forode Arduino.
código basado en CapSense.pde por Pablo tejón 2007. Algunos cambios en cómo se declaran los pines de I/O.
código se puede encontrar aquí http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1171076259
int i;
unsigned int x, y;
flotador de accum, fout, fval =. 07; son variables para un filtro de paso bajo simple (suavizado) - fval de 1 no = filtro - 001 = filtro máx.
void setup() {}
Serial.Begin(9600);
pinMode (8, salida); pin de salida
pinMode (9, entrada); entrada de pin
pinMode (10, salida); pin guardia
digitalWrite (10, bajo);
pinMode (13, salida);
pinMode (12, salida); también podría ser alta - no use este pin para cambiar la salida aunque
}
void loop() {}
y = 0; eliminar variables
x = 0;
para (i = 0; i < 4; i ++) {/ / hacerlo cuatro veces para acumular un promedio - no realmente necesario pero toma hacia fuera alguna jitter
Transición de bajo a alto
Igual a la línea de abajo - muestra programador chuletas pero realmente no compra cualquier velocidad más
digitalWrite (8, HIGH);
mientras que el pin de sentido no es alta
mientras que (digitalRead(9)! = 1) {/ / igual que arriba manipulación puerto arriba - sólo 20 veces más lento!
x ++;
}
Delay(1);
Transición de alto a bajo
Igual que la línea de abajo - el programador de estos espectáculos chuletas pero realmente no compra cualquier velocidad más
digitalWrite (8, bajo);
mientras que el pin no es bajo--mismo como abajo sólo 20 veces más rápido
while(digitalRead(9)! = 0) {/ / igual que arriba manipulación puerto - sólo 20 veces más lento!
y ++;
}
Delay(1);
}
fout = (fval * (float) x) + ((1-fval) * acum); Suavizado fácil de filtro "fval" determina la cantidad de nuevos datos en fout
Acum = fout;
Si {} (fout > 90)
digitalWrite (13, HIGH);
digitalWrite (12, HIGH);
} else {}
digitalWrite (13, bajo);
digitalWrite (12, bajo);
}
Serial.Print ("");
Serial.println (fout (largo), DEC); Suavizada de baja a alta
}