/*#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.setCursor(0,0);
lcd.print("Hello World");
delay(5000);
//lcd.clear();
lcd.setCursor(0,1);
lcd.print("You are good");
delay(5000);
}
void loop() {
// put your main code here, to run repeatedly:
}
*/
// LCD declaration
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
// Ultrasonic sensor declarations
int trig_pin = 12;
int echo_pin = 11;
float time_flight_value;
//Assignment variables;
int shape;
int quantity;
void setup() {
pinMode(trig_pin, OUTPUT);
pinMode(echo_pin, INPUT);
Serial.begin(115200);
// Init
lcd.init();
lcd.backlight();
// Print something
lcd.setCursor(3, 0);
lcd.print("Hello, world!");
lcd.setCursor(0, 1);
lcd.print("Wokwi Online IoT");
// circle_final_measurement(quantity);
// circle_measurement();
// shape = select_shape();
// quantity = select_quantity(shape);
// if(shape == 1 ){
// circle_final_measurement(quantity);
// }else if(shape == 2){
// triangle_final_measurement(quantity);
// }else if(shape == 3){
// rectangle_final_measurement(quantity);
// }else if(shape == 4){
// cube_final_measurement(quantity);
// }
}
void loop() {
shape = select_shape();
quantity = select_quantity(shape);
if(shape == 1 ){
circle_final_measurement(quantity);
delay(5000);
}else if(shape == 2){
triangle_final_measurement(quantity);
delay(5000);
}else if(shape == 3){
rectangle_final_measurement(quantity);
delay(5000);
}else if(shape == 4){
cube_final_measurement(quantity);
delay(5000);
}
// delay(5000);
}
// A function to choose shape............
int select_shape(){
//displaying menu for user
Serial.println("Select a Shape to work with:");
Serial.println("1. Circle");
Serial.println("2. Triangle");
Serial.println("3. Rectangle");
Serial.println("4. Cube");
//waiting for user to input value
while(Serial.available()== 0){ }
int shape_number = Serial.parseInt();
//returning the selected shape
return shape_number;
}
// //A function to to select quantity by calling shape function
int select_quantity(int shape_selected){
int quantity;
switch(shape_selected){
case 1:
quantity = circle_measurement();
return quantity;
break;
case 2:
quantity = triangle_measurement();
return quantity;
break;
case 3:
quantity = rectangle_measurement();
return quantity;
break;
case 4:
quantity = cube_measurement();
return quantity;
break;
}
}
int circle_measurement(){
Serial.println("Enter the quantity to measure; ");
Serial.println("1. Area ");
Serial.println("2. Circumference ");
while(Serial.available()== 1){
}
int value = Serial.parseInt();
return value;
// Serial.println(value);
}
//function to do final calculation for the circle
float circle_final_measurement(int quantity_selected){
if(quantity_selected == 1){
//calculating area
Serial.println("enter circle radius in cm: ");
while(Serial.available() == 1){}
int r = Serial.parseInt();
float area = r*r*3.142;
Serial.println("---------------------------");
Serial.println("---------------------------");
Serial.print("Area of the circle = ");
Serial.print(area);
Serial.println("cm square");
Serial.println("Thank you!");
// return area;
}else if(quantity_selected == 2){
Serial.println("enter circle radius in cm: ");
while(Serial.available() == 1){}
int r = Serial.parseInt();
float cir = 2*r*3.142;
Serial.println("---------------------------");
Serial.println("---------------------------");
Serial.print("Circumference of the circle = ");
Serial.print(cir);
Serial.println("cm");
Serial.println("Thank you!");
}
}
// Function to select the quntity of the triangle to be measured
int triangle_measurement(){
Serial.println("Enter the quantity to measure; ");
Serial.println("1. parameter ");
Serial.println("2. Area ");
while(Serial.available()== 1){
}
int value = Serial.parseInt();
return value;
// Serial.println(value);
}
//Function to do final calculations for the triangle.
float triangle_final_measurement(int quantity_selected){
if(quantity_selected == 1){
//calculating area
Serial.println("Enter base: ");
while(Serial.available() == 1){}
int l = Serial.parseInt();
Serial.println("Enter Height: ");
while(Serial.available() == 1){}
int h = Serial.parseInt();
Serial.println("Enter hypotenus: ");
while(Serial.available() <3 ){}
int hp = Serial.parseInt();
float parameter = l+h+hp;
Serial.println("---------------------------");
Serial.println("---------------------------");
Serial.print("parameter of the triangle = ");
Serial.print(parameter);
Serial.println("cm");
Serial.println("Thank you!");
// return area;
}else if(quantity_selected == 2){
Serial.println("Enter adjacent: ");
while(Serial.available() == 1){}
int l = Serial.parseInt();
Serial.println("Enter Height: ");
while(Serial.available() == 1){}
int h = Serial.parseInt();
// Serial.println("Enter hypotenus: ");
// while(Serial.available() <3){}
// int hp = Serial.parseInt();
float area = l*h*0.5;
Serial.println("---------------------------");
Serial.println("---------------------------");
Serial.print("Area of the triangle = ");
Serial.print(area);
Serial.println("cm");
Serial.println("Thank you!");
}
}
int rectangle_measurement(){
Serial.println("Enter the quantity to measure; ");
Serial.println("1. parameter ");
Serial.println("2. Area ");
while(Serial.available()== 1){
}
int value = Serial.parseInt();
return value;
// Serial.println(value);
}
float rectangle_final_measurement(int quantity_selected){
if(quantity_selected == 1){
//calculating area
Serial.println("Enter rectangle Lenght: ");
while(Serial.available() == 1){}
int l = Serial.parseInt();
Serial.println("Enter Height: ");
while(Serial.available() == 1){}
int h = Serial.parseInt();
// Serial.println("Enter hypotenus: ");
// while(Serial.available() <3 ){}
// int hp = Serial.parseInt();
float parameter = 2*(l+h);
Serial.println("---------------------------");
Serial.println("---------------------------");
Serial.print("parameter of the rectangle = ");
Serial.print(parameter);
Serial.println("cm");
Serial.println("Thank you!");
// return area;
}else if(quantity_selected == 2){
Serial.println("Enter Lenght of Triangle: ");
while(Serial.available() == 1){}
int l = Serial.parseInt();
Serial.println("Enter Height: ");
while(Serial.available() == 1){}
int h = Serial.parseInt();
// Serial.println("Enter hypotenus: ");
// while(Serial.available() <3){}
// int hp = Serial.parseInt();
float area = l*h;
Serial.println("---------------------------");
Serial.println("---------------------------");
Serial.print("Area of the triangle = ");
Serial.print(area);
Serial.println("cm");
Serial.println("Thank you!");
}
}
int cube_measurement(){
Serial.println("Enter the quantity to measure; ");
Serial.println("1. Area ");
Serial.println("2. Volume ");
Serial.println("3. Parameter ");
while(Serial.available()== 1){
}
int value = Serial.parseInt();
return value;
// Serial.println(value);
}
float cube_final_measurement(int quantity_selected){
if(quantity_selected == 1){
//calculating area
Serial.println("Enter the Cube Lenght: ");
while(Serial.available() == 1){}
int l = Serial.parseInt();
Serial.println("Whats the Height?: ");
while(Serial.available() == 1){}
int h = Serial.parseInt();
// Serial.println("Enter Width: ");
// while(Serial.available() <3 ){}
// int hp = Serial.parseInt();
float Area = l*h;
Serial.println("---------------------------");
Serial.println("---------------------------");
Serial.print("Area of the Cube = ");
Serial.print(Area);
Serial.println("cm");
Serial.println("Thank you!");
// return area;
}else if(quantity_selected == 2){
Serial.println("Enter the Cube Lenght: ");
while(Serial.available() == 1){}
int l = Serial.parseInt();
Serial.println("Whats the Height?: ");
while(Serial.available() == 1){}
int h = Serial.parseInt();
Serial.println("Enter Width: ");
while(Serial.available() <3 ){}
int hp = Serial.parseInt();
float v = hp*l*h;
Serial.println("---------------------------");
Serial.println("---------------------------");
Serial.print("Volume of the cube = ");
Serial.print(v);
Serial.println("cm");
Serial.println("Thank you!");
}else if(quantity_selected == 3){
Serial.println("Enter the Cube Lenght: ");
while(Serial.available() == 1){}
int l = Serial.parseInt();
Serial.println("Whats the Height?: ");
while(Serial.available() == 1){}
int h = Serial.parseInt();
Serial.println("Enter Width: ");
while(Serial.available() <3 ){}
int hp = Serial.parseInt();
float p = hp+l+h;
Serial.println("---------------------------");
Serial.println("---------------------------");
Serial.print("parameter of the cube = ");
Serial.print(p);
Serial.println("cm");
Serial.println("Thank you!");
}
}
// void select_quntity(int shape_selected){
// switch(shape_selected){
// case 1:
// circle_measurement();
// break;
// //case 2:
// // triangle_measurement();
// // case 3:
// // rectangle_measurement();
// // case 3:
// // cube_measument();
// // default:
// // Serial.print("Sorry, no shape selected!");
// }
// }
// //A function to calculate area or circumference of the circle
// int circle_measurement(){
// Serial.println("What are you measuring? ");
// Serial.println("1. Area");
// Serial.println("2. Circumference");
// while(Serial.available() == 0){
// }
// int menu = Serial.parseInt();
// return menu;
// }
// void final_measurement1(int menu){
// float Area;
// int circumference;
// int radius;
// if(menu == 1){
// Serial.println("Enter radius to find area: ");
// while(Serial.available() == 0){
// }
// radius = Serial.parseInt();
// Area = radius*radius*3.142857;
// Serial.print(Area);
// }else if(menu == 2){
// Serial.println("Enter radius to find Circumference: ");
// while(Serial.available()== 0){
// }
// radius = Serial.parseInt();
// circumference = 2*radius*3.142857;
// Serial.print("The circumference is: ");
// Serial.println(circumference);
// }
// }
// int select_quntity(int shape_selected){
// int menu;
// if(shape_selected == 1){
// menu = circle_measurement();
// }
// return menu;
// }