Мазмуну:

2-Button Quadratic Equation Solver: 5 Steps
2-Button Quadratic Equation Solver: 5 Steps

Video: 2-Button Quadratic Equation Solver: 5 Steps

Video: 2-Button Quadratic Equation Solver: 5 Steps
Video: How to solve higher degree equations in casio fx-991ES PLUS 2024, Ноябрь
Anonim
Image
Image

Киришүү

менин биринчи насаатыма кош келиңиз!

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

Bazinga! бул колдонуу учуру!

Мен эски темир кутуну кайра колдондум. Мен куралдардын минималисттик көрүнүшүн жана интерфейсин жактырчумун. Мен жөн гана киргизүү үчүн 2 баскычты колдонгум келгендин себеби. Конкурс жөнөкөй ЖК дисплейи аркылуу көрсөтүлөт.

Жабдуулар

материалдык тизмеси:

кутуча

2 баскыч Аркада стили

Arduino Nano же окшош

ЖК дисплей 1602 I2C адаптери менен

күйгүзүү/өчүрүү

зымдар

2x 10k Ohm каршылыгы

батарея 9v блогу

9v батарея үчүн туташтыргычы

нан

ар кандай (жыгач, металл бурчу, кабель байламталары, бурама, шайбалар)

куралдар:

көрдү

кандооч

тешүүчү станок

программалоо үчүн компьютер

1 -кадам: Математикалык маалымат

Программалык камсыздоо
Программалык камсыздоо

Математикалык арткы план

2 баскычтуу квадрат теңдеме квадрат функциясы X огун кесип өткөн маанилерди көрсөтөт. Квадраттык функция X огун эч качан, бир же эки жолу кесип өтө албайт.

Бул баалуулуктарды эсептөөнүн ар кандай жолдору бар. Менин куралым үчүн мен PQ формуласын колдоном (бул сөз дүйнө жүзү боюнча колдонулабы же жокпу, билбейм).

Квадрат теңдеменин формасы бар:

ax²+bx+c = 0

Өтмө чекиттерди эсептөө үчүн форманы x²+px+q = 0го бөлүү менен p = b/a; q = c/a

PQ формуласы:

x1 = -p/2 + sqrt ((p/2) ² -q)

x2 = -p/2 -sqrt ((p/2) ² -q)

Натыйжа x 0, 1 же 2 мааниге ээ болот. Бул квадрат тамыры астындагы мааниге көз каранды.

0 мааниси барбы, анда PQ-Формуланын эки чечими бар.

Мааниси = 0, анда PQ-Формуланын бир чечими бар

<0 мааниси, анда PQ формуласынын чечими жок. Функция X огунан өтпөйт.

2 -кадам: Программалык камсыздоо

Программалык камсыздоо

Программалоо үчүн мен расмий Arduino IDE колдондум. Менин максатым жеке программалык камсыздоону түзүү болчу. Менин интерфейсимде эки баскыч болушу керек. Бир баскыч ар кандай деңгээлдердин ортосунда кадам таштоо үчүн, экинчи баскыч ар кандай деңгээлдеги баалуулуктарды өзгөртүү үчүн.

PQ-Формуласын чечүү үчүн мен жогорудагы структураны түзөм:

Албетте, мен дөңгөлөктү кайра ойлоп тапкан жокмун. Кодду түзүү үчүн мен модулду колдондум:

- четтетүү

- дисплей

Төмөнкү пункттар эң чоң кыйынчылыктар болду:

- Белгини кантип тандайм? Мен бул көйгөйдү модуль функциясы менен чечтим (шилтеме). Код киргизүүнү 2ге бөлөт: Кирүү так санбы, мааниси терс болот, антпесе сан оң болот.

- Бардык деңгээлдерден өткөндөн кийин, мен бардык баалуулуктарды 0 деп жарыялашым керек.

- Көрсөтүлгөн текст жөн эле жөнөтүүчү белгилерди өчүрөт. Эгерде коддор 4 белгиден турган сөздү жөнөтсө, бул 4 белгиден гана кайра жүктөлөт. Эгерде мурунку сөз көбүрөөк символдорго ээ болсо, каармандар калат. Муну оңдоо үчүн, көрсөтүлгөн текст боштуктар менен толтурулат. Катардагы 16 белгинин баары кайра жүктөлөт.

Акыркы код тиркелет.

3 -кадам: Аппараттык

Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык

Аппараттык

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

Мен эски темир кутуну кайра колдоном. Мен электр менен камсыздоо үчүн өчүргүчтү туташтыруу үчүн баскычты тешип койгом. Коробканын капкагы 3 тешикке ээ болгон. Чоң баскычтар үчүн эки тешик бургуладым жана дисплей үчүн терезени кесип алдым. Дисплейди жана баскычтарды оңдоого көбүрөөк нерселер болушу үчүн кичинекей жыгачты капкактын артына жабыштырам. Көрүнүштү жаңыртуу үчүн, кутучага стикерлер бар.

Электр энергиясы менен камсыздоо үчүн, мен 9В блоктук кайра заряддалуучу батареяларды сунуштайм. Мен батарейканы Arduinoго электр которгуч аркылуу туташтырам. Батарея кичинекей металл бурч менен кутуга бекитилет. Батарейканын туташтыргычы кабелдик байланыштар менен гана бекитилет.

Микропроцессор - Arduino наносунун клону. Бул учурда, аткаруу жетиштүү. Attiny 85, мисалы Digispark микропроцессору, четке кагылды. Arduino дисплейдин жанында "нан салынган".

Дисплей 1602 LCD дисплей болуп саналат. эки катарда 16 белгини колдоно аласыз. Сиз бул дисплейди көптөгөн машиналардан таба аласыз. Бул дисплейди колдонуунун эки башка жолу бар. Сиз дисплейди түздөн-түз контроллерге туташтыра аласыз же дисплейге I2C аркылуу байланышуу үчүн кошумча колдоно аласыз. I2C - бул стандарттуу протокол. Мен муну колдондум, анткени дисплейди контроллерге туташтыруу оңой. Сизге 16 кабелдин ордуна 4 кабель керек, VCC - 5V, GND - GND, SDA - A4, SCL - A5. Дисплей кутучанын капкагына бурамалар менен бекитилген.

Баскычтар абдан чоң! алар типтүү аркада оюн стили бар. Бул мага жакты! Баскычтар 4 жана 7 санарип пинге туташкан. Сураныч, 10K резисторлорун унутпаңыз!

Капкагын ачуу үчүн, мисалы, батарейканы алмаштыруу үчүн, мен нанга такалган узунураак кабелдерди колдондум.

4 -кадам: Кабелдөө

Электр өткөргүчтөрү
Электр өткөргүчтөрү

5 -кадам: Келечекти жакшыртуу

Келечекти жакшыртуу

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

Кийинки жолу, мен кутудагы эксплуатацияны жакшыртмакмын. Мен бул долбоордун башында дисплейди, кубатты которууну жана баскычтарды оңдоп койдум. Акыр -аягы, мен батарейкага жана кутуга микропроцессорго жетиштүү орун таба албай кыйналдым. Мен баскычты жана дисплейди көбүрөөк сыртка койгондо, кутунун ичиндеги бөлүктөрдүн боштугунда эч кандай кыйынчылык болбойт эле.

Учурда менде квадрат теңдемени чечүү үчүн колдонуу учурум жок. Куралды жакшыртуу үчүн, мен куралды андан ары математикалык нерселер менен кеңейтким келет, мисалы, негизги эсептөө же формулалар биноминалдуу формула же Пифагор сүйлөмү.

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