Der Code sieht jetzt so aus:
/*
Pinbelegung:
Arduino 1 auf 14 Display
3 auf 13
4 auf 12
5 auf 11
11 auf 6
12 auf 4
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0; // Wiederstand R1 (100K)
float R2 = 10000.0; // Wiederstand R2 (10K)
int value = 0;
#define MINIMUM 3 // StartKriterum > 0.002Vcc (ca. 0.01V )
#define MAXIMUM 614 // Ende bei > 0.6Vcc ( ca. 3.00V )
void setup()
{
pinMode(analogInput, INPUT);
lcd.begin(16, 4);
}
void loop()
{
delay(100); //Hier wird die 2,5 sek. lange pause gemacht.
// read the value at analog input
value = analogRead(4);
vout = (value * 5.0) / 1024.0 + 0.00; // see text
vin = vout ;//((R1+R2)/R2)*8.75/8.54;
//if (vin<0.09) {vin=0.0;} //statement to quash undesired reading !
lcd.setCursor(0,1);
if (vin>3.16) {lcd.print("1 Tau");}
if (vin<3.16) {lcd.write(25);}
if (vin<3.16) {lcd.write(25);}
if (vin<3.16) {lcd.write(25);}
if (vin<3.16) {lcd.write(25);}
if (vin<3.16) {lcd.write(25);}
if (vin<3.16) {lcd.write(25);}
if (vin<3.16) {lcd.write(25);}
lcd.setCursor(9,1);
if (vin>4.965) {lcd.print("5 Tau");}
if (vin<4.965) {lcd.write(25);}
if (vin<4.965) {lcd.write(25);}
if (vin<4.965) {lcd.write(25);}
if (vin<4.965) {lcd.write(25);}
if (vin<4.965) {lcd.write(25);}
if (vin<4.965) {lcd.write(25);}
if (vin<4.965) {lcd.write(25);}
/* lcd.setCursor(0,2);
if (vin>0.1) {lcd.print(millis());}
if (vin>3.16) {} */ // an dieser stelle komme ich nicht weiter. ich weis nicht wie ich den Zähler anhalten soll und die Zeit, die der Kondensator brauchte um bis hier zu laden anzuzeigen.
if (running == false && wert == 0 && starttrigger) {
running = true;
starttrigger = false;
}
if (running && startzeit == 0 && wert >= MINIMUM)
startzeit = millis();
if (running && wert >= MAXIMUM) {
running = false;
unsigned long dauer = millis() - startzeit;
Serial.print(dauer); Serial.println (" msec");
Serial.println("Entladen und Reset fuer neue Messung");
}
lcd.setCursor(0,0);
lcd.print("Kondensatorkurve");
lcd.setCursor(0, 3);
lcd.print("C1");
if (vin>0.5) {lcd.write(255);} //Hier wird der Abstand der Balken eingestellt.
if (vin<0.5) {lcd.write(25);}
if (vin>1.0) {lcd.write(255);}
if (vin<1.0) {lcd.write(25);}
if (vin>1.5) {lcd.write(255);}
if (vin<1.5) {lcd.write(25);}
if (vin>2.0) {lcd.write(255);}
if (vin<2.0) {lcd.write(25);}
if (vin>2.5) {lcd.write(255);}
if (vin<2.5) {lcd.write(25);}
if (vin>3.0) {lcd.write(255);}
if (vin<3.0) {lcd.write(25);}
if (vin>3.5) {lcd.write(255);}
if (vin<3.5) {lcd.write(25);}
if (vin>4.0) {lcd.write(255);}
if (vin<4.0) {lcd.write(25);}
if (vin>4.5) {lcd.write(255);}
if (vin<4.5) {lcd.write(25);}
if (vin>5.0) {lcd.write(255);}
if (vin<5.0) {lcd.write(25);}
lcd.setCursor(11, 3);
lcd.print(vin); lcd.print("V");
}