// Arduino DC motor speed and direct control
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 9, 5, 4, 3, 2);

#define pot      0
#define pwm1     10
#define pwm2    11

boolean direct = 0;
int current;
int Shutdown=0;
int mA = 0;
int hours;
int minutes;
int seconds;
long hour = 3600000; // 3600000 milliseconds in an hour
long minute = 60000; // 60000 milliseconds in a minute
long second = 1000; // 1000 milliseconds in a second

void setup() {
  lcd.begin(16, 2);
 
  pinMode(pwm1,   OUTPUT);
  pinMode(pwm2,   OUTPUT);
}

void loop() {
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Coloidal I=mA ");
  lcd.print(mA);
  long timeNow = millis();
  hours = (timeNow) / hour;             
  minutes = ((timeNow) % hour) / minute ;
  seconds = (((timeNow) % hour) % minute) / second;
  lcd.setCursor(0, 1);
  lcd.print("T:");
  lcd.print(hours);
  lcd.print(":");
  lcd.print(minutes);
  lcd.print(":");
  lcd.print(seconds);
 
  
  current = analogRead(pot) / 4;
  mA=map(current, 0,255,0,10);

  
  if(direct)
    analogWrite(pwm1, current);
  else
    analogWrite(pwm2, current);

  direct=!direct;
    
   if(minutes>=0 && minutes<30){
     digitalWrite(pwm1, 0);
    lcd.setCursor(10,1);
    lcd.print("P:+/-"); 
    
}
   if( minutes>=30 && minutes<59){
      digitalWrite(pwm2, 0);
    lcd.setCursor(10,1);
    lcd.print("P:-/+");       
  }

  
  if(hours>=3){
   digitalWrite(pwm1, 0);
   digitalWrite(pwm2, 0);
    lcd.setCursor(10,1);
    lcd.print("END");    
 
   } 
    delay(100);

 }
