1 | #include "floatToString.h"
|
2 | //von Tim Hirzel
|
3 | //http://forum.arduino.cc/index.php?topic=37391.0
|
4 | char command;
|
5 | String string;
|
6 |
|
7 | int strom_StationNetzPulser = A0;
|
8 | int Spannung_StationNetzPulser = A1;
|
9 | int strom_StationPulserAkku = A2;
|
10 | int Spannung_StationPulserAkku = A3;
|
11 | int strom_StationAkkuWandler = A4;
|
12 | int Spannung_StationAkkuWandler = A5;
|
13 |
|
14 | int sensorValueA0 = 0;
|
15 | int sensorValueA1 = 0;
|
16 | int sensorValueA2 = 0;
|
17 | int sensorValueA3 = 0;
|
18 | int sensorValueA4 = 0;
|
19 | int sensorValueA5 = 0;
|
20 |
|
21 | float messA0 = 0;
|
22 | float messA1 = 0;
|
23 | float messA2 = 0;
|
24 | float messA3 = 0;
|
25 | float messA4 = 0;
|
26 | float messA5 = 0;
|
27 |
|
28 | const float U = 13.80;
|
29 | const float Umin = 13.00;
|
30 | const float Umax=16.00;
|
31 | const float UDOD=11.00;
|
32 |
|
33 | int M1 = 2; // legt Mosfet1 auf Digital Pin2
|
34 | int M2 = 4; // legt Mosfet1 auf Digital Pin2
|
35 |
|
36 | void setup() {
|
37 | // Serielle Schnittstelle für Ausgabe öffnen
|
38 | Serial.begin(9600);
|
39 | Serial.println("Messwerte");
|
40 | pinMode(M1, OUTPUT); //legt M1 als Ausgang fest
|
41 | pinMode(M2, OUTPUT); //legt M2 als Ausgang fest
|
42 |
|
43 | }
|
44 |
|
45 | void loop() {
|
46 |
|
47 | for (int i=0; 25; i++){
|
48 | Serial.println("Status M1");
|
49 | Serial.println(digitalRead(M1));
|
50 | Serial.println("Status M2");
|
51 | Serial.println(digitalRead(M2));
|
52 |
|
53 |
|
54 | //***********Start Pulsung**************
|
55 |
|
56 | StationNetzPulser ();
|
57 | StationPulserAkku ();
|
58 | if (messA3 < Umin)
|
59 | {
|
60 | while (messA3 > Umax)
|
61 | {
|
62 | StationPulserAkku ();
|
63 | digitalWrite(M1, HIGH);
|
64 | Serial.println("Status M1");
|
65 | Serial.println(digitalRead(M1));
|
66 | delay(300000);
|
67 | }
|
68 | }
|
69 | else
|
70 | {
|
71 | digitalWrite(M1, LOW);
|
72 | delay(300000);
|
73 | }
|
74 | //*************Ende Pulsung*************
|
75 |
|
76 | //****Start Kapazitätsmessung***********
|
77 | StationAkkuLast ();
|
78 |
|
79 | if (messA5 > Umin)
|
80 | {
|
81 | while (messA5 > UDOD)
|
82 | {
|
83 | StationAkkuLast ();
|
84 | digitalWrite(M2, HIGH);
|
85 | Serial.println("Status M2");
|
86 | Serial.println(digitalRead(M2));
|
87 | delay(300000);
|
88 | }
|
89 | }
|
90 | else
|
91 | {
|
92 | digitalWrite(M2, LOW);
|
93 | delay(6000);
|
94 | }
|
95 | }
|
96 | }
|
97 |
|
98 | void StationNetzPulser (){
|
99 | // Strom
|
100 | sensorValueA0 = analogRead(strom_StationNetzPulser); //Hole Wert
|
101 | //510=0A
|
102 | sensorValueA0 = sensorValueA0 - 510;//510=0Ampere 0=-30A 1023=30A
|
103 | //springen um 0 reduzieren
|
104 | if (sensorValueA0 == 1)sensorValueA0 = 0;
|
105 | if (sensorValueA0 == -1)sensorValueA0 = 0;
|
106 | //Umwandeln um einen Wert zuwischen -30 und +30 zu erhalten
|
107 | messA0 = (float)30 / 512 * sensorValueA0;
|
108 | //über Serielle Schnittstelle ausgeben
|
109 | Serial.println("Strom an Station 1");
|
110 | Serial.print(floatToString(buffer, messA0, 2));
|
111 | Serial.print("A");
|
112 | Serial.print("\t");
|
113 |
|
114 | // Spannung
|
115 | sensorValueA1 = analogRead(Spannung_StationNetzPulser); //Hole Wert
|
116 | //Wert umwandeln für Anzeige 0..12.0 Volt
|
117 | messA1 = (float)12 / 1023 * sensorValueA1;
|
118 | //über Serielle Schnitstelle ausgeben
|
119 | Serial.println("Spannung an Station 1");
|
120 | Serial.print(floatToString(buffer, messA1, 2));
|
121 | Serial.println("V"); //\n
|
122 | }
|
123 |
|
124 | void StationPulserAkku (){
|
125 | // Strom
|
126 | sensorValueA2 = analogRead(strom_StationPulserAkku); //Hole Wert
|
127 | //510=0A
|
128 | sensorValueA2 = sensorValueA2 - 510;//510=0Ampere 0=-30A 1023=30A
|
129 | //springen um 0 reduzieren
|
130 | if (sensorValueA2 == 1)sensorValueA2 = 0;
|
131 | if (sensorValueA2 == -1)sensorValueA2 = 0;
|
132 | //Umwandeln um einen Wert zuwischen -30 und +30 zu erhalten
|
133 | messA2 = (float)30 / 512 * sensorValueA2;
|
134 | //über Serielle Schnittstelle ausgeben
|
135 | Serial.println("Strom an Station 2");
|
136 | Serial.print(floatToString(buffer, messA2, 2));
|
137 | Serial.print("A");
|
138 | Serial.print("\t");
|
139 |
|
140 | // Spannung
|
141 | sensorValueA3 = analogRead(Spannung_StationPulserAkku); //Hole Wert
|
142 | //Wert umwandeln für Anzeige 0..12.0 Volt
|
143 | messA3 = (float)12 / 1023 * sensorValueA3;
|
144 | //über Serielle Schnitstelle ausgeben
|
145 | Serial.println("Spannung an Station 2");
|
146 | Serial.print(floatToString(buffer, messA3, 2));
|
147 | Serial.println("V"); //\n
|
148 | }
|
149 |
|
150 | void StationAkkuLast (){
|
151 | // Strom
|
152 | sensorValueA4 = analogRead(strom_StationAkkuWandler); //Hole Wert
|
153 | //510=0A
|
154 | sensorValueA4 = sensorValueA4 - 510;//510=0Ampere 0=-30A 1023=30A
|
155 | //springen um 0 reduzieren
|
156 | if (sensorValueA4 == 1)sensorValueA4 = 0;
|
157 | if (sensorValueA4 == -1)sensorValueA4 = 0;
|
158 | //Umwandeln um einen Wert zuwischen -30 und +30 zu erhalten
|
159 | messA4 = (float)30 / 512 * sensorValueA4;
|
160 | //über Serielle Schnittstelle ausgeben
|
161 | Serial.println("Strom an Station 3");
|
162 | Serial.print(floatToString(buffer, messA4, 2));
|
163 | Serial.print("A");
|
164 | Serial.print("\t");
|
165 |
|
166 | // Spannung
|
167 | sensorValueA5 = analogRead(Spannung_StationAkkuWandler); //Hole Wert
|
168 | //Wert umwandeln für Anzeige 0..12.0 Volt
|
169 | messA5 = (float)12 / 1023 * sensorValueA5;
|
170 | //über Serielle Schnitstelle ausgeben
|
171 | Serial.println("Spannung an Station 3");
|
172 | Serial.print(floatToString(buffer, messA5, 2));
|
173 | Serial.println("V"); //\n
|
174 | }
|