Mundarija:

2-tugmachali kvadrat tenglamalar yechuvchisi: 5 qadam
2-tugmachali kvadrat tenglamalar yechuvchisi: 5 qadam

Video: 2-tugmachali kvadrat tenglamalar yechuvchisi: 5 qadam

Video: 2-tugmachali kvadrat tenglamalar yechuvchisi: 5 qadam
Video: 22-Dar. 1.5.2 Kvadrat Tenglamalar 2024, Noyabr
Anonim
Image
Image

Kirish

Mening birinchi o'qituvchimga xush kelibsiz!

Men bu loyihani dasturlash bilimimni kengaytirish uchun boshladim. Ko'pincha, kerakli dasturni yaratish uchun siz har xil kodni birlashtirasiz. Mening maqsadim asbob bilan ishlash uchun o'z dastur kodimni yozish edi. Men oddiy hisoblash vositasini yaratishni yoqtirardim. Bir necha oy oldin, men do'stimni kvadrat tenglamani yechish uchun qo'llab -quvvatladim.

Bazinga! bu foydalanish holati!

Men eski metall qutini qayta ishlatdim. Men asboblarning minimalist ko'rinishini va interfeysini afzal ko'rardim. shuning uchun men kirish uchun 2 tugmani ishlatmoqchiman. Musobaqa oddiy LCD displeyda ko'rsatiladi.

Ta'minotlar

materiallar ro'yxati:

quti

2 tugma Arkada uslubi

Arduino Nano yoki shunga o'xshash

I2C adapterli 1602 LCD displey

yoqish/o'chirish tugmasi

simlar

2x 10k Ohm qarshilik

batareya 9v blok

9V batareya uchun ulagich

non taxtasi

har xil (yog'och bo'lagi, metall burchak, simi rishtalari, vintlar, kir yuvish mashinalari)

asboblar:

ko'rdim

lehim temir

burg'ulash mashinasi

dasturlash uchun kompyuter

1 -qadam: Matematik ma'lumot

Dasturiy ta'minot
Dasturiy ta'minot

Matematik fon

2 tugmachali kvadrat tenglama kvadrat funktsiya X o'qini kesib o'tadigan qiymatlarni ko'rsatadi. Kvadrat funktsiya X o'qini hech qachon, bir yoki ikki marta kesib o'tishi mumkin.

Bu qiymatlarni hisoblashning turli usullari mavjud. Mening asbobim uchun men PQ formulasidan foydalanaman (bu ifoda butun dunyoda ishlatiladimi, amin emasman).

Kvadrat tenglama quyidagi shaklga ega:

ax²+bx+c = 0

O'tish nuqtalarini hisoblash uchun shaklni x²+px+q = 0 ga bo'linib, p = b/a; q = c/a

PQ formulasi:

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

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

Natijada x 0, 1 yoki 2 qiymatga ega bo'lishi mumkin. Bu kvadrat ildiz ostidagi qiymatga bog'liq.

Qiymat> 0 bo'lsa, PQ-formulaning ikkita echimi bor.

Qiymat = 0 bo'lsa, PQ-formulaning bitta echimi bor

<0 qiymati, keyin PQ formulasining yechimi yo'q. Funktsiya X o'qini kesib o'tmaydi.

2 -qadam: dasturiy ta'minot

Dasturiy ta'minot

Dasturlash uchun men rasmiy Arduino IDE -dan foydalanardim. Maqsadim o'z dasturiy ta'minotimni yaratish edi. Mening interfeysimda ikkita tugma bo'lishi kerak. Har xil darajalarda o'tish uchun bitta tugma, har xil darajadagi qiymatlarni o'zgartirish uchun ikkinchi tugma.

PQ-formulasini hal qilish uchun men yuqoridagi tuzilmani yarataman:

Albatta, men g'ildirakni kashf qilmayman. Kodni yaratish uchun men moduldan foydalandim:

- chiqish

- ko'rsatish

Quyidagi fikrlar eng katta qiyinchiliklar edi:

- Belgini qanday tanlash mumkin? Men bu muammoni modulo (havola) funktsiyasi bilan hal qildim. Kod kirishni 2 ga bo'linadi. Kirish toq sonmi, qiymat manfiy bo'ladi, aks holda raqam musbat bo'ladi.

- Barcha darajalarni bosib o'tgandan so'ng, men barcha qiymatlarni 0 ga e'lon qilishim kerak.

- Ko'rsatilgan matn yuborish belgilarini o'chirib tashlaydi. Agar kodlar 4 ta belgidan iborat so'zni yuborsa, aynan shu 4 ta belgi qayta yuklanadi. Agar oldingi so'z ko'proq belgidan iborat bo'lsa, belgilar qoladi. Buni tuzatish uchun ko'rsatiladigan matn bo'sh joylar bilan to'ldiriladi. Ketma -ket 16 ta belgi qayta yuklanadi.

Yakuniy kod biriktirilgan.

3 -qadam: Uskuna

Uskuna
Uskuna
Uskuna
Uskuna
Uskuna
Uskuna
Uskuna
Uskuna

Uskuna

Bo'limlar yuqorida ko'rsatilgan. Ushbu loyiha uchun uskunalar oddiy. Menga faqat Arduino mikroprotsessori, 2 tugma va displey kerak. Yaxshi, agar siz qutiga solishni xohlasangiz, sizga quti va quvvat manbai ham kerak bo'ladi.

Men eski metall qutini qayta ishlataman. Men quvvat manbai kalitini ulash uchun tugmachani teshdim. Qutining qopqog'ida 3 teshik bor. Men katta tugmalar uchun ikkita teshik ochdim va displey uchun oynani kesib tashladim. Men ekran va tugmalarni to'g'rilash uchun ko'proq narsalar bo'lishi uchun qopqoqning orqasiga kichik bir yog'och bo'lakni yopishtiraman. Tashqi ko'rinishini yaxshilash uchun qutiga stikerlar qo'yilgan.

Quvvat manbai sifatida men zaryadlanuvchi 9V blokli batareyalarni tavsiya qilaman. Men batareyani quvvat tugmasi orqali Arduino -ga ulayman. Batareya kichik metall burchak bilan qutiga o'rnatiladi. Batareya ulagichi faqat kabellar orqali o'rnatiladi.

Mikroprotsessor - Arduino nano klonidir. Bunday holda, ishlash etarli darajada. Attiny 85, masalan, Digispark mikroprotsessori rad etildi. Arduino displey yonida "nonga o'ralgan".

Displey - 1602 LCD displey. ikki qatorda 16 ta belgidan foydalanishingiz mumkin. Siz ushbu displeyni turli xil asbob -uskunalarda topishingiz mumkin. Bu displeydan foydalanishning ikki xil usuli bor. Siz displeyni to'g'ridan-to'g'ri boshqaruvchiga ulashingiz yoki I2C orqali displey bilan bog'lanish uchun plaginni ishlatishingiz mumkin. I2C - bu standart protokol. Men uni ishlatganman, chunki displeyni boshqaruvchiga ulash osonroq. Sizga 16 o'rniga 4 ta kabel, VCC - 5V, GND - GND, SDA - A4, SCL - A5. Displey vintlar yordamida qutining qopqog'iga o'rnatiladi.

Tugmalar juda katta! ular odatiy arja o'yin uslubiga ega. Menga yoqdi! Tugmalar raqamli pin 4 va 7 ga ulangan. Iltimos, 10K rezistorlarni unutmang!

Qopqoqni ochish uchun, masalan, batareyani almashtirish uchun, men non paneliga ulangan uzunroq kabellardan foydalanardim.

4 -qadam: simlarni ulash

Ulanish
Ulanish

5 -qadam: kelajakni yaxshilash

Kelajakni takomillashtirish

Loyihani tugatgandan so'ng, siz har doim takomillashtirish uchun xatolar yoki xususiyatlarni topasiz. Ushbu loyihada men bir nechta fikrlarni topganimdan xursandman, men kelajak uchun yaxshilanaman.

Keyingi safar men qutidagi ekspluatatsiyani yaxshilardim. Men loyihaning boshida displeyni, quvvat tugmachasini va tugmachalarni tuzatdim. Oxir -oqibat, men qutidagi batareya va mikroprotsessor uchun etarli joy topa olmaslik muammosiga duch keldim. Men tugmachani va displeyni tashqariga qo'yganimda, qutidagi qismlar uchun bo'sh joy bilan hech qanday muammo bo'lmaydi.

Hozir menda kvadrat tenglamani yechish uchun foydalanish holati yo'q. Asbobni takomillashtirish uchun men asbobni boshqa matematik narsalar bilan kengaytirmoqchiman, masalan, asosiy hisoblar yoki formulalar, binominal formula yoki Pifagor jumlasi.

Tavsiya: