-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathst7735BaterryChargerSivak.ino
607 lines (555 loc) · 49.2 KB
/
st7735BaterryChargerSivak.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
////#include <Adafruit_GFX.h> // Core graphics library
////#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
//#include <Adafruit_ST7789.h> // Hardware-specific library for ST7789
////#include <Fonts/FreeSans12pt7b.h>
////#include <Fonts/FreeSerifItalic9pt7b.h>
#include <SPI.h>
// For the breakout board, you can use any 2 or 3 pins.
// These pins will also work for the 1.8" TFT shield.
////#define TFT_CS 22
////#define TFT_RST 18 // Or set to -1 and connect to Arduino RESET pin
////#define TFT_DC 21
// OPTION 2 lets you interface the display using ANY TWO or THREE PINS,
// tradeoff being that performance is not as fast as hardware SPI above.
////#define TFT_MOSI 23 // Data out
////#define TFT_SCLK 19 // Clock out
// OPTION 1 (recommended) is to use the HARDWARE SPI pins, which are unique
// to each board and not reassignable. For Arduino Uno: MOSI = pin 11 and
// SCLK = pin 13. This is the fastest mode of operation and is required if
// using the breakout board's microSD card.
// For 1.44" and 1.8" TFT with ST7735 use:
////Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC,TFT_MOSI,TFT_SCLK ,TFT_RST);
// For 1.14", 1.3", 1.54", and 2.0" TFT with ST7789:
//Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
// For ST7735-based displays, we will use this call
//Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
// OR for the ST7789-based displays, we will use this call
//Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
float p = 3.1415926;
float beforevolt=0;
unsigned int ADC_VALUE = 0;
unsigned int ADC_VALUE2 = 0;
unsigned int ADC_VALUE3 = 0;
unsigned int currentstep=1;
unsigned char currentmode=0;
unsigned char currentval=0;
unsigned long beforemillis=0;
#include <EasyButton.h>
// Arduino pin where the buttons are connected to
#define BUTTON_TWO_PIN 14
#define BUTTON_THREE_PIN 32
EasyButton button2(BUTTON_TWO_PIN);
// Buttons
EasyButton button3(BUTTON_THREE_PIN);
//Callibrated ADC
const float ADC_LUT[4096] = { 0,
96.8000,97.8000,98.8000,100.0000,101.0000,102.0000,103.0000,104.0000,105.2000,106.4000,107.4000,108.6000,109.8000,110.8000,111.8000,
113.0000,114.4000,115.8000,117.0000,118.6000,119.8000,121.2000,122.8000,124.0000,125.4000,126.8000,128.0000,129.0000,130.0000,131.0000,
132.0000,133.0000,134.0000,135.0000,136.0000,137.0000,138.0000,139.0000,140.0000,141.0000,142.0000,143.0000,144.0000,145.6000,146.8000,
148.0000,149.6000,150.8000,152.0000,153.6000,154.8000,156.0000,157.6000,158.8000,160.0000,161.2000,162.6000,163.8000,164.8000,166.0000,
167.0000,168.0000,169.4000,170.8000,171.8000,172.8000,174.0000,175.0000,176.4000,177.8000,178.8000,180.0000,181.4000,182.8000,184.0000,
185.0000,186.6000,187.8000,189.0000,190.2000,191.6000,192.8000,193.8000,194.8000,195.8000,196.8000,197.8000,198.8000,199.8000,200.8000,
201.8000,202.8000,203.8000,204.8000,205.8000,206.8000,207.8000,208.8000,209.8000,211.0000,212.0000,213.0000,214.0000,215.0000,216.2000,
217.4000,218.6000,219.6000,220.8000,221.8000,222.8000,223.8000,224.8000,225.8000,226.8000,227.8000,228.8000,229.8000,230.8000,231.8000,
232.8000,233.8000,234.8000,235.8000,236.8000,237.8000,238.8000,239.8000,240.8000,241.8000,242.8000,244.0000,245.0000,246.0000,247.0000,
248.2000,249.4000,250.4000,251.6000,252.8000,253.8000,254.8000,255.8000,256.8000,258.0000,259.0000,260.0000,261.0000,262.0000,263.2000,
264.4000,265.4000,266.6000,267.8000,268.8000,269.8000,270.8000,271.8000,273.0000,274.0000,275.4000,276.8000,278.0000,279.0000,280.4000,
281.8000,282.8000,284.0000,285.2000,286.6000,287.8000,289.0000,290.0000,291.0000,292.4000,293.6000,294.8000,295.8000,297.0000,298.0000,
299.2000,300.6000,301.8000,302.8000,304.0000,305.0000,306.0000,307.0000,308.0000,309.2000,310.4000,311.4000,312.6000,313.8000,314.8000,
315.8000,316.8000,317.8000,319.0000,320.0000,321.0000,322.6000,323.8000,325.0000,326.4000,327.8000,329.0000,330.2000,331.8000,332.8000,
334.0000,335.6000,336.8000,337.8000,338.8000,339.8000,340.8000,341.8000,342.8000,343.8000,344.8000,346.0000,347.0000,348.0000,349.0000,
350.0000,351.0000,352.0000,353.2000,354.4000,355.8000,356.8000,358.0000,359.0000,360.2000,361.6000,362.8000,363.8000,365.0000,366.0000,
367.2000,368.6000,369.6000,370.8000,371.8000,372.8000,373.8000,375.0000,376.0000,377.0000,378.0000,379.2000,380.4000,381.4000,382.6000,
383.8000,384.8000,385.8000,386.8000,388.0000,389.0000,390.0000,391.2000,392.4000,393.6000,394.8000,395.8000,396.8000,397.8000,399.0000,
400.0000,401.0000,402.0000,403.2000,404.4000,405.6000,406.8000,407.8000,408.8000,410.0000,411.0000,412.0000,413.0000,414.2000,415.4000,
416.6000,417.8000,418.8000,419.8000,420.8000,421.8000,422.8000,424.0000,425.0000,426.0000,427.0000,428.0000,429.2000,430.2000,431.4000,
432.6000,433.8000,435.0000,436.0000,437.6000,438.8000,440.0000,441.0000,442.6000,443.8000,445.0000,446.0000,447.4000,448.8000,449.8000,
450.8000,451.8000,453.0000,454.0000,455.0000,456.0000,457.0000,458.2000,459.4000,460.6000,461.8000,462.8000,463.8000,465.0000,466.2000,
467.8000,469.0000,470.2000,471.8000,473.0000,474.2000,475.8000,477.0000,478.2000,479.8000,480.8000,481.8000,482.8000,483.8000,484.8000,
485.8000,486.8000,488.0000,489.0000,490.0000,491.0000,492.0000,493.0000,494.0000,495.0000,496.0000,497.0000,498.0000,499.0000,500.0000,
501.0000,502.0000,503.0000,504.0000,505.0000,506.0000,507.0000,508.0000,509.0000,510.0000,511.0000,512.0000,513.2000,514.2000,515.4000,
516.4000,517.4000,518.6000,519.6000,520.8000,521.8000,522.8000,523.8000,524.8000,525.8000,526.8000,527.8000,529.0000,530.0000,531.4000,
532.8000,533.8000,535.0000,536.0000,537.4000,538.8000,539.8000,541.0000,542.0000,543.4000,544.8000,545.8000,546.8000,547.8000,548.8000,
549.8000,550.8000,551.8000,552.8000,553.8000,554.8000,555.8000,556.8000,557.8000,558.8000,559.8000,561.0000,562.0000,563.2000,564.6000,
565.8000,566.8000,568.0000,569.0000,570.0000,571.4000,572.8000,573.8000,574.8000,576.0000,577.0000,578.0000,579.0000,580.0000,581.0000,
582.0000,583.0000,584.0000,585.0000,586.0000,587.0000,588.0000,589.0000,590.0000,591.0000,592.0000,593.6000,594.8000,596.0000,597.2000,
598.6000,599.8000,601.0000,602.2000,603.8000,604.8000,606.0000,607.4000,608.8000,610.0000,611.0000,612.6000,613.8000,615.0000,616.2000,
617.6000,618.8000,620.0000,621.2000,622.8000,623.8000,625.0000,626.0000,627.0000,628.2000,629.2000,630.4000,631.6000,632.8000,633.8000,
634.8000,635.8000,637.0000,638.0000,639.0000,640.0000,641.2000,642.4000,643.8000,644.8000,645.8000,647.0000,648.0000,649.2000,650.4000,
651.8000,652.8000,653.8000,655.0000,656.0000,657.0000,657.8000,658.4000,659.0000,660.0000,660.8000,661.6000,662.0000,663.0000,663.8000,
664.6000,665.2000,666.0000,666.8000,667.8000,668.2000,669.0000,669.8000,670.8000,671.4000,672.0000,673.6000,674.8000,676.2000,677.8000,
679.0000,680.8000,682.0000,683.4000,684.8000,686.2000,687.8000,688.8000,689.8000,690.8000,691.6000,692.4000,693.2000,694.0000,695.0000,
696.0000,697.0000,697.8000,698.8000,699.8000,700.6000,701.4000,702.2000,703.0000,704.0000,705.2000,706.6000,707.8000,708.8000,710.0000,
711.0000,712.4000,713.8000,714.8000,716.0000,717.0000,718.2000,719.6000,720.8000,721.8000,723.0000,724.0000,725.4000,726.8000,727.8000,
729.0000,730.0000,731.2000,732.6000,733.8000,734.8000,736.0000,737.0000,738.2000,739.4000,740.8000,741.8000,742.8000,744.0000,745.0000,
746.2000,747.6000,748.8000,749.8000,751.0000,752.0000,753.0000,754.0000,755.0000,756.0000,757.0000,758.0000,759.0000,760.0000,760.8000,
761.8000,762.8000,763.8000,764.8000,765.8000,766.8000,767.8000,768.8000,769.8000,770.8000,771.8000,772.8000,774.0000,775.0000,776.0000,
777.0000,778.0000,779.0000,780.0000,781.0000,782.0000,783.0000,784.2000,785.2000,786.4000,787.6000,788.6000,789.8000,790.8000,791.8000,
792.8000,793.8000,795.0000,796.0000,797.0000,798.0000,799.0000,800.2000,801.8000,802.8000,804.0000,805.6000,806.8000,808.0000,809.4000,
810.8000,812.0000,813.2000,814.8000,815.8000,817.0000,818.0000,819.2000,820.4000,821.8000,822.8000,823.8000,825.0000,826.0000,827.0000,
828.4000,829.6000,830.8000,831.8000,832.8000,833.8000,835.0000,836.0000,837.0000,838.0000,839.0000,840.0000,841.0000,842.0000,843.0000,
844.0000,845.0000,846.0000,847.2000,848.2000,849.6000,850.8000,852.0000,853.2000,854.6000,855.8000,857.0000,858.0000,859.6000,860.8000,
862.0000,863.0000,864.4000,865.4000,866.4000,867.6000,868.6000,869.6000,870.6000,871.6000,872.6000,873.8000,874.8000,875.8000,876.8000,
877.8000,878.8000,879.8000,880.8000,882.0000,883.2000,884.8000,885.8000,887.0000,888.2000,889.8000,890.8000,892.0000,893.2000,894.8000,
895.8000,897.0000,898.0000,899.0000,900.2000,901.4000,902.6000,903.8000,904.8000,905.8000,906.8000,908.0000,909.0000,910.0000,911.2000,
912.4000,913.4000,914.4000,915.6000,916.6000,917.6000,918.8000,919.8000,920.8000,921.8000,922.8000,923.8000,924.8000,925.8000,926.8000,
928.0000,929.0000,930.0000,931.0000,932.0000,933.0000,934.2000,935.2000,936.4000,937.6000,938.6000,939.8000,940.8000,941.8000,942.8000,
943.8000,945.0000,946.0000,947.0000,948.2000,949.4000,950.6000,951.8000,952.8000,953.8000,955.0000,956.0000,957.0000,958.4000,959.6000,
960.8000,962.0000,963.4000,964.8000,966.0000,967.4000,968.8000,970.0000,971.4000,972.8000,974.0000,975.4000,976.8000,977.6000,978.4000,
979.2000,980.2000,981.0000,982.0000,983.0000,984.0000,984.8000,985.8000,986.8000,987.8000,988.6000,989.4000,990.2000,991.0000,992.0000,
993.4000,994.8000,995.8000,997.0000,998.4000,999.8000,1000.8000,1002.0000,1003.4000,1004.8000,1006.0000,1007.0000,1008.6000,1010.0000,1011.4000,
1012.8000,1014.2000,1015.8000,1017.0000,1018.8000,1020.0000,1021.6000,1023.0000,1024.4000,1025.6000,1026.8000,1027.8000,1028.8000,1029.8000,1031.0000,
1032.0000,1033.0000,1034.0000,1035.2000,1036.4000,1037.6000,1038.8000,1039.8000,1040.8000,1041.8000,1043.0000,1044.0000,1045.0000,1046.0000,1047.2000,
1048.4000,1049.6000,1050.6000,1051.8000,1052.8000,1053.8000,1054.8000,1056.0000,1057.0000,1058.0000,1059.0000,1060.0000,1061.0000,1061.8000,1062.8000,
1063.8000,1064.8000,1065.8000,1066.8000,1067.8000,1068.8000,1069.8000,1070.8000,1071.8000,1073.0000,1074.2000,1075.8000,1077.0000,1078.2000,1079.8000,
1081.0000,1082.2000,1083.8000,1085.0000,1086.2000,1087.8000,1088.8000,1089.8000,1090.8000,1091.8000,1092.8000,1093.8000,1094.8000,1095.8000,1096.8000,
1097.8000,1098.8000,1099.8000,1100.8000,1101.8000,1102.8000,1103.8000,1104.8000,1105.8000,1107.0000,1108.2000,1109.6000,1110.8000,1112.0000,1113.0000,
1114.2000,1115.6000,1116.8000,1118.0000,1119.0000,1120.2000,1121.4000,1122.6000,1123.6000,1124.8000,1125.8000,1126.8000,1127.8000,1128.8000,1129.8000,
1130.8000,1132.0000,1133.0000,1134.0000,1135.0000,1136.0000,1137.4000,1138.8000,1139.8000,1141.0000,1142.4000,1143.8000,1145.0000,1146.0000,1147.6000,
1148.8000,1150.0000,1151.2000,1152.6000,1153.6000,1154.6000,1155.6000,1156.8000,1157.8000,1158.8000,1159.8000,1160.8000,1161.8000,1162.8000,1163.8000,
1164.8000,1165.8000,1166.8000,1167.8000,1168.8000,1170.0000,1171.2000,1172.6000,1173.8000,1175.0000,1176.0000,1177.4000,1178.8000,1179.8000,1181.0000,
1182.2000,1183.6000,1184.8000,1185.8000,1186.8000,1187.8000,1188.8000,1189.8000,1190.8000,1191.8000,1192.8000,1193.8000,1194.8000,1195.8000,1196.8000,
1197.8000,1198.8000,1199.8000,1200.8000,1202.0000,1203.0000,1204.0000,1205.0000,1206.0000,1207.2000,1208.4000,1209.6000,1210.8000,1211.8000,1212.8000,
1213.8000,1214.8000,1216.0000,1216.8000,1217.8000,1218.8000,1219.4000,1220.2000,1221.0000,1222.0000,1222.8000,1223.8000,1224.8000,1225.4000,1226.2000,
1227.0000,1228.0000,1228.8000,1229.8000,1230.8000,1231.4000,1232.2000,1233.4000,1234.6000,1235.6000,1236.8000,1237.8000,1238.8000,1239.8000,1240.8000,
1242.0000,1243.0000,1244.0000,1245.0000,1246.0000,1247.2000,1248.4000,1249.4000,1250.4000,1251.6000,1252.6000,1253.6000,1254.8000,1255.8000,1256.8000,
1257.8000,1258.8000,1259.8000,1260.8000,1261.8000,1262.8000,1263.8000,1264.8000,1265.8000,1266.8000,1267.8000,1268.8000,1269.8000,1270.8000,1271.8000,
1272.8000,1273.8000,1275.0000,1276.0000,1277.0000,1278.0000,1279.0000,1280.0000,1281.0000,1282.0000,1283.0000,1284.0000,1285.0000,1286.0000,1287.0000,
1288.0000,1289.0000,1290.0000,1291.0000,1292.0000,1293.0000,1294.2000,1295.2000,1296.2000,1297.8000,1298.8000,1300.0000,1301.2000,1302.6000,1303.8000,
1305.0000,1306.2000,1307.6000,1308.8000,1310.0000,1311.2000,1312.4000,1313.4000,1314.4000,1315.4000,1316.4000,1317.4000,1318.4000,1319.4000,1320.4000,
1321.4000,1322.4000,1323.4000,1324.4000,1325.4000,1326.4000,1327.4000,1328.4000,1329.4000,1330.6000,1331.8000,1332.8000,1333.8000,1334.8000,1335.8000,
1336.8000,1338.0000,1339.0000,1340.0000,1341.0000,1342.0000,1343.2000,1344.4000,1345.8000,1347.0000,1348.0000,1349.6000,1350.8000,1352.0000,1353.4000,
1354.8000,1356.0000,1357.0000,1358.6000,1359.8000,1361.0000,1362.0000,1363.0000,1364.2000,1365.4000,1366.6000,1367.8000,1368.8000,1369.8000,1371.0000,
1372.0000,1373.0000,1374.0000,1375.2000,1376.6000,1377.8000,1378.8000,1380.0000,1381.0000,1382.2000,1383.6000,1384.8000,1385.8000,1387.0000,1388.0000,
1389.4000,1390.8000,1391.8000,1392.8000,1393.8000,1395.0000,1396.0000,1397.0000,1398.0000,1399.0000,1400.0000,1401.2000,1402.2000,1403.4000,1404.4000,
1405.6000,1406.6000,1407.8000,1408.8000,1409.8000,1411.0000,1412.0000,1413.0000,1414.2000,1415.4000,1416.8000,1417.8000,1418.8000,1420.0000,1421.0000,
1422.0000,1423.2000,1424.4000,1425.6000,1426.8000,1427.8000,1428.8000,1429.8000,1431.0000,1432.0000,1433.0000,1434.0000,1435.0000,1436.2000,1437.4000,
1438.4000,1439.6000,1440.8000,1441.8000,1442.8000,1443.8000,1445.0000,1446.0000,1447.0000,1448.0000,1449.2000,1450.2000,1451.4000,1452.6000,1453.8000,
1454.8000,1455.8000,1456.8000,1457.8000,1458.8000,1459.8000,1460.8000,1461.8000,1462.8000,1463.8000,1464.8000,1465.8000,1466.8000,1467.8000,1468.8000,
1469.8000,1470.8000,1471.8000,1472.8000,1473.8000,1474.8000,1475.8000,1477.0000,1478.0000,1479.0000,1480.0000,1481.0000,1482.2000,1483.4000,1484.4000,
1485.6000,1486.8000,1487.8000,1488.8000,1490.0000,1491.2000,1492.8000,1493.8000,1495.0000,1496.2000,1497.6000,1498.8000,1500.0000,1501.2000,1502.6000,
1503.8000,1504.8000,1506.0000,1507.0000,1508.0000,1509.0000,1510.2000,1511.4000,1512.6000,1513.8000,1514.8000,1515.8000,1516.8000,1518.0000,1519.0000,
1520.0000,1521.0000,1522.0000,1522.8000,1523.8000,1524.8000,1525.8000,1526.6000,1527.4000,1528.2000,1529.0000,1530.0000,1531.0000,1532.0000,1532.8000,
1533.8000,1534.8000,1535.8000,1536.6000,1537.8000,1538.8000,1539.8000,1540.8000,1541.8000,1542.8000,1543.8000,1544.8000,1545.8000,1546.8000,1547.8000,
1548.8000,1549.8000,1550.8000,1552.0000,1553.0000,1554.4000,1555.8000,1556.8000,1558.0000,1559.4000,1560.8000,1561.8000,1563.0000,1564.4000,1565.8000,
1567.0000,1568.0000,1569.4000,1570.8000,1571.8000,1573.0000,1574.4000,1575.8000,1576.8000,1578.0000,1579.2000,1580.6000,1581.8000,1583.0000,1584.0000,
1585.4000,1586.6000,1587.8000,1588.8000,1589.8000,1591.0000,1592.0000,1593.0000,1594.4000,1595.6000,1596.8000,1597.8000,1598.8000,1600.0000,1601.0000,
1601.8000,1602.8000,1603.8000,1604.8000,1605.6000,1606.4000,1607.4000,1608.2000,1609.0000,1610.0000,1611.0000,1612.0000,1612.8000,1613.8000,1614.8000,
1615.8000,1616.8000,1617.8000,1619.0000,1620.2000,1621.6000,1622.8000,1623.8000,1625.0000,1626.2000,1627.6000,1628.8000,1630.0000,1631.0000,1632.4000,
1633.4000,1634.6000,1635.8000,1636.8000,1637.8000,1638.8000,1639.8000,1641.0000,1642.0000,1643.0000,1644.0000,1645.0000,1646.2000,1647.2000,1648.4000,
1649.8000,1650.8000,1652.0000,1653.0000,1654.2000,1655.4000,1656.8000,1657.8000,1659.0000,1660.0000,1661.2000,1662.6000,1663.8000,1664.8000,1665.8000,
1667.0000,1668.0000,1669.0000,1670.2000,1671.4000,1672.6000,1673.8000,1674.8000,1675.8000,1677.0000,1678.0000,1679.0000,1680.0000,1681.0000,1682.0000,
1683.0000,1684.0000,1685.0000,1686.0000,1687.0000,1688.0000,1689.0000,1690.0000,1691.0000,1692.0000,1693.0000,1694.0000,1695.0000,1696.0000,1697.4000,
1698.6000,1699.8000,1700.8000,1701.8000,1703.0000,1704.0000,1705.2000,1706.4000,1707.6000,1708.8000,1709.8000,1710.8000,1712.0000,1713.0000,1714.4000,
1715.6000,1716.8000,1718.0000,1719.0000,1720.2000,1721.6000,1722.8000,1723.8000,1725.0000,1726.0000,1727.4000,1728.6000,1729.8000,1730.8000,1731.8000,
1732.8000,1734.0000,1735.0000,1736.0000,1737.0000,1738.2000,1739.4000,1740.4000,1741.6000,1742.8000,1743.8000,1744.8000,1745.8000,1747.0000,1748.0000,
1749.0000,1750.0000,1751.0000,1752.2000,1753.4000,1754.4000,1755.6000,1756.8000,1757.8000,1758.8000,1759.8000,1761.0000,1762.0000,1763.6000,1764.8000,
1766.0000,1767.2000,1768.6000,1769.8000,1771.0000,1772.2000,1773.6000,1774.8000,1776.0000,1777.4000,1778.8000,1780.0000,1781.8000,1783.0000,1784.6000,
1785.8000,1787.2000,1788.8000,1790.0000,1791.6000,1792.6000,1793.0000,1793.8000,1794.2000,1795.0000,1795.6000,1796.0000,1796.8000,1797.2000,1798.0000,
1798.6000,1799.0000,1799.8000,1800.2000,1801.0000,1801.6000,1802.0000,1802.8000,1803.2000,1804.0000,1804.6000,1805.0000,1805.8000,1806.2000,1807.0000,
1807.6000,1808.0000,1809.0000,1810.0000,1811.0000,1812.2000,1813.2000,1814.4000,1815.6000,1816.6000,1817.8000,1818.8000,1819.8000,1820.8000,1821.8000,
1822.8000,1824.0000,1825.0000,1826.4000,1827.8000,1829.0000,1830.0000,1831.6000,1832.8000,1834.0000,1835.4000,1836.8000,1838.0000,1839.0000,1840.6000,
1841.8000,1842.8000,1844.0000,1845.2000,1846.6000,1847.8000,1849.0000,1850.0000,1851.4000,1852.8000,1853.8000,1855.0000,1856.0000,1857.2000,1858.4000,
1859.6000,1860.6000,1861.8000,1862.8000,1863.8000,1864.8000,1866.0000,1867.0000,1868.0000,1869.0000,1870.2000,1871.2000,1872.4000,1873.6000,1874.6000,
1875.6000,1876.8000,1877.8000,1878.8000,1879.8000,1880.8000,1881.8000,1882.8000,1883.8000,1885.0000,1886.0000,1887.0000,1888.0000,1889.0000,1890.0000,
1891.0000,1892.2000,1893.4000,1894.6000,1895.8000,1896.8000,1897.8000,1898.8000,1899.8000,1901.0000,1902.0000,1903.0000,1904.0000,1905.2000,1906.6000,
1907.8000,1908.8000,1910.0000,1911.2000,1912.4000,1913.8000,1914.8000,1916.0000,1917.0000,1918.4000,1919.8000,1920.8000,1922.0000,1923.0000,1924.0000,
1925.4000,1926.8000,1927.8000,1929.0000,1930.0000,1931.0000,1932.4000,1933.8000,1934.8000,1936.0000,1937.0000,1938.2000,1939.4000,1940.8000,1941.8000,
1943.0000,1944.0000,1945.2000,1946.6000,1947.8000,1948.8000,1950.0000,1951.0000,1952.2000,1953.0000,1954.0000,1955.0000,1955.8000,1956.8000,1957.8000,
1958.6000,1959.4000,1960.0000,1961.0000,1962.0000,1962.8000,1963.8000,1964.8000,1965.6000,1966.4000,1967.2000,1968.0000,1969.8000,1971.0000,1972.4000,
1973.8000,1975.2000,1976.8000,1978.0000,1979.6000,1981.0000,1982.2000,1983.8000,1985.0000,1986.0000,1987.0000,1988.0000,1989.0000,1990.0000,1991.0000,
1992.0000,1993.0000,1994.0000,1995.0000,1996.2000,1997.2000,1998.2000,1999.4000,2000.4000,2001.8000,2003.0000,2004.4000,2005.8000,2007.0000,2008.2000,
2009.8000,2011.0000,2012.2000,2013.8000,2015.0000,2016.0000,2017.0000,2018.0000,2019.0000,2020.0000,2021.0000,2022.0000,2023.0000,2023.8000,2024.8000,
2025.8000,2026.8000,2027.8000,2028.8000,2029.8000,2030.8000,2031.6000,2032.4000,2033.0000,2033.8000,2034.2000,2035.0000,2035.8000,2036.2000,2037.0000,
2037.8000,2038.0000,2038.8000,2039.6000,2040.0000,2040.8000,2041.6000,2042.0000,2042.8000,2043.6000,2044.0000,2044.8000,2045.4000,2046.0000,2046.8000,
2047.4000,2048.0000,2049.0000,2050.0000,2051.0000,2052.0000,2053.0000,2054.0000,2055.0000,2056.0000,2057.0000,2058.0000,2059.0000,2060.0000,2061.0000,
2062.0000,2063.0000,2064.0000,2065.3999,2066.8000,2068.0000,2069.3999,2070.8000,2072.0000,2073.2000,2074.8000,2076.0000,2077.2000,2078.8000,2080.0000,
2081.0000,2082.0000,2083.0000,2084.0000,2085.0000,2086.0000,2087.0000,2088.0000,2089.0000,2090.0000,2091.0000,2091.8000,2092.8000,2093.8000,2094.8000,
2095.8000,2097.0000,2098.0000,2099.6001,2100.8000,2102.0000,2103.0000,2104.3999,2105.8000,2106.8000,2108.0000,2109.2000,2110.6001,2111.8000,2112.8000,
2114.0000,2115.0000,2116.0000,2117.2000,2118.3999,2119.6001,2120.8000,2121.8000,2122.8000,2124.0000,2125.0000,2126.0000,2127.0000,2128.2000,2129.6001,
2130.8000,2131.8000,2132.8000,2134.0000,2135.0000,2136.0000,2137.2000,2138.3999,2139.6001,2140.8000,2141.8000,2142.8000,2144.0000,2145.0000,2146.0000,
2147.0000,2148.0000,2149.0000,2150.0000,2151.2000,2152.2000,2153.3999,2154.3999,2155.6001,2156.6001,2157.8000,2158.8000,2159.8000,2160.8000,2161.8000,
2162.8000,2164.0000,2165.0000,2166.0000,2167.0000,2168.2000,2169.3999,2170.3999,2171.6001,2172.8000,2173.8000,2174.8000,2175.8000,2177.0000,2178.0000,
2179.2000,2180.6001,2181.8000,2182.8000,2184.0000,2185.0000,2186.2000,2187.3999,2188.8000,2189.8000,2190.8000,2192.0000,2193.0000,2194.2000,2195.3999,
2196.6001,2197.8000,2198.8000,2199.8000,2201.0000,2202.0000,2203.0000,2204.2000,2205.3999,2206.6001,2207.8000,2208.8000,2210.0000,2211.3999,2212.8000,
2214.0000,2215.3999,2216.8000,2218.0000,2219.3999,2220.8000,2222.0000,2223.2000,2224.6001,2225.3999,2226.0000,2227.0000,2228.0000,2228.8000,2229.8000,
2230.8000,2231.6001,2232.2000,2233.0000,2234.0000,2235.0000,2235.8000,2236.8000,2237.6001,2238.3999,2239.2000,2240.0000,2241.8000,2243.0000,2244.6001,
2246.0000,2247.3999,2248.8000,2250.2000,2251.8000,2253.2000,2254.8000,2256.0000,2257.2000,2258.3999,2259.6001,2260.6001,2261.8000,2262.8000,2263.8000,
2264.8000,2266.0000,2267.0000,2268.0000,2269.0000,2270.2000,2271.3999,2272.6001,2273.8000,2274.8000,2276.0000,2277.0000,2278.2000,2279.3999,2280.8000,
2281.8000,2282.8000,2284.0000,2285.0000,2286.2000,2287.6001,2288.8000,2289.6001,2290.6001,2291.6001,2292.3999,2293.3999,2294.3999,2295.2000,2296.2000,
2297.2000,2298.0000,2299.0000,2300.0000,2301.0000,2302.0000,2303.0000,2304.0000,2305.0000,2306.0000,2307.2000,2308.3999,2309.6001,2310.8000,2311.8000,
2312.8000,2314.0000,2315.0000,2316.0000,2317.2000,2318.3999,2319.6001,2320.8000,2321.8000,2323.0000,2324.0000,2325.2000,2326.6001,2327.8000,2328.8000,
2330.0000,2331.0000,2332.3999,2333.6001,2334.8000,2335.8000,2336.8000,2337.8000,2338.3999,2339.0000,2340.0000,2340.8000,2341.8000,2342.6001,2343.2000,
2344.0000,2344.8000,2345.8000,2346.6001,2347.2000,2348.0000,2349.0000,2349.8000,2350.6001,2351.3999,2352.0000,2353.0000,2354.0000,2355.2000,2356.2000,
2357.2000,2358.3999,2359.3999,2360.6001,2361.6001,2362.6001,2363.8000,2364.8000,2365.8000,2366.8000,2367.8000,2368.8000,2369.8000,2371.0000,2372.0000,
2373.0000,2374.2000,2375.3999,2376.6001,2377.8000,2378.8000,2379.8000,2380.8000,2382.0000,2383.0000,2384.0000,2385.0000,2386.2000,2387.3999,2388.6001,
2389.8000,2390.8000,2391.8000,2392.8000,2394.0000,2395.0000,2396.0000,2397.0000,2398.2000,2399.3999,2400.6001,2401.8000,2402.8000,2404.0000,2405.0000,
2406.2000,2407.6001,2408.8000,2409.8000,2411.0000,2412.0000,2413.2000,2414.6001,2415.8000,2416.8000,2418.0000,2419.2000,2420.6001,2421.8000,2423.0000,
2424.0000,2425.3999,2426.8000,2427.8000,2429.0000,2430.3999,2431.8000,2432.8000,2433.8000,2434.8000,2436.0000,2437.0000,2438.0000,2439.0000,2440.0000,
2441.2000,2442.2000,2443.3999,2444.3999,2445.6001,2446.8000,2447.8000,2448.8000,2450.0000,2451.0000,2452.2000,2453.3999,2454.8000,2455.8000,2457.0000,
2458.0000,2459.0000,2460.3999,2461.8000,2462.8000,2464.0000,2465.0000,2466.2000,2467.6001,2468.8000,2470.0000,2471.0000,2472.2000,2473.6001,2474.8000,
2476.0000,2477.0000,2478.2000,2479.6001,2480.8000,2481.8000,2483.0000,2484.0000,2485.3999,2486.6001,2487.8000,2488.8000,2490.0000,2491.0000,2492.3999,
2493.6001,2494.8000,2495.8000,2497.0000,2497.8000,2498.8000,2499.8000,2500.8000,2501.8000,2502.8000,2503.8000,2504.8000,2505.8000,2506.8000,2507.8000,
2508.6001,2509.6001,2510.6001,2511.3999,2512.3999,2513.8000,2514.8000,2515.8000,2517.0000,2518.0000,2519.2000,2520.6001,2521.8000,2522.8000,2524.0000,
2525.0000,2526.0000,2527.2000,2528.6001,2529.8000,2530.8000,2532.0000,2533.0000,2534.0000,2535.2000,2536.6001,2537.8000,2538.8000,2540.0000,2541.0000,
2542.0000,2543.2000,2544.3999,2545.3999,2546.2000,2547.2000,2548.0000,2549.0000,2550.0000,2551.0000,2552.0000,2553.0000,2554.0000,2555.0000,2555.8000,
2556.8000,2557.8000,2558.8000,2559.8000,2560.8000,2561.8000,2563.0000,2564.0000,2565.2000,2566.3999,2567.8000,2568.8000,2569.8000,2571.0000,2572.0000,
2573.2000,2574.6001,2575.8000,2576.8000,2577.8000,2578.8000,2579.8000,2580.8000,2582.0000,2583.0000,2584.0000,2585.0000,2586.0000,2587.0000,2588.0000,
2589.0000,2590.0000,2591.2000,2592.2000,2593.8000,2594.8000,2596.0000,2597.0000,2598.6001,2599.8000,2601.0000,2602.0000,2603.3999,2604.8000,2605.8000,
2607.0000,2608.2000,2609.3999,2610.3999,2611.6001,2612.8000,2613.8000,2614.8000,2615.8000,2616.8000,2618.0000,2619.0000,2620.0000,2621.0000,2622.2000,
2623.2000,2624.3999,2625.8000,2626.8000,2628.0000,2629.0000,2630.6001,2631.8000,2632.8000,2634.0000,2635.2000,2636.6001,2637.8000,2638.8000,2640.0000,
2641.0000,2642.0000,2643.0000,2644.0000,2645.0000,2646.0000,2647.0000,2648.0000,2649.0000,2650.0000,2651.0000,2652.0000,2653.0000,2653.8000,2654.8000,
2655.8000,2657.0000,2658.2000,2659.6001,2660.8000,2662.0000,2663.0000,2664.6001,2665.8000,2667.0000,2668.0000,2669.3999,2670.8000,2672.0000,2673.0000,
2674.0000,2675.3999,2676.6001,2677.8000,2678.8000,2680.0000,2681.0000,2682.2000,2683.3999,2684.8000,2685.8000,2686.8000,2688.0000,2689.0000,2690.0000,
2691.2000,2692.2000,2693.3999,2694.6001,2695.8000,2696.8000,2697.8000,2698.8000,2699.8000,2701.0000,2702.0000,2703.0000,2704.0000,2705.2000,2706.6001,
2707.8000,2708.8000,2710.0000,2711.0000,2712.0000,2713.3999,2714.6001,2715.8000,2716.8000,2718.0000,2719.0000,2720.2000,2721.2000,2722.2000,2723.2000,
2724.2000,2725.2000,2726.2000,2727.3999,2728.3999,2729.3999,2730.3999,2731.3999,2732.3999,2733.3999,2734.3999,2735.3999,2736.6001,2737.8000,2738.8000,
2740.0000,2741.0000,2742.0000,2743.2000,2744.6001,2745.8000,2746.8000,2748.0000,2749.0000,2750.0000,2751.2000,2752.6001,2753.8000,2754.8000,2756.0000,
2757.0000,2758.3999,2759.6001,2760.8000,2761.8000,2763.0000,2764.0000,2765.3999,2766.8000,2767.8000,2768.8000,2770.0000,2771.0000,2772.3999,2773.8000,
2774.8000,2776.0000,2777.0000,2778.2000,2779.6001,2780.8000,2781.8000,2783.0000,2784.0000,2785.0000,2786.0000,2787.0000,2788.0000,2789.0000,2790.0000,
2791.0000,2792.0000,2793.0000,2794.0000,2795.0000,2796.0000,2797.0000,2798.0000,2799.0000,2799.8000,2801.0000,2802.0000,2803.0000,2804.0000,2805.0000,
2806.0000,2807.0000,2808.2000,2809.2000,2810.3999,2811.3999,2812.6001,2813.6001,2814.8000,2815.8000,2816.8000,2817.8000,2819.0000,2820.0000,2821.2000,
2822.3999,2823.6001,2824.8000,2825.8000,2827.0000,2828.0000,2829.0000,2830.2000,2831.6001,2832.8000,2833.8000,2835.0000,2836.0000,2837.2000,2838.6001,
2839.8000,2840.8000,2842.0000,2843.0000,2844.2000,2845.6001,2846.8000,2847.8000,2848.8000,2849.8000,2850.8000,2851.8000,2852.8000,2853.8000,2854.8000,
2855.8000,2856.8000,2857.8000,2858.8000,2859.6001,2860.6001,2861.6001,2862.6001,2863.3999,2864.3999,2865.8000,2866.8000,2867.8000,2869.0000,2870.0000,
2871.0000,2872.2000,2873.6001,2874.8000,2875.8000,2876.8000,2878.0000,2879.0000,2880.2000,2881.2000,2882.3999,2883.6001,2884.6001,2885.8000,2886.8000,
2887.8000,2888.8000,2889.8000,2891.0000,2892.0000,2893.0000,2894.0000,2895.0000,2897.8000,2912.3999,2912.8000,2913.2000,2913.8000,2914.0000,2914.8000,
2915.0000,2915.8000,2916.0000,2916.6001,2917.0000,2917.3999,2917.8000,2918.0000,2918.8000,2919.0000,2919.8000,2920.0000,2920.6001,2921.0000,2921.3999,
2921.8000,2922.2000,2922.8000,2923.0000,2923.8000,2924.0000,2924.6001,2925.0000,2925.3999,2925.8000,2926.2000,2926.8000,2927.0000,2927.8000,2928.0000,
2929.0000,2930.2000,2931.6001,2932.8000,2934.0000,2935.0000,2936.2000,2937.6001,2938.8000,2939.8000,2941.0000,2942.0000,2943.3999,2944.8000,2945.8000,
2946.8000,2948.0000,2949.0000,2950.0000,2951.2000,2952.3999,2953.6001,2954.8000,2955.8000,2956.8000,2958.0000,2959.0000,2960.0000,2961.2000,2962.3999,
2963.6001,2964.8000,2965.8000,2966.8000,2968.0000,2969.0000,2970.0000,2971.0000,2972.2000,2973.3999,2974.6001,2975.8000,2976.8000,2978.0000,2979.0000,
2980.6001,2981.8000,2983.0000,2984.0000,2985.3999,2986.8000,2987.8000,2989.0000,2990.2000,2991.6001,2992.8000,2993.6001,2994.3999,2995.0000,2996.0000,
2997.0000,2998.0000,2998.8000,2999.8000,3000.8000,3001.6001,3002.2000,3003.0000,3004.0000,3005.0000,3005.8000,3006.8000,3007.8000,3008.8000,3010.0000,
3011.0000,3012.2000,3013.6001,3014.8000,3016.0000,3017.0000,3018.3999,3019.8000,3020.8000,3022.0000,3023.2000,3024.6001,3025.8000,3026.8000,3027.8000,
3029.0000,3030.0000,3031.2000,3032.3999,3033.6001,3034.8000,3035.8000,3037.0000,3038.0000,3039.0000,3040.2000,3041.3999,3042.3999,3043.6001,3044.6001,
3045.8000,3046.8000,3047.8000,3048.8000,3049.8000,3050.8000,3051.8000,3053.0000,3054.0000,3055.0000,3056.0000,3057.3999,3058.8000,3060.0000,3061.2000,
3062.8000,3064.0000,3065.0000,3066.6001,3067.8000,3069.0000,3070.3999,3071.8000,3073.0000,3074.0000,3075.0000,3076.0000,3077.0000,3078.2000,3079.2000,
3080.3999,3081.6001,3082.6001,3083.8000,3084.8000,3085.8000,3086.8000,3088.0000,3089.0000,3090.0000,3091.0000,3092.2000,3093.6001,3094.8000,3095.8000,
3096.8000,3098.0000,3099.0000,3100.0000,3101.0000,3102.3999,3103.6001,3104.6001,3105.8000,3106.8000,3107.8000,3108.8000,3109.8000,3110.8000,3111.8000,
3112.8000,3113.8000,3114.8000,3116.0000,3117.0000,3118.0000,3119.0000,3120.0000,3121.0000,3122.0000,3123.0000,3124.0000,3125.0000,3126.0000,3127.2000,
3128.2000,3129.2000,3130.2000,3131.3999,3132.3999,3133.3999,3134.6001,3135.6001,3136.6001,3137.3999,3138.3999,3139.2000,3140.0000,3141.0000,3142.0000,
3143.0000,3144.0000,3145.0000,3145.8000,3146.8000,3147.8000,3148.8000,3149.8000,3150.8000,3151.6001,3152.6001,3153.6001,3154.8000,3155.8000,3156.8000,
3157.8000,3158.8000,3159.8000,3161.0000,3162.0000,3163.0000,3164.0000,3165.0000,3166.2000,3167.2000,3168.3999,3169.3999,3170.3999,3171.3999,3172.3999,
3173.3999,3174.3999,3175.3999,3176.3999,3177.3999,3178.3999,3179.3999,3180.3999,3181.3999,3182.3999,3183.3999,3184.3999,3185.6001,3186.8000,3187.8000,
3188.8000,3190.0000,3191.0000,3192.0000,3193.2000,3194.3999,3195.6001,3196.8000,3197.8000,3198.8000,3200.0000,3201.0000,3202.0000,3203.0000,3204.0000,
3205.0000,3206.0000,3207.0000,3208.0000,3209.0000,3210.0000,3211.0000,3212.0000,3213.0000,3214.0000,3215.0000,3216.0000,3217.0000,3218.0000,3219.0000,
3220.0000,3221.0000,3222.0000,3223.0000,3224.0000,3225.0000,3226.0000,3227.0000,3228.0000,3229.0000,3230.0000,3230.8000,3231.8000,3232.8000,3233.8000,
3234.8000,3235.8000,3236.8000,3237.8000,3238.6001,3239.6001,3240.3999,3241.3999,3242.2000,3243.2000,3244.0000,3245.0000,3246.0000,3247.0000,3248.0000,
3249.0000,3250.0000,3251.0000,3252.0000,3253.0000,3254.0000,3255.0000,3256.2000,3257.2000,3258.2000,3259.2000,3260.3999,3261.3999,3262.3999,3263.6001,
3264.6001,3265.3999,3266.2000,3267.0000,3268.0000,3269.0000,3269.8000,3270.8000,3271.8000,3272.8000,3273.6001,3274.3999,3275.2000,3276.0000,3277.0000,
3278.0000,3278.8000,3279.8000,3280.8000,3281.8000,3283.0000,3284.0000,3285.0000,3286.0000,3287.0000,3288.2000,3289.2000,3290.3999,3291.6001,3292.6001,
3293.8000,3294.8000,3295.8000,3296.8000,3297.8000,3298.6001,3299.2000,3300.0000,3301.0000,3302.0000,3302.8000,3303.8000,3304.8000,3305.8000,3306.3999,
3307.2000,3308.0000,3309.0000,3310.0000,3310.8000,3311.8000,3312.8000,3313.6001,3314.3999,3315.0000,3316.0000,3317.0000,3317.8000,3318.8000,3319.6001,
3320.3999,3321.2000,3322.0000,3323.0000,3323.8000,3324.8000,3325.8000,3326.3999,3327.2000,3328.0000,3329.0000,3330.0000,3331.0000,3332.0000,3333.0000,
3334.0000,3335.0000,3336.0000,3336.8000,3337.8000,3338.8000,3339.8000,3340.8000,3341.8000,3342.8000,3343.8000,3344.8000,3345.6001,3346.6001,3347.3999,
3348.2000,3349.0000,3350.0000,3351.0000,3352.0000,3352.8000,3353.8000,3354.8000,3355.8000,3356.8000,3357.6001,3358.3999,3359.2000,3360.0000,3361.0000,
3362.0000,3363.0000,3363.8000,3364.8000,3365.8000,3366.8000,3367.6001,3368.3999,3369.2000,3370.0000,3371.0000,3372.0000,3373.0000,3373.8000,3374.8000,
3375.8000,3376.6001,3377.2000,3378.0000,3379.0000,3379.8000,3380.8000,3381.3999,3382.0000,3383.0000,3383.8000,3384.8000,3385.3999,3386.0000,3387.0000,
3387.8000,3388.8000,3389.6001,3390.2000,3391.0000,3392.0000,3392.8000,3393.8000,3394.8000,3395.8000,3396.8000,3397.8000,3398.8000,3399.8000,3400.8000,
3401.8000,3402.6001,3403.6001,3404.6001,3405.6001,3406.3999,3407.3999,3408.2000,3409.0000,3409.8000,3410.6001,3411.2000,3412.0000,3412.8000,3413.6001,
3414.0000,3415.0000,3415.8000,3416.3999,3417.0000,3417.8000,3418.8000,3419.2000,3420.0000,3420.8000,3421.6001,3422.0000,3423.0000,3423.8000,3424.3999,
3425.0000,3425.8000,3426.6001,3427.2000,3428.0000,3428.8000,3429.3999,3430.0000,3430.8000,3431.6001,3432.0000,3432.8000,3433.8000,3434.2000,3435.0000,
3435.8000,3436.3999,3437.0000,3437.8000,3438.6001,3439.0000,3440.0000,3440.8000,3441.8000,3442.8000,3443.8000,3444.8000,3446.0000,3447.0000,3448.0000,
3449.0000,3450.0000,3451.0000,3452.0000,3453.0000,3454.0000,3455.0000,3456.0000,3457.0000,3457.8000,3458.6001,3459.2000,3460.0000,3460.8000,3461.8000,
3462.6001,3463.2000,3464.0000,3464.8000,3465.8000,3466.3999,3467.0000,3468.0000,3468.8000,3469.8000,3470.3999,3471.0000,3472.0000,3472.8000,3473.8000,
3474.8000,3475.8000,3476.8000,3477.8000,3478.8000,3479.8000,3480.8000,3481.6001,3482.6001,3483.6001,3484.3999,3485.3999,3486.3999,3487.2000,3488.2000,
3489.0000,3489.8000,3490.8000,3491.3999,3492.0000,3493.0000,3493.8000,3494.6001,3495.2000,3496.0000,3496.8000,3497.8000,3498.3999,3499.0000,3500.0000,
3500.8000,3501.8000,3502.2000,3503.0000,3503.8000,3504.8000,3505.6001,3506.2000,3507.0000,3508.0000,3508.8000,3509.8000,3510.6001,3511.2000,3512.0000,
3513.0000,3513.8000,3514.8000,3515.3999,3516.0000,3517.0000,3517.8000,3518.8000,3519.6001,3520.2000,3521.0000,3521.8000,3522.6001,3523.2000,3524.0000,
3524.8000,3525.6001,3526.0000,3527.0000,3527.8000,3528.6001,3529.0000,3530.0000,3530.8000,3531.3999,3532.0000,3533.0000,3533.8000,3534.3999,3535.0000,
3535.8000,3536.8000,3537.3999,3538.0000,3538.8000,3539.8000,3540.3999,3541.0000,3541.8000,3542.8000,3543.3999,3544.0000,3544.8000,3545.8000,3546.3999,
3547.0000,3547.8000,3548.8000,3549.3999,3550.0000,3550.8000,3551.8000,3552.3999,3553.2000,3554.0000,3555.0000,3556.0000,3557.0000,3557.8000,3558.8000,
3559.8000,3560.6001,3561.3999,3562.2000,3563.0000,3564.0000,3565.0000,3565.8000,3566.8000,3567.8000,3568.6001,3569.0000,3569.8000,3570.6001,3571.0000,
3571.8000,3572.6001,3573.0000,3573.8000,3574.6001,3575.0000,3575.8000,3576.8000,3577.0000,3578.0000,3578.8000,3579.2000,3580.0000,3580.8000,3581.2000,
3582.0000,3582.8000,3583.2000,3584.0000,3584.8000,3585.2000,3586.0000,3586.6001,3587.0000,3587.8000,3588.6001,3589.0000,3589.8000,3590.3999,3591.0000,
3591.8000,3592.2000,3593.0000,3593.8000,3594.0000,3594.8000,3595.6001,3596.0000,3596.8000,3597.3999,3598.0000,3598.8000,3599.2000,3600.0000,3600.8000,
3601.8000,3602.8000,3603.6001,3604.3999,3605.2000,3606.0000,3607.0000,3608.0000,3608.8000,3609.8000,3610.8000,3611.6001,3612.3999,3613.2000,3614.0000,
3615.0000,3616.0000,3616.8000,3617.3999,3618.0000,3618.8000,3619.2000,3620.0000,3620.8000,3621.2000,3622.0000,3622.8000,3623.2000,3624.0000,3624.8000,
3625.2000,3626.0000,3626.8000,3627.0000,3628.0000,3628.8000,3629.0000,3629.8000,3630.6001,3631.0000,3631.8000,3632.6001,3633.2000,3634.0000,3634.8000,
3635.3999,3636.0000,3636.8000,3637.8000,3638.2000,3639.0000,3639.8000,3640.6001,3641.0000,3642.0000,3642.8000,3643.3999,3644.0000,3644.8000,3645.8000,
3646.2000,3647.0000,3647.8000,3648.6001,3649.0000,3650.0000,3650.8000,3651.2000,3652.0000,3652.8000,3653.3999,3654.0000,3654.8000,3655.6001,3656.0000,
3657.0000,3657.8000,3658.3999,3659.0000,3659.8000,3660.6001,3661.0000,3661.8000,3662.8000,3663.2000,3664.0000,3664.8000,3665.3999,3666.0000,3666.8000,
3667.8000,3668.2000,3669.0000,3669.8000,3670.3999,3671.0000,3671.8000,3672.6001,3673.0000,3674.0000,3674.8000,3675.3999,3676.0000,3676.8000,3677.6001,
3678.0000,3679.0000,3679.8000,3680.3999,3681.0000,3681.8000,3682.3999,3683.0000,3683.8000,3684.3999,3685.0000,3685.8000,3686.3999,3687.0000,3687.8000,
3688.6001,3689.0000,3689.8000,3690.6001,3691.0000,3691.8000,3692.6001,3693.0000,3693.8000,3694.6001,3695.0000,3695.8000,3696.8000,3697.2000,3698.0000,
3698.8000,3699.3999,3700.0000,3700.8000,3701.6001,3702.0000,3702.8000,3703.8000,3704.2000,3705.0000,3705.8000,3706.2000,3707.0000,3707.8000,3708.3999,
3709.0000,3709.8000,3710.6001,3711.0000,3712.0000,3712.8000,3713.3999,3714.0000,3714.8000,3715.6001,3716.0000,3717.0000,3717.8000,3718.3999,3719.0000,
3719.8000,3720.6001,3721.0000,3722.0000,3722.8000,3723.3999,3724.0000,3724.8000,3725.8000,3726.2000,3727.0000,3727.8000,3728.3999,3729.0000,3729.8000,
3730.3999,3731.0000,3731.8000,3732.3999,3733.0000,3733.8000,3734.2000,3735.0000,3735.8000,3736.2000,3737.0000,3737.8000,3738.2000,3739.0000,3739.8000,
3740.2000,3741.0000,3741.8000,3742.0000,3742.8000,3743.8000,3744.0000,3744.8000,3745.8000,3746.2000,3747.0000,3747.8000,3748.2000,3749.0000,3749.8000,
3750.3999,3751.0000,3751.8000,3752.3999,3753.0000,3753.8000,3754.6001,3755.0000,3755.8000,3756.6001,3757.0000,3757.8000,3758.6001,3759.0000,3760.0000,
3760.6001,3761.0000,3761.8000,3762.2000,3762.8000,3763.3999,3764.0000,3764.8000,3765.0000,3765.8000,3766.2000,3766.8000,3767.3999,3768.0000,3768.8000,
3769.0000,3769.8000,3770.2000,3770.8000,3771.6001,3772.0000,3772.8000,3773.0000,3773.8000,3774.2000,3775.0000,3775.6001,3776.0000,3777.0000,3778.0000,
3779.0000,3780.0000,3781.0000,3782.0000,3783.0000,3784.0000,3785.0000,3786.0000,3787.0000,3788.0000,3789.0000,3790.0000,3791.0000,3792.0000,3792.8000,
3793.0000,3793.3999,3793.8000,3794.2000,3794.8000,3795.0000,3795.6001,3796.0000,3796.3999,3796.8000,3797.0000,3797.8000,3798.0000,3798.6001,3798.8000,
3799.2000,3799.8000,3800.0000,3800.6001,3801.0000,3801.3999,3801.8000,3802.0000,3802.8000,3803.0000,3803.6001,3803.8000,3804.2000,3804.8000,3805.0000,
3805.8000,3806.0000,3806.3999,3806.8000,3807.0000,3807.8000,3808.0000,3808.8000,3809.2000,3810.0000,3810.8000,3811.2000,3812.0000,3812.8000,3813.0000,
3813.8000,3814.6001,3815.0000,3815.8000,3816.6001,3817.0000,3817.8000,3818.3999,3819.0000,3819.8000,3820.3999,3821.0000,3821.8000,3822.3999,3823.0000,
3823.8000,3824.2000,3824.8000,3825.6001,3826.0000,3826.8000,3827.0000,3827.8000,3828.2000,3829.0000,3829.6001,3830.0000,3830.8000,3831.0000,3831.8000,
3832.3999,3833.0000,3833.6001,3834.0000,3834.8000,3835.2000,3835.8000,3836.3999,3837.0000,3837.8000,3838.0000,3838.8000,3839.2000,3839.8000,3840.6001,
3841.0000,3841.8000,3842.0000,3842.8000,3843.2000,3843.8000,3844.3999,3845.0000,3845.6001,3846.0000,3846.8000,3847.0000,3847.8000,3848.2000,3848.8000,
3849.3999,3850.0000,3850.8000,3851.0000,3851.8000,3852.0000,3852.8000,3853.3999,3854.0000,3854.6001,3855.0000,3855.8000,3856.0000,3856.8000,3857.3999,
3858.0000,3858.8000,3859.2000,3860.0000,3860.6001,3861.0000,3861.8000,3862.3999,3863.0000,3863.8000,3864.2000,3865.0000,3865.8000,3866.0000,3866.8000,
3867.3999,3868.0000,3868.8000,3869.2000,3870.0000,3870.8000,3871.0000,3871.8000,3872.3999,3873.0000,3873.6001,3874.0000,3874.8000,3875.0000,3875.8000,
3876.2000,3876.8000,3877.3999,3878.0000,3878.6001,3879.0000,3879.8000,3880.0000,3880.8000,3881.2000,3881.8000,3882.3999,3883.0000,3883.6001,3884.0000,
3884.8000,3885.0000,3885.8000,3886.2000,3886.8000,3887.3999,3888.0000,3888.8000,3889.0000,3889.8000,3890.6001,3891.0000,3891.8000,3892.3999,3893.0000,
3893.8000,3894.2000,3895.0000,3895.6001,3896.0000,3896.8000,3897.3999,3898.0000,3898.8000,3899.2000,3900.0000,3900.8000,3901.2000,3901.8000,3902.6001,
3903.0000,3903.8000,3904.3999,3905.0000,3905.6001,3906.0000,3906.8000,3907.2000,3907.8000,3908.3999,3909.0000,3909.8000,3910.0000,3910.8000,3911.2000,
3911.8000,3912.3999,3913.0000,3913.8000,3914.0000,3914.8000,3915.2000,3915.8000,3916.3999,3917.0000,3917.8000,3918.0000,3918.8000,3919.2000,3919.8000,
3920.6001,3921.0000,3921.8000,3922.2000,3923.0000,3923.6001,3924.0000,3924.8000,3925.3999,3926.0000,3926.8000,3927.0000,3927.8000,3928.6001,3929.0000,
3929.8000,3930.2000,3931.0000,3931.6001,3932.0000,3932.8000,3933.3999,3934.0000,3934.8000,3935.0000,3935.8000,3936.3999,3937.0000,3937.6001,3938.0000,
3938.8000,3939.0000,3939.8000,3940.2000,3940.8000,3941.3999,3942.0000,3942.6001,3943.0000,3943.8000,3944.0000,3944.8000,3945.2000,3945.8000,3946.3999,
3947.0000,3947.6001,3948.0000,3948.8000,3949.0000,3949.8000,3950.2000,3950.8000,3951.3999,3952.0000,3952.6001,3953.0000,3953.8000,3954.2000,3954.8000,
3955.3999,3956.0000,3956.8000,3957.0000,3957.8000,3958.3999,3959.0000,3959.6001,3960.0000,3960.8000,3961.2000,3961.8000,3962.6001,3963.0000,3963.8000,
3964.0000,3964.8000,3965.3999,3966.0000,3966.6001,3967.0000,3967.8000,3968.2000,3968.8000,3969.3999,3970.0000,3970.6001,3971.0000,3971.8000,3972.0000,
3972.8000,3973.2000,3973.8000,3974.3999,3975.0000,3975.8000,3976.0000,3976.8000,3977.0000,3977.8000,3978.3999,3979.0000,3979.6001,3980.0000,3980.8000,
3981.0000,3981.8000,3982.2000,3982.8000,3983.3999,3984.0000,3984.6001,3985.0000,3985.8000,3986.0000,3986.8000,3987.0000,3987.8000,3988.2000,3988.8000,
3989.3999,3989.8000,3990.3999,3991.0000,3991.6001,3992.0000,3992.8000,3993.0000,3993.8000,3994.0000,3994.8000,3995.2000,3995.8000,3996.3999,3997.0000,
3997.3999,3998.0000,3998.6001,3999.0000,3999.8000,4000.0000,4000.8000,4001.2000,4001.8000,4002.6001,4003.0000,4003.8000,4004.0000,4004.8000,4005.3999,
4006.0000,4006.6001,4007.0000,4007.8000,4008.2000,4008.8000,4009.6001,4010.0000,4010.8000,4011.0000,4011.8000,4012.3999,4013.0000,4013.6001,4014.0000,
4014.8000,4015.2000,4015.8000,4016.3999,4017.0000,4017.3999,4018.0000,4018.6001,4019.0000,4019.6001,4020.0000,4020.6001,4021.0000,4021.6001,4022.0000,
4022.6001,4023.0000,4023.6001,4024.0000,4024.8000,4025.0000,4025.8000,4026.0000,4026.8000,4027.0000,4027.8000,4028.0000,4028.8000,4029.0000,4029.8000,
4030.0000,4030.8000,4031.0000,4031.8000,4032.0000,4032.8000,4033.2000,4033.8000,4034.6001,4035.0000,4035.8000,4036.0000,4036.8000,4037.2000,4038.0000,
4038.6001,4039.0000,4039.8000,4040.0000,4040.8000,4041.2000,4042.0000,4042.6001,4043.0000,4043.8000,4044.0000,4044.8000,4045.2000,4046.0000,4046.6001,
4047.0000,4047.8000,4048.0000,4048.8000,4049.2000,4049.8000,4050.2000,4050.8000,4051.3999,4052.0000,4052.6001,4053.0000,4053.6001,4054.0000,4054.8000,
4055.0000,4055.8000,4056.0000,4056.8000,4057.0000,4057.8000,4058.2000,4058.8000,4059.3999,4060.0000,4060.3999,4061.0000,4061.6001,4062.0000,4062.8000,
4063.0000,4063.8000,4064.0000,4064.8000,4065.2000,4066.0000,4066.6001,4067.0000,4067.8000,4068.0000,4068.8000,4069.3999,4070.0000,4070.8000,4071.0000,
4071.8000,4072.2000,4073.0000,4073.6001,4074.0000,4074.8000,4075.0000,4075.8000,4076.3999,4077.0000,4077.8000,4078.0000,4078.8000,4079.2000,4080.00
};
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
U8G2_PCD8544_84X48_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 33, /* data=*/ 25, /* cs=*/ 19, /* dc=*/ 12, /* reset=*/ 17); // Nokia 5110 Display
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(27, INPUT);
pinMode(21, OUTPUT);
button2.begin();
button3.begin();
button2.onPressed(onButton2Pressed);
button3.onPressed(onButton3Pressed);
// analogSetAttenuation(26,ADC_0db);
////digitalWrite(32,LOW);
// analogSetSamples(12);
analogSetClockDiv(64);
analogSetCycles(32);
analogSetPinAttenuation(27, ADC_0db);
analogSetPinAttenuation(13, ADC_11db);
analogSetPinAttenuation(26, ADC_0db);
ledcSetup(0, 65000, 10);
ledcAttachPin(21, 0);
currentstep=1;
ledcWrite(0, currentstep); //0% pwm
////tft.initR(INITR_BLACKTAB); // Init ST7735S chip, black tab
////tft.setRotation(1);
Serial.println(F("Initialized"));
//// uint16_t time = millis();
////tft.fillScreen(ST77XX_BLACK);
////time = millis() - time;
//// Serial.println(time, DEC);
////tft.fillScreen(ST77XX_BLACK);
//// testdrawtext("Sktechnologie 2021 Sivak", ST77XX_BLUE);
u8g2.begin();
u8g2.setFont(u8g2_font_6x10_tf);
u8g2.setFontRefHeightExtendedText();
u8g2.setDrawColor(1);
u8g2.setFontPosTop();
u8g2.setFontDirection(0);
u8g2.clearBuffer();
u8g2.drawStr( 0, 0, "Sivak Charger.");
u8g2.sendBuffer();
beforemillis=millis();
}
// Callback function to be called when button2 is pressed
void onButton2Pressed() {
Serial.println("Button2 has been pressed!");
//ledcWrite(0, 338);
currentmode=currentmode+1;
if (currentmode>2)
{
Serial.println("[OFF][][]");
currentmode=0;
}
if (currentmode==1) Serial.println("[][CV][]");
if (currentmode==2) Serial.println("[][][CC]");
currentval=0;
}
// Callback function to be called when button3 is pressed
void onButton3Pressed() {
Serial.println("Button3 has been pressed!");
//ledcWrite(0, 512);
currentval=currentval+1;
if (currentval>2)
{
if (currentmode==1) Serial.println("<0V><><>");
if (currentmode==2) Serial.println("<0A><><>");
currentval=0;
}
if ((currentmode==1)&&(currentval==1)) Serial.println("<><12.6V><>");
if ((currentmode==1)&&(currentval==2)) Serial.println("<><><13.3V>");
if ((currentmode==2)&&(currentval==1)) Serial.println("<><0.1A><>");
if ((currentmode==2)&&(currentval==2)) Serial.println("<><><0.3A>");
}
void testdrawtext(char *text, uint16_t color) {
////tft.setCursor(0, 0);
////tft.setTextColor(color);
////tft.setTextWrap(true);
////tft.print(text);
}
void loop() {
// put your main code here, to run repeatedly:
button2.read();
button3.read();
ADC_VALUE=0;
for (int i=0;i<16;i++)
{
ADC_VALUE +=(int)ADC_LUT[analogRead(27)];
}
ADC_VALUE=ADC_VALUE/16;
ADC_VALUE2 =0;
for (int i=0;i<16;i++)
{
ADC_VALUE2 += (int)ADC_LUT[analogRead(13)];
}
ADC_VALUE2=ADC_VALUE2/16;
ADC_VALUE2-=2020;
ADC_VALUE3 =0;
for (int i=0;i<16;i++)
{
ADC_VALUE3 += (int)ADC_LUT[analogRead(26)];
}
ADC_VALUE3=ADC_VALUE3/16;
float voltage_value =((float)ADC_VALUE * 0.0050 ); //20.27 18.097* ((float)ADC_VALUE * 1.1 ) / (4095)
float voltage_value2 = ((float)ADC_VALUE2 * 0.037 );//0.38; (((float)ADC_VALUE2 * 1.1 ) / (4095))/0.18
float voltage_value3 = ((float)ADC_VALUE3 * 0.0051 );//0.38; (((float)ADC_VALUE2 * 1.1 ) / (4095))/0.18
if (((voltage_value2>2.5)&&(voltage_value2<100))||(voltage_value<2.6)||(voltage_value3>19)||(voltage_value>19))
{
Serial.println("Overload error!!!");
currentmode=0;
currentval=0;
Serial.print("Voltage = ");
Serial.print(voltage_value,2);
Serial.println("V");
Serial.print("Current = ");
Serial.print(voltage_value2,2);
Serial.println("A");
Serial.print("VoltageBatt = ");
Serial.print(voltage_value3,2);
Serial.println("V");
Serial.print("Current DAC=");
Serial.println(currentstep);
}
if ((millis()-1000)>beforemillis)
{
if (currentmode==0) Serial.println("[OFF][][]");
if (currentmode==1) Serial.println("[][CV][]");
if (currentmode==2) Serial.println("[][][CC]");
if ((currentmode==1)&&(currentval==1)) Serial.println("<><12.6V><>");
if ((currentmode==1)&&(currentval==2)) Serial.println("<><><13.3V>");
if ((currentmode==2)&&(currentval==1)) Serial.println("<><0.2A><>");
if ((currentmode==2)&&(currentval==2)) Serial.println("<><><0.5A>");
Serial.print("ADC VALUE = ");
Serial.println(ADC_VALUE);
Serial.print("ADC VALUE = ");
Serial.println(ADC_VALUE2);
//delay(1000);
Serial.print("Voltage = ");
Serial.print(voltage_value,2);
Serial.println("V");
Serial.print("Current = ");
Serial.print(voltage_value2,2);
Serial.println("A");
Serial.print("VoltageBatt = ");
Serial.print(voltage_value3,2);
Serial.println("V");
Serial.print("Current DAC=");
Serial.println(currentstep);
u8g2.clearBuffer();
u8g2.drawStr( 0, 0, "Sivak Charger.");
u8g2.setCursor(0,10);
u8g2.print(voltage_value,2);
u8g2.print("V");
if (currentmode==0)
{
u8g2.setCursor(35,10);
u8g2.print("OFF");
}
if (currentmode==1)
{
u8g2.setCursor(40,10);
u8g2.print("CV");
if (currentval==1)
{
u8g2.setCursor(40,20);
u8g2.print("12.6V");
}
if (currentval==2)
{
u8g2.setCursor(40,20);
u8g2.print("13.3V");
}
}
if (currentmode==2)
{
u8g2.setCursor(40,10);
u8g2.print("CC");
if (currentval==1)
{
u8g2.setCursor(40,20);
u8g2.print("0.2A");
}
if (currentval==2)
{
u8g2.setCursor(40,20);
u8g2.print("0.5A");
}
}
u8g2.setCursor(0,20);
u8g2.print(voltage_value2,2);
u8g2.print("A");
u8g2.setCursor(0,30);
u8g2.print(voltage_value3,2);
u8g2.print("V");
u8g2.sendBuffer();
beforemillis=millis();
}
if (currentmode>0)
{
if (currentmode==1) //CV
{
if (currentval>0)
{
if ((currentval==1)&&(voltage_value<(12.6+0.08))) { currentstep++;ledcWrite(0, currentstep); }
if ((currentval==1)&&(voltage_value>(12.6+0.08))) { currentstep--;ledcWrite(0, currentstep); }
if ((currentval==2)&&(voltage_value<(13.3+0.08))) { currentstep++;ledcWrite(0, currentstep); }
if ((currentval==2)&&(voltage_value>(13.3+0.08))) { currentstep--;ledcWrite(0, currentstep); }
}
else
{ currentstep=1;ledcWrite(0, currentstep); }
}
if (currentmode==2) //CC
{
if (currentval>0)
{
if ((currentval==1)&&(voltage_value2<0.2)) { currentstep++;ledcWrite(0, currentstep); }
if ((currentval==1)&&(voltage_value2>0.2)) { currentstep--;ledcWrite(0, currentstep); }
if ((currentval==2)&&(voltage_value2<0.5)) { currentstep++;ledcWrite(0, currentstep); }
if ((currentval==2)&&(voltage_value2>0.5)) { currentstep--;ledcWrite(0, currentstep); }
}
else
{ currentstep=1;ledcWrite(0, currentstep); }
}
}
else
{
currentstep=1;ledcWrite(0, 1); //OFF
}
//delay(5);
}