Ako si vyrobiť jednoduchú matematickú kalkulačku pomocou Arduina

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





V tomto príspevku zostrojíme kalkulačku pomocou Arduina, ktorá dokáže vykonávať oveľa zložitejší aritmetický výpočet ako bežná kalkulačka.



Mottom tohto príspevku nie je vyrábať kalkulačku pomocou Arduina, ale predviesť aritmetické schopnosti Arduina, ktoré vykonáva rôzne zložité interpretácie a výpočty dát zo senzorov a iných periférií.

Pre tento zábavný projekt potrebujete iba USB kábel a Arduino podľa vášho výberu. Výsledok našich výpočtov dostaneme cez sériový monitor Arduino IDE. Ak ovládate základy jazyka C, tento projekt je hračkou a môžete si vytvoriť svoje vlastné programy, ktoré robia ešte zložitejšie aritmetické výpočty. Tu použijeme hlavičkový súbor #include, ktorý je zabudovaný v kompilátore Arduino IDE, takže nemusíte sťahovať žiadnu knižnicu.



K Arduinu môžeme dokonca pripojiť LCD displej a klávesnicu a vyrobiť vedeckú kalkulačku, ale to je predmetom iného článku. Ak poznáte program „Turbo C ++“, jedným z našich prvých programov bude pridanie dvoch čísel, všetky aritmetické výpočty sa uskutočnia v CPU počítača. Ale tu sa všetky aritmetické výpočty vykonávajú v mikrokontroléri Arduino. Začnime sčítaním, odčítaním, delením a násobením.

Tu je program s dvoma premennými a a b, pomocou týchto dvoch premenných môžeme vykonať vyššie uvedené výpočty pomocou operátorov „+, -, * /“, ktoré sú sčítanie, odčítanie, násobenie a delenie.

Program:

//-------------------Program Developed by R.Girish---------------//
#include
float a = 500
float b = 105.33
float add
float sub
float divide
float mul
void setup()
{
Serial.begin(9600)
Serial.println('Simple Arduino Calculator:')
Serial.println('n')
Serial.print('a = ')
Serial.println(a)
Serial.print('b = ')
Serial.println(b)
Serial.println('n')
Serial.print('Addition: ')
Serial.print('a + b = ') // add
add=a+b
Serial.println(add)
Serial.print('Multiplication: ')
Serial.print('a * b = ') // multiply
mul=a*b
Serial.println(mul)
Serial.print('Division: ')
Serial.print('a / b = ') // divide
divide=a/b
Serial.println(divide)
Serial.print('Subtraction: ')
Serial.print('a - b = ') // subtract
sub=a-b
Serial.println(sub)
}
void loop() // we need this to be here even though its empty
{
}
//-------------------Program Developed by R.Girish---------------//

VÝKON:

Vo vyššie uvedenom programe používame program „Float“, ktorý vykonáva desatinné funkcie, program „Serial.print ()“ používame na tlač hodnôt v sériovom monitore, zvyšok programu je samozrejmý. Premennú a a b v programe môžete zmeniť s vlastnými hodnotami.

Poďme presunúť niečo zaujímavejšie, oblasť kruhu. Vzorec pre plochu kruhu je: pi * polomer ^ 2 alebo pi krát štvorcový polomer. Pretože hodnota pí je konštantná, musíme ju v programe priradiť pomocou „float“, pretože hodnota pí je 3,14159, kde hrá desatinná čiarka.

Program:

//-------------------Program Developed by R.Girish---------------//
#include
float pi = 3.14159
float radius = 50
float area
void setup()
{
Serial.begin(9600)
Serial.println('Arduino Area Calculator:')
Serial.print('n')
Serial.print('Radius = ')
Serial.print(radius)
Serial.print('n')
area = pi*sq(radius)
Serial.print('The Area of circle is: ')
Serial.println(area)
}
void loop()
{
// we need this to be here even though it is empty
}
//-------------------Program Developed by R.Girish---------------//

VÝKON:

Jednoduchá matematická kalkulačka využívajúca Arduino

Opäť môžete v programe zmeniť svoje vlastné hodnoty. Používame „sq ()“, ktoré robí druhé mocniny čísla v zátvorke. Teraz prejdime na ďalšiu úroveň. V tomto programe použijeme Pythagorovu vetu na výpočet prepočtu trojuholníka. Vzorec za tým je: „hyp = sqrt (štvorcový (základný) + štvorcový (výška))“ alebo druhá odmocnina z (základný štvorcový + druhý štvorcový).

Program:

//-------------------Program Developed by R.Girish---------------//
#include
float base = 50.36
float height = 45.336
float hyp
void setup()
{
Serial.begin(9600)
Serial.println('Arduino Pythagoras Calculator:')
Serial.print('n')
Serial.print('base = ')
Serial.println(base)
Serial.print('height = ')
Serial.print(height)
Serial.print('n')
hyp=sqrt(sq(base) + sq(height))
Serial.print('The hypotenuse is: ')
Serial.print(hyp)
}
void loop()
{
// we need this to be here even though its empty
}
//-------------------Program Developed by R.Girish---------------//

VÝKON:

Hodnoty základne a výšky môžete zmeniť v programe svojimi vlastnými hodnotami. Použili sme „sqrt ()“, ktorý robí hodnoty druhej odmocniny v zátvorke. Poďme si urobiť obľúbený program, ktorý by sme sa naučili na našom začiatku kurzu jazyka C, série Fibonacci.

Stručne povedané, séria Fibonacci je sčítaním dvoch predchádzajúcich čísel, ktoré dávajú ďalšie číslo a tak ďalej, vždy sa začína 0, 1. Napríklad: 0, 1. Takže 0 + 1 = 1 ďalšia séria je 0, 1, 1. Takže 1 + 1 = 2. Takže ďalšia séria je 0, 1, 1, 2 ... atď. Tu napísaný program slúži na vyhľadanie Fibonacciho čísla pre prvú deviatu číslicu. Hodnotu ‘n’ v programe môžete zmeniť, aby ste získali požadovanú sériu Fibonacci.

Program:

//-------------------Program Developed by R.Girish---------------//
#include
int n=6
int first = 0
int Second = 1
int next
int c
void setup()
{
Serial.begin(9600)
Serial.print('Fibonacci series for first ')
Serial.print(n)
Serial.print(' numbers are:nn')
for ( c = 0 c {
if ( c <= 1 )
next = c
else
{
next = first + Second
first = Second
Second = next
}
Serial.println(next)
}
}
void loop()
{
// put your main code here, to run repeatedly:
}
//-------------------Program Developed by R.Girish---------------//

VÝKON:

Toto by teda dalo vášmu mozgu dosť dávok a bolo by zmätené, že niečo, čo je určené na ovládanie hardvérových periférií, robí nejaký nezmyselný matematický výpočet, ak áno, nie ste sami.

Matematika hrá v elektronike dôležitú úlohu, a preto je naša učebnica plná matematických rovníc, ktorým ani nerozumieme, a práve tu prichádzajú kalkulačky, aby nás zachránili.

Ak máte akékoľvek otázky týkajúce sa tohto jednoduchého obvodu kalkulačky pomocou Arduina, môžete ich vyjadriť prostredníctvom hodnotných komentárov.




Predchádzajúce: Obvod variabilného napájacieho zdroja 0-60V LM317HV Ďalej: Ako vyrábať elektrinu z piezoelektrických zariadení