#include <LiquidCrystal_I2C.h>
#include <Wire.h>
// Cam Project - Jetha Ke Jabaaz
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
const int stepPin = 3;
const int dirPin = 4;
int numSteps = 200 ;//200 for full step res
int timeDelay = 10;//time detween steps control of speed of motor
int direction=1;
#define speed A0
const int dir_bt=7;
const int start_bt= 8;
const int unit1=9;
const int unit10=10;
const int unit100=11;
const int universal=12;
int unit1_val=0;
int unit10_val=0;
int unit100_val=0;
int universal_val=0;
int flag=0;
int dir_ch=0;
float time_min;
float rpm;
int sum=0;
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Jetha Ke Jabaaz");
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
Serial.begin(115200);
pinMode(unit1, INPUT);
pinMode(unit10, INPUT);
pinMode(unit100, INPUT);
pinMode(universal, INPUT);
pinMode(dir_bt, INPUT);
pinMode(start_bt, INPUT);
}
void Print_dir(int direction, int dir_ch){
lcd.setCursor(1,0);
if(dir_ch!=direction){
lcd.clear();
if(direction == HIGH){
lcd.print("Direction: CW");
}
else{
lcd.print("Direction: ACW");
}
}
}
void loop() {
// if(digitalRead(universal)==HIGH){
// universal_val+=1;
// universal_val%=10;
// }
// if(digitalRead(unit1)==HIGH){
// unit1_val+=1;
// unit1_val%=10;
// }
// if(digitalRead(unit10)==HIGH){
// unit10_val+=1;
// unit10_val%=10;
// }
// if(digitalRead(unit100)==HIGH){
// unit100_val+=1;
// unit100_val%=10;
// }
// sum=unit100_val*100+unit10_val*10+unit1_val;
// Serial.print(" SUM ");
// Serial.print(sum);
// Serial.println();
int start_bt_val=digitalRead(start_bt);
direction=digitalRead(dir_bt);
if(start_bt_val==HIGH){
if(flag==0){
lcd.clear();
}
Print_dir(direction, dir_ch);
dir_ch=direction;
int read = analogRead(speed);
timeDelay = map(read,0,1023,1,3000);
// Serial.print(" Potentiometer ");
// Serial.print(read);
// Serial.println();
// Serial.print(" Time Delay ");
// Serial.print(timeDelay);
time_min= (float)200*timeDelay/(1000000);
rpm = (float)1/time_min;
// Serial.print(" Time min ");
// Serial.print(time_min);
// Serial.println(rpm);
// lcd.setCursor(1,1);
// lcd.print(" ");
// lcd.setCursor(1,1);
// lcd.print(rpm);
// Serial.println(digitalRead(dir_bt));
digitalWrite(dirPin,direction);//high for cw rotation
digitalWrite(stepPin,HIGH);
delayMicroseconds(timeDelay);
digitalWrite(stepPin,LOW);
// delayMicroseconds(timeDelay);
}
else{
if(flag){
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Jetha Ke Jabaaz");
lcd.setCursor(1,1);
lcd.print("Press Start Button to start");
}
}
flag=start_bt_val;
// delay(500);
}