Paso 9: Mi SW (gratis para que cualquiera pueda utilizar)
incluir el código de biblioteca:#include
LiquidCrystal lcd (12, 11, 5, 4, 3, 2); / / inicializar la biblioteca con los números de los pines de interfaz
int sensorPin = 0; Seleccione la entrada de pin para el potenciómetro (pin 23)
int sensor2Pin = 2; Seleccione la entrada de pin para el potenciómetro (pin 23)
int ledPin = 13; selecciona el pin para el LED
int SPKPin = 6;
int sensorValue = 0; variable para almacenar el valor que viene desde el sensor
int sensor2Value = 0; variable para almacenar el valor que viene desde el sensor
Float LiMinThreshold = 2700; Litio tensión mínima para el retiro de la carga
Float LiMaxThreshold = 4200; Litio Max Voltage para retiro de carga
Float NmhMinThreshold = 950; NMH tensión mínima para el retiro de la carga
Float NmhMaxThreshold = 1600; NMH Max Voltage para retiro de carga
Float SelectedMinThreshold = 5000;
int i;
int BatVoltage = 5000;
int FetVoltage = 5000;
TotalCurrent largo = 0;
boolean = false;
PrevMillis largo sin firmar;
MillisPassed largo sin firmar;
void CL2() {}
lcd.setCursor (0, 1); / / segunda línea primer carácter
LCD.Print("");
lcd.setCursor (0, 1); / / segunda línea primer carácter
}
void setup() {}
Serial.Begin(9600); / / iniciar el puerto serie para enviar los datos durante el funcionamiento a la PC
pinMode (ledPin, salida); //activation led y habilitar para el FET
pinMode (SPKPin, salida); //activation led y habilitar para el FET
LCD.Begin (24, 2); / / configurar número la pantalla del LCD de filas y columnas:
LCD.Print ("Bat PWR Tester[Active]"); Imprimir un mensaje en la pantalla LCD.
lcd.setCursor (0, 1); / / segunda línea primer carácter
LCD.Print ("detectar Bat tipo..."); imprimir el valor de la tensión
Delay(2000);
lcd.setCursor (0, 1); / / segunda línea primer carácter
LCD.Print("");
lcd.setCursor (0, 1); / / segunda línea primer carácter
digitalWrite (ledPin, HIGH); prende el LED
sensorValue = analogRead(sensorPin); leer el valor del sensor:
digitalWrite (ledPin, LOW); fijar el LED apagado
Detección de tipo de batería
BatVoltage = sensorValue * 4.887;
Si (BatVoltage > 4500) {}
LCD.Print ("ADVERTENCIA alta-V!");
= true;}
else if (BatVoltage > LiMinThreshold) {}
LCD.Print ("tipo: Li-Ion Bat");
SelectedMinThreshold = LiMinThreshold;}
else if (BatVoltage > NmhMinThreshold) {}
LCD.Print ("tipo: NiMH/Cd Bat");
SelectedMinThreshold = NmhMinThreshold;}
Else {}
LCD.Print ("V murciélago desconocido < 1");
= true;}
LCD.Print("V=");
LCD.Print(sensorValue*4.887); imprimir el valor de la tensión
Serial.Print("DT[ms]");
Serial.Print("\t");
Serial.Print("BAT[mV]");
Serial.Print("\t");
Serial.Print("FET[mV]");
Serial.println("");
Delay(3000);
CL2();
PrevMillis = millis();
}
void loop() {}
Si (BatVoltage > SelectedMinThreshold & &! hecho) {}
digitalWrite (ledPin, HIGH); prende el LED
sensorValue = analogRead(sensorPin); leer el valor del sensor:
sensor2Value = analogRead(sensor2Pin); leer el valor de la FET:
FetVoltage = (sensor2Value * 4.887);
BatVoltage = (sensorValue * 4.887);
CL2();
LCD.Print("V=");
LCD.Print(BatVoltage); imprimir el valor de la tensión
LCD.Print("MV");
LCD.Print(FetVoltage); imprimir el valor de la tensión
TotalCurrent = TotalCurrent + MillisPassed/1000 *(BatVoltage-FetVoltage)/2.2/3.6;
LCD.Print ("I =");
LCD.Print(TotalCurrent/1000);
LCD.Print ("mAH");
Delay(1000);
MillisPassed = millis()-PrevMillis;
PrevMillis = millis();
Serial.Print(int(MillisPassed));
Serial.Print("\t"); imprime una ficha de
Serial.Print(BatVoltage);
Serial.Print("\t"); imprime una ficha de
Serial.Print(FetVoltage);
Serial.println(""); imprime una ficha de
CL2();
}
otra cosa
{
= true;
digitalWrite (ledPin, LOW); fijar el LED apagado - parada cargando
lcd.setCursor (0, 0); / / el primer carácter de primera línea
LCD.Print ("Bat probador alimentación [DONE]"); Imprimir un mensaje en la pantalla LCD.
Cl2 (); //clear línea 2
sensorValue = analogRead(sensorPin); leer el valor del sensor:
BatVoltage = (sensorValue * 4.887);
lcd.setCursor (0, 1); / / segunda línea primer carácter
LCD.Print("V=");
LCD.Print(BatVoltage); imprimir el valor de la tensión
LCD.Print ("mV me =");
LCD.Print(TotalCurrent/1000);
LCD.Print ("mAH");
para (int i = 0; i < 100; i ++) {}
digitalWrite (SPKPin, alto);
Delay(1);
digitalWrite (SPKPin, bajo);
Delay(1);
}
Delay(1000);
}
}