Second degree equation solver with Arduino

Arduino equation solver (1)

This instuctable is about making sort of a calculator that enables the user by using an analog 12-digit keyboard and 4 buttons to input the a,b,c variables into a equation and get the solution for it if there is any.(well if u don’t know what an second grade equation is probably u haven’t been in high school, even though you can follow this post to learn about microcontrollers.)

It can be a great electronics class project or an microcontroller starter project.  for your own use.

Arduino equation solver (1)

Step 1: Parts list

arduino board………………..http://www.oomlout.co.uk/arduino-duemilanove-p-185.html £24.17
medium size breadboard……http://www.oomlout.co.uk/breadboard-830-point-p-250.html £5.11
LCD Display (16 x 2)………………………http://www.oomlout.co.uk/lcd-display-16-x-2-p-212.html £7.15
12 digit keypad…http://cgi.ebay.com/Electric-Keypad-12-Button-Keyboard-24VDC-20mA-Max-/110690838563?pt=LH_DefaultDomain_0&hash=item19c5b02823 ……………………………$9.99
4 buttons………………………………………………………………………………………………….$1.00-0
1 potentiometer………………………………………………………………………………………..$1.00-0
16x 500ohm, 4x 1k, 1x 6k resistors ………………………………………………………..$2.00-1
3 green LEDs……………………………………………………………………………………………$0.25-0
lots of jumpers or striped wires  ………………………………………………………………$1.00-0

And patients!!!!!!

tip: if u don’t have any of this parts it is highly recommended you buy an arduino starter pack that will include almost every electronic part needed, like potentiometers, wires, leds and maybe an lcd. a good one, which i bought ,is http://www.oomlout.co.uk/starter-kit-for-arduino-ardx-p-183.html

As for the tools, a soldering iron and a wire striper and cutter should be enough.

Step 2:

The first thing u have to built is the analog keypad.I will not get into every detail as there is already an instuctable which i followed to make it. http://www.instructables.com/id/Analog-Keypad-Backpack/

I made it using 500ohm resistors instead of 1k and instead of the 12k resistor a 6k one.(u may want to use this values to have the best chances that the code works without a single variation.I also did not used a stripboard  soldered directly onto the keypads pins which is fairly easy, also i used 2 12k resistor in parallel because i didn’t had any 6k at the time.
The resistors needed for this step are 12x 500ohm and one 6k

Step 3: Puting the bread board together

First connect the lcd according to the picture the pins used are 2,3,4,5,11,12 .

Then connect the potentiometer and place a jumper to the lcd as shown.

For the buttons and the leds i propose you to follow the way i placed them.

The leds are connected to pins 15, 16, 17, 18 which in fact are the analog pins A1, A2 ,A3 , A4 and the first three indicate if you have stored a number in the variables a,b,c and the last is the go indicator for the arduino posses the data given and solve the equation.Schematic Arduino equation solver

The buttons are connected  to pins 6, 7, 8, 9 . the first three  when pressed store the given value to the variables a, b, c and the last signals the arduino to solve the equation.

The last part which needs to be connected apart from the resistors is the keyboarded  that has 3 wires, the the red and the black go to the 5v and the ground. as for the last wire it goes to the analog pin 0. ( A0 )

[box color=”#985D00″ bg=”#FFF8CB” font=”verdana” fontsize=”14 ” radius=”20 ” border=”#985D12″ float=”right” head=”Major Components in Project” headbg=”#FFEB70″ headcolor=”#985D00″]arduino board
medium size breadboard
LCD Display (16 x 2)[/box]

Step 4: The Code

Now for the most important part, the arduino code

All u have to do is to copy and upload it into your arduino and hopefully it should work fine.

The most possible malfunction is that the keyboard may not respond properly. To fix this problem what u have to do is to press the buttons on the keypad one by one and check through the serial display the outputValue1.Then in this form u have to change the numbers (1, 11, 21 ,27……)
if (outputValue1 > 1){
if (outputValue1 > 11){
if (outputValue1 > 21){
if (outputValue1 > 27){
if (outputValue1 > 33){
if (outputValue1 > 38){
if (outputValue1 > 41){
if (outputValue1 > 45){
if (outputValue1 > 47){
if (outputValue1 >= 52){
if (outputValue1 > 54){
if (outputValue1 > 56){
if (outputValue1 > 59){s1 =100;}

so when i pressed  the keys i got the numbers:
9, 16, 25, 30, 35, 40, 43, 46, 51, 53, 55, 58, 90
and i put middle numbers like  1, 11, 21, 27…..
if u do the same with the numbers that u are getting it should be easy to fix this.

Read more: Second degree equation solver with Arduino

Leave a Comment

Your email address will not be published. Required fields are marked *