Мазмуну:

ЖК Мишранын LCD эсептегичи: 8 кадам
ЖК Мишранын LCD эсептегичи: 8 кадам

Video: ЖК Мишранын LCD эсептегичи: 8 кадам

Video: ЖК Мишранын LCD эсептегичи: 8 кадам
Video: Удаленно контролировать энергопотребление дома | ПЗЭМ-004Т | Облако Интернета вещей RemoteXY 2024, Ноябрь
Anonim
ЖК Мишра тарабынан LCD эсептегич
ЖК Мишра тарабынан LCD эсептегич

Tinkercad долбоорлору »

Бул өзүңүздүн калькуляторуңузду түзүүнү үйрөтүүчү абдан пайдалуу долбоор. Сиз бул эсептегичти онлайнда же реалдуу жашоодо кошумча жабдуулардын жардамы менен түзө аласыз, бирок азырынча биз онлайн калькуляторду түзүүгө гана басым жасайбыз.

Жабдуулар

  • Arduino Uno R3
  • 220 Ом каршылыгы
  • 4*4 Баскычтоп
  • 16*2 ЖК
  • Районду туташтыруу үчүн зымдардын тобу

1 -кадам: Товарларыңызды TinkerCadдан чогултуп алыңыз

Товарларыңызды TinkerCadдан чогултуңуз
Товарларыңызды TinkerCadдан чогултуңуз

Стрессти жана каталарды азайтуу үчүн 2 -кадамды баштоодон мурун бардык жабдууларыңыз бар экенин текшериңиз. Туура жабдууларды колдонууну тактаңыз, жогорудагы сүрөттөгү кээ бир компоненттер башка компоненттерге окшош, андыктан алардын ортосунда аралашпаңыз. Жетекчилик катары жогорудагы сүрөттү колдонуңуз.

2 -кадам: Берилиштериңизди иреттеңиз

Берилиштериңизди иреттеңиз
Берилиштериңизди иреттеңиз

Берилиштериңизди иреттөө - бул сиздин калькуляторуңуздун кандай болорун алдын ала көрүүнүн эң жакшы жолу. Сиз каалаган калькулятордун дизайнын түзө аласыз, бирок калькулятор табигый көрүнгөнүнө жана колдонуучулар дизайнды түшүнүп, чаташпашына ишениңиз. Мен баарына эффективдүү жана түшүнүктүү типтүү классикалык эсептегичтин дизайнын колдондум. Сиз менин дизайнымды тандай аласыз же өзүңүздүн оюңузду түзө аласыз, бирок бул эмне болсо дагы чыгармачыл жана ийгилик!

3 -кадам: Зымдарды туташтыруу

Зымдарды туташтыруу
Зымдарды туташтыруу

Зымдарды туташтыруу - анын артындагы маанини түшүнбөсөңүз, оор жумуш. Бул зым менен биз төрт компонентти бириктирүүгө аракет кылып жатабыз, алар код жазуу убактысы келгенде топ болуп иштей алышат. Эгерде зымдар жок болсо, анда эч кандай ток өтпөйт, ал ишке ашпай калган долбоорго алып келет. Сиздин зымдар эч кандай түшүнбөстүккө туура туташканын текшериңиз.

Зымдарды туташтырып бүткөндөн кийин, зымдарыңыздын тыкан жана уюшулгандыгын текшериңиз, андыктан сизге жана башкаларга бул эсептегичтин жабдууларында эмне болуп жатканын түшүнүү оңой болот. Жогоруда айтканымдай, сиз зымдарды уюштуруу техникасын колдоно аласыз же өзүңүз түзө аласыз, бирок эмне кылууну чечсеңиз да, алар кандайдыр бир боштук менен чогулганын текшериңиз.

4 -кадам: Код жазуу

Код жазуу
Код жазуу
Код жазуу
Код жазуу
Код жазуу
Код жазуу

#кошуу

#кошуу #кошуу

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);

long first = 0; узак секунд = 0; эки эсе жалпы = 0;

char customKey; const байт ROWS = 4; const байт COLS = 4;

char баскычтары [ROWS] [COLS] = {{'1', '4', '7', '/'}, {'2', '5', '8', '+'}, {'3', '6', '9', '-'}, {'C', '0', '=', '*'}}; байт rowPins [ROWS] = {7, 6, 5, 4}; // клавиатуранын байт colPins'инин катар чокуларына туташуу [COLS] = {3, 2, 1, 0}; // баскычтоптун мамычанын пинуттарына туташуу

// класстын инициализациясы NewKeypad Keypad customKeypad = Баскычтоп (makeKeymap (key), rowPins, colPins, ROWS, COLS);

void setup () {lcd.begin (16, 2); // баштоо үчүн lcd (int i = 0; i <= 3; i ++); lcd.setCursor (0, 0); lcd.print ("Калькулятор"); lcd.setCursor (0, 1); lcd.print ("By Jai Mishra"); кечигүү (4000); lcd.clear (); lcd.print ("Акыркы долбоор"); кечигүү (2500); lcd.clear (); lcd.setCursor (0, 0); }

void loop () {

customKey = customKeypad.getKey (); switch (customKey) {case '0'… '9': // Бул оператор "+-*/" lcd.setCursor (0, 0) басылмайынча биринчи маанини чогултууну улантат; биринчи = биринчи * 10 + (customKey - '0'); lcd.print (биринчи); тыныгуу;

case '+': first = (total! = 0? total: first); lcd.setCursor (0, 1); lcd.print ("+"); экинчи = SecondNumber (); // чогултулган экинчи санды алуу = биринчи + экинчи; lcd.setCursor (0, 3); lcd.print (жалпы); биринчи = 0, экинчи = 0; // кийинки колдонуу үчүн баалуулуктарды нөлгө кайтаруу;

case '-': first = (total! = 0? total: first); lcd.setCursor (0, 1); lcd.print ("-"); экинчи = SecondNumber (); жалпы = биринчи - экинчи; lcd.setCursor (0, 3); lcd.print (жалпы); биринчи = 0, экинчи = 0; тыныгуу;

case '*': first = (total! = 0? total: first); lcd.setCursor (0, 1); lcd.print ("*"); экинчи = SecondNumber (); жалпы = биринчи * экинчи; lcd.setCursor (0, 3); lcd.print (жалпы); биринчи = 0, экинчи = 0; тыныгуу;

case '/': first = (total! = 0? total: first); lcd.setCursor (0, 1); lcd.print ("/"); экинчи = SecondNumber (); lcd.setCursor (0, 3);

секунд == 0? lcd.print ("Жараксыз"): total = (float) first / (float) second;

lcd.print (жалпы); биринчи = 0, экинчи = 0; тыныгуу;

case 'C': total = 0; lcd.clear (); тыныгуу; }}

long SecondNumber () {while (1) {customKey = customKeypad.getKey (); if (customKey> = '0' && customKey <= '9') {second = second * 10 + (customKey - '0'); lcd.setCursor (0, 2); lcd.print (экинчи); }

if (customKey == '=') break; // return second; } экинчи кайтуу; }

5 -кадам: Кодексти бузуу

Кодексти бузуу
Кодексти бузуу

Биз түшүнүү үчүн компьютердин баалуулуктарын баштадык

#кошуу

#кошуу #кошуу

LiquidCrystal lcd (13, 12, 11, 10, 9, 8);

long first = 0; узак секунд = 0; эки эсе жалпы = 0;

char customKey; const байт ROWS = 4; const байт COLS = 4;

Биз компьютерге баскычтоп иштеши керек болгон сандарды жана белгилерди айттык

char баскычтары [ROWS] [COLS] = {{'1', '2', '3', '/'}, {'4', '5', '6', '+'}, {'7', '8', '9', '-'}, {'C', '0', '=', '*'}};

Биз баскычтоптун саптарын жана мамыларын такташтырдык жана кайсы сан кайсы тилкеде ж

байт rowPins [ROWS] = {7, 6, 5, 4}; байт colPins [COLS] = {3, 2, 1, 0};

Биз компьютер үчүн киришүү же экрандын кубатын түздүк (Сиз ага өз атыңызды жаза аласыз)

void setup () {lcd.begin (16, 2); үчүн (int i = 0; i <= 3; i ++); lcd.setCursor (0, 0); lcd.print ("Калькулятор"); lcd.setCursor (0, 1); lcd.print ("By Jai Mishra"); кечигүү (4000); lcd.clear (); lcd.print ("Акыркы долбоор"); кечигүү (2500); lcd.clear (); lcd.setCursor (0, 0); }

Биз эсептегичте ар бир операциянын маанисин жана формуласын түзөбүз, ошондо компьютер колдонуучу калькуляторго "+" басканда кандай формуланы колдонууну түшүнөт

{case '0'… '9': lcd.setCursor (0, 0); биринчи = биринчи * 10 + (customKey - '0'); lcd.print (биринчи); тыныгуу;

case '/': first = (total! = 0? total: first); lcd.setCursor (0, 1); lcd.print ("/"); экинчи = SecondNumber (); lcd.setCursor (0, 3);

секунд == 0? lcd.print ("Жараксыз"): total = (float) first / (float) second;

lcd.print (жалпы); биринчи = 0, экинчи = 0; тыныгуу; case '+': first = (total! = 0? total: first); lcd.setCursor (0, 1); lcd.print ("+"); экинчи = SecondNumber (); lcd.setCursor (0, 3); lcd.print (жалпы); биринчи = 0, экинчи = 0; тыныгуу;

case '-': first = (total! = 0? total: first); lcd.setCursor (0, 1); lcd.print ("-"); экинчи = SecondNumber (); жалпы = биринчи - экинчи; lcd.setCursor (0, 3); lcd.print (жалпы); биринчи = 0, экинчи = 0; тыныгуу;

case '*': first = (total! = 0? total: first); lcd.setCursor (0, 1); lcd.print ("*"); экинчи = SecondNumber (); жалпы = биринчи * экинчи; lcd.setCursor (0, 3); lcd.print (жалпы); биринчи = 0, экинчи = 0; тыныгуу;

case 'C': total = 0; lcd.clear (); тыныгуу; }}

Код абдан оңой, муну түшүнүүгө аракет кылуу гана керек, анан баарын оңой эле жасаса болот. Коду менен кандайдыр бир көйгөйлөр болсо, мага электрондук кат

6 -кадам: Бул эсептегичтин жабдыктары кантип иштейт?

Бул эсептегичтин жабдыктары кантип иштейт?
Бул эсептегичтин жабдыктары кантип иштейт?

Бул эсептегич ЖК, клавиатура, Arduino тактасы жана 220 омдук резисторду колдонот. Бул компоненттердин баары өзүнчө, бирок Arduino клавиатурасына жана ЖКга зымдар менен туташкан. ЖКнын ар кандай бөлүмдөрү акыры экөөнү баскычтоп менен байланыштырган Arduino тактасы менен байланышкан. Туташкандан кийин, коддоо бардык ишти аткарат жана ар бир операцияны жана баскычтоптун баскычын аткарууга тапшырма берет.

7 -кадам: Калькулятордун толук көрүнүшү

Биздин акыркы долбоор ушундай көрүнөт! Эгерде сиздин код иштебесе, же кандайдыр бир техникалык кыйынчылыктар болсо, анда мага электрондук кат жөнөтүңүз, мен сизге эң жакшы эсептегичти түзүүгө жардам берүү үчүн колумдан келгендин баарын кылам!

8 -кадам: Бул Коддун Менин Илхамы

Мен жогорудагы видеодон tinkercadда калькуляторду кантип жасоону үйрөндүм! Мен эч нерсени көчүрүп, чаптаган жокмун, бирок анын эсептегич жана коддун түшүнүгү жөнүндөгү идеясын колдондум.

Сунушталууда: