1
2#include <LiquidCrystal.h>
3LiquidCrystal lcd(12, 9, 5, 4, 3, 2);
4
5#define pot 0
6#define pwm1 10
7#define pwm2 11
8
9boolean direct = 0;
10int current;
11int Shutdown=0;
12int mA = 0;
13int hours;
14int minutes;
15int seconds;
16long hour = 3600000;
17long minute = 60000;
18long second = 1000;
19
20void setup() {
21 lcd.begin(16, 2);
22
23 pinMode(pwm1, OUTPUT);
24 pinMode(pwm2, OUTPUT);
25}
26
27void loop() {
28 lcd.clear();
29 lcd.setCursor(0,0);
30 lcd.print("Coloidal I=mA ");
31 lcd.print(mA);
32 long timeNow = millis();
33 hours = (timeNow) / hour;
34 minutes = ((timeNow) % hour) / minute ;
35 seconds = (((timeNow) % hour) % minute) / second;
36 lcd.setCursor(0, 1);
37 lcd.print("T:");
38 lcd.print(hours);
39 lcd.print(":");
40 lcd.print(minutes);
41 lcd.print(":");
42 lcd.print(seconds);
43
44
45 current = analogRead(pot) / 4;
46 mA=map(current, 0,255,0,10);
47
48
49 if(direct)
50 analogWrite(pwm1, current);
51 else
52 analogWrite(pwm2, current);
53
54 direct=!direct;
55
56 if(minutes>=0 && minutes<30){
57 digitalWrite(pwm1, 0);
58 lcd.setCursor(10,1);
59 lcd.print("P:+/-");
60
61}
62 if( minutes>=30 && minutes<59){
63 digitalWrite(pwm2, 0);
64 lcd.setCursor(10,1);
65 lcd.print("P:-/+");
66 }
67
68
69 if(hours>=3){
70 digitalWrite(pwm1, 0);
71 digitalWrite(pwm2, 0);
72 lcd.setCursor(10,1);
73 lcd.print("END");
74
75 }
76 delay(100);
77
78 }
bobdavis321
a year ago
Looks a lot like myne but is missing current sensing. See bobdavis321.blogspot.com for a design with current sensing.