We all may have used the calculators, and if you are being involved in the scientific field then the scientific one too. What about building your own scientific calculator and showing it to your friends. You can do it by evive, it is an arduino powered embedded product. For more information you can watch this video. We have built a Scientific calculator having lots of functions like basic algebraic functions (addition, subtraction, multiplication and division), trigonometric functions, logarithmic function, square root and inverse trigonometric function.
An arduino sketch is made to implement this. It calculates accurately upto six decimal places and display upto four decimal place and it can be increased too.
For making this scientific calculator, you need to have this stuffs evive, keypad , breadboard and pushbuttons. After you get this stuffs, you are ready to make your own calculator. At first you should build a simple calculator, which can apply simple algebraic functions.
So for this we have take help from this link. It has built this simple calculator very effectively for crystal LCD but we have tweeked it for run on ST7735 which evive uses as its screen, you can read about more components of evive from this link. Run this code snippet and see your simple code running.
Now, as your simple calculator is working perfectly, if not then type in comment section or email us about your problem.
Now we will go step by step about journey of this simple calculator to scientific calculator.
Firstly we made it run for the decimal numbers also as it was for whole numbers only. We added the decimal button and we did this simple stuff.
For both our input numbers the algorithm is basically the same.
Let the first number be a double named 'first'. We initialize it to be zero.
We make a Boolean 'isDecimal' and initialize it as false. This means that unless the decimal point is given as an input, the number is not a decimal.
Last, declare a float 'decimals' and set it as 10.0. We will use it for keeping a counter of our place after the decimal point.
Now if isDecimal is false, it means the number is not yet a decimal. Suppose you are storing your input number from the keypad as key.
You just need to update first=first*10+key.
But if isDecimal is true, the number is a decimal. You need to now update as
first=first+key/decimals, and decimals=decimals*10.
We keep repeating the above steps until the input for some operation is detected. Then we similarly detect the second number. Using the knowledge of the operation called, we operate the numbers and print the result when '=' is detected.
Remember to restate the values of decimals=10.0 and isDecimal=false after detection for a number is complete.You can see this code snippet too.
For other functions you need to prepare the breadboard having different pushbuttons and if you have pushbuttons of different type then use, of course it will make your calculator look more beautiful.
Now, we have more buttons for the scientific functionality. We have used some colorful buttons as shown in figure. Now assign them accordingly. Take care to assign similar buttons to similar functions.
Since evive uses Arduino Mega, we have used following pins:
- sine=Pin25
- cosine=Pin27
- tangent=Pin23
- log=Pin22
- arcsin=Pin24
- arccos=Pin26
- arctan=Pin14
- root=Pin15
First try making the code for any one function (for example, sine function) using the inbuilt function 'sin(val)' of the arduino ide. Arduino ide also has pre-installed functions of cos, tan, inverse sin, inverse cos, inverse tan, log, square root.
You can view the following image for reference for making different functions.
All the codes can be downloaded from GitHub. The code is well documented and self explanatory.
The calculator works well!! We have also used evive's inbuilt buzzer to provide audio feedback in form of a beep while someone presses any button or switch. You can design the calculator which prints the results on the tft screen of the evive. Use different colors and sizes of text to decorate it. We can align the operants and the functions to make the appearance better.
Add more functions and dig harder to make it more complex
You can check more features and techSpecs of evive to make it more advanced calculator.
Watch the video of evive here.
To see more evive projects click here.