Paso 8: El código de Arduino
/ * Sensor de combustible con Mini Pro en la salida del tanque filtrado analógico a 2 PM
D3-salida a filtro de paso bajo
Res de 1Mohm D5 a D6
D6 - centro de la tapa de Sensor
Res de D7-1Mohm a D8
D8-al positivo del capacitor de referencia
TOMA DE TIERRA
Conjunto los potenciómetros al centro
Empezar con el tanque vacío
Hay una serie de etapas en la creación
1. leer el valor crudo de "combustible" para comprobar el condensador de referencia en el paso 1
2. configuración del "combustible" para un tanque vacío
3. Ajuste el "combustible" para un tanque completo
Escrito valores para Analogwrite rango de 0 = 0volts hasta 255 = 5volts,
por lo que estamos apuntando para un valor de vaciar el tanque de "combustible" de cero con ningún LED encendido y
un valor de depósito lleno de "combustible" de 255 para que conseguir 5 voltios y 10 leds de luz
Como dije en la sección del sensor la sonda está bien amortiguada contra chapotear, pero usted siempre puede añadir un poco de scódigo moothing
Otra cosa que te gustaría probar es tener cierta atención ase efecto cuando el combustible es muy bajo, usted puede utilizar su imaginación, pero un simple flasheo todos y podría ser incluido, así
Si combustible > 27
{analogWrite(3,fuel)
}
otra cosa
{analogWrite (3.255);
retardo de 250;
analogWrite (3,0)
retardo de 250;
}
*/
#include < CapacitiveSensor.h >
CapacitiveSensor cs_5_6 = CapacitiveSensor(5,6); / / variable condensador hecho de dos tubos concéntricos de aluminio. Centro conectado a D6 con 1Mohm conectado entre 5 y 6, exterior a la tierra.
CapacitiveSensor cs_7_8 = CapacitiveSensor(7,8); / / condensador igual a variable tapa de vacío de referencia. Conectado a D8 con 1Mohm conectado entre 5 y 6, otro a tierra.
int val = 0;
int var = 0;
int trim1 = 0; //trim valores van desde 0-1023 de apagado total (0v) a en (5v), ajuste valor será 512 para la posición central (2.5v)
trim2 int = 0; //trim valores van desde 0-1023 de apagado total (0v) a en (5v), ajuste valor será 512 para la posición central (2.5v)
int analogPin = 3; el pin de salida de voltaje a la pantalla a través de filtro de paso bajo
Esta sección del código no ha sido probada
Dejo que la siguiente sección comentada hasta configurar normal es completa
Si tienes un tanque no simétrica donde la profundidad no es proporcional al volumen, teniendo en cuanto el tanque simétrico,
conectar a monitor Serial y registro combustible para cada 1/10 llenado del tanque
Inserte los como los valores para Q1-9 y descomentar la siguiente sección
/*
int P1 =??; valor del combustible para motores de 1/10 combustible capacidad, llene el tanque con combustible de 1/10 y leer val en el monitor serial
int P2 =??; valor del combustible para motores de 2/10 capacidad, llene el tanque con combustible 2/10 del combustible y leer val en el monitor serial
int P3 =??; valor del combustible de 3/10 capacidad, llene el tanque con combustible 3/10 del combustible y leer val en el monitor serial
int P4 =??; valor del combustible de 4/10 capacidad, llene el tanque con combustible 4/10 del combustible y leer val en el monitor serial
int P5 =??; valor del combustible de 5/10 combustible capacidad, llene el tanque con combustible de 5/10 y leer val en el monitor serial
int P6 =??; valor del combustible de 6/10 combustible capacidad, llene el tanque con combustible de 6/10 y leer val en el monitor serial
int Q7 =??; valor del combustible para 7/10 combustible capacidad, llene el tanque con combustible de 7/10 y leer val en el monitor serial
int Q8 =??; valor de combustible para 8/10 capacidad, llene el tanque con combustible de 8/10 del combustible y leer val en el monitor serial
int Q9 =??; valor del combustible para 9/10 capacidad, llene el tanque con combustible 9/10 del combustible y leer val en el monitor serial
*/
void setup()
{
pinMode (analogPin, entrada);
Serial.Begin(9600);
}
void loop()
{trim1 = analogRead (0); / / lee el voltaje del potenciómetro 1 como valor 0-1023, 0v a 5v
Trim2 = analogRead (3);
combustible de largo;
Ref largo;
combustible = cs_5_6. capacitiveSensorRaw (200); valor de //Raw de combustible
Ref = cs_7_8. capacitiveSensorRaw (200);
Para el paso 1 determinar el tamaño del capacitor de referencia.
Empezar por combustible en el serial monitor para nada de líquido en la punta de prueba de lectura y experimentar con diferentes condensadores para referencia para, más adelante cuando //you montado y alcanzar el paso 6, descomentar la siguiente línea
combustible = fuel-Ref+920-(512+trim1);
Ajuste 920 en línea hasta que combustible lee cero en el monitor serial para tanque en vacío,
luego llene el tanque y descomentar la línea de abajo
combustible = fuel/(10+(trim2/30)); //start con la línea comentada, hasta que haya ajustado la lectura de cero relleno
Ajuste 10 en línea anteriormente para que combustible = 255 (u otro ajustado valor, ver abajo) con tanque lleno
debido a la tolerancia de las resistencias es posible que el LM3914 puede no ser que van exactamente a 5volts, así que tal vez desee experimentar
y determinar cuál es el valor alrededor de 255 solo da 10 leds de luz
sería más fácil primero a prescindir (10+(trim2/30) y sólo experimento para conseguir la figura que le da el combustible = 255 (5v)
Luego ajustar la ecuación de divisor entero (10+(trim2/30) para darle esa figura
recordar trim2 varían en valor desde 0-1023, pero será 512 si configuró el bote hacia el centro.
CÓDIGO ADICIONAL DEPÓSITO IRREGULAR
Si está utilizando el código de depósito irregular descomentar esta siguiente sección, pero tendrá que comente la siguiente línea analogWrite(3,fuel);
/*
{
Val = combustible;
Si val < Q1
var = 0;
else if var val = 27;
else if var val = 60;
else if var val = 80;
else if var val = 105;
else if var val = 130;
else if var val = 160;
else if var val = 185;
else if var val = 210;
otra cosa
var = 255;
}
analogWrite (3, var) ;// si usted utilizan el bosquejo del tanque del irregular entonces comente la línea siguiente
*/
analogWrite(3,fuel); Escriba el valor resultante del combustible al pin digital 3.
Esta salida para ejecutarse a través de una baja pasar filtro RC, utilizando 5kohm y 10uF.
{
Serial.Print(Fuel);
Serial.println ("combustible"); //debug combustible
Serial.Print(Ref);
Serial.println ("Ref"); //debug Ref
Serial.Print(var);
Serial.println ("Var"); Var //debug
Serial.Print(Trim1);
Serial.println("T1");
Serial.Print(Trim2);
Serial.println("T2");
}
Delay (100);
}