İçindekiler:

2 Düğmeli İkinci Dereceden Denklem Çözücü: 5 Adım
2 Düğmeli İkinci Dereceden Denklem Çözücü: 5 Adım

Video: 2 Düğmeli İkinci Dereceden Denklem Çözücü: 5 Adım

Video: 2 Düğmeli İkinci Dereceden Denklem Çözücü: 5 Adım
Video: 2. Dereceden Denklemler 2 | Sıfırdan Sonsuza AYT Matematik Kampı | 5.Gün |AYT Matematik Konu Anlatım 2024, Temmuz
Anonim
Image
Image

Tanıtım

ilk dersime hoş geldiniz!

Programlama bilgimi genişletmek için bu projeye başladım. Çoğu zaman, ihtiyacınız olan programı oluşturmak için farklı kaynak kodlarını birleştirirsiniz. Amacım, bir araçla etkileşim için kendi program kodumu yazmaktı. Hesaplamak için basit bir araç yaratmayı sevdim. Bir ay önce, ikinci dereceden denklemi çözmesi için bir arkadaşıma yardım ettim.

Bazinga! bu kullanım durumu!

Eski bir metal kutuyu yeniden kullandım. Araçların minimalist görünümünü ve arayüzünü tercih ettim. bu yüzden girdi vermek için sadece 2 düğme kullanmak istiyorum. Yarışma basit bir LCD ekran ile gösterilecektir.

Gereçler

malzeme listesi:

kutu

2 düğmeli Arcade stili

Arduino Nano veya benzeri

I2C adaptörlü LCD ekran 1602

açma / kapama düğmesi

teller

2x 10k Ohm direnç

pil 9v blok

9v pil için konektör

ekmek tahtası

muhtelif (tahta parçası, metal köşebent, kablo bağları, vida, pullar)

aletler:

testere

havya

sondaj makinesi

programlama için bilgisayar

Adım 1: Matematiksel Arka Plan

Yazılım
Yazılım

matematiksel arka plan

2 düğmeli ikinci dereceden denklem, ikinci dereceden işlevin X eksenini geçtiği değerleri gösterir. İkinci dereceden bir fonksiyon, X eksenini asla, bir veya iki kez geçemez.

Bu değerleri hesaplamanın farklı yolları vardır. Aracım için PQ formülünü kullanıyorum (bu ifadenin tüm dünyada kullanılıp kullanılmayacağından emin değilim).

İkinci dereceden bir denklem şu şekildedir:

ax²+bx+c=0

Geçiş noktalarını hesaplamak için, formu p= b/a ile x²+px+q=0'a bölün; q=c/a

PQ Formülü:

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

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

Sonuç x 0, 1 veya 2 değer alabilir. Bu, karekökün altındaki değere bağlıdır.

Değer > 0 ise, PQ-Formülünün iki çözümü vardır.

Değer = 0 ise, PQ-Formülünün bir çözümü vardır

< 0 ise, PQ Formülünün çözümü yoktur. İşlev, X Eksenini geçmiyor.

2. Adım: Yazılım

Yazılım

Programlama için resmi Arduino IDE'yi kullandım. Hedefim kendi yazılım programımı oluşturmaktı. Arayüzümde iki düğme olmalı. Farklı düzeyler arasında geçiş yapmak için bir düğme, farklı düzeylerdeki değerleri değiştirmek için ikinci düğme.

PQ-Formülünü çözmek için yukarıdaki yapıyı oluşturuyorum:

Elbette, tekerleği yeniden icat etmiyorum. Kodu oluşturmak için modülü kullandım:

- geri tepme

- Görüntüle

Aşağıdaki noktalar en büyük zorluklardı:

- İşareti nasıl seçebilirim? Bu zorluğu modulo (bağlantı) işleviyle çözdüm. Kod, girişi 2'ye böler. Girilen tek sayıysa değer negatif olur, aksi halde sayı pozitif olur.

- Tüm seviyeleri geçtikten sonra, tüm değerleri 0 olarak bildirmem gerekiyor.

- Görüntülenen metin yalnızca gönderme karakterlerini siler. Kodlar 4 karakterli bir kelime gönderirse, sadece bu 4 karakter yeniden yüklenecektir. Önceki kelimenin daha fazla karakteri varsa, karakterler kalacaktır. Bunu düzeltmek için görüntülenen metin boşluklarla doldurulacaktır. Bir satırdaki 16 karakterin tümü yeniden yüklenecek.

Son kod ektedir.

3. Adım: Donanım

Donanım
Donanım
Donanım
Donanım
Donanım
Donanım
Donanım
Donanım

Donanım

Parçalar yukarıda listelenmiştir. Bu proje için donanım basittir. Sadece bir Arduino mikroişlemcisine, 2 düğmesine ve bir ekrana ihtiyacım var. Tamam, eğer bir kutuya koymayı seviyorsan, bir kutuya ve güç kaynağına da ihtiyacın var.

Eski bir metal kutuyu yeniden kullanıyorum. Güç kaynağı anahtarını takmak için düğmeye bir delik açtım. Kutu kapağında 3 delik var. Büyük düğmeler için iki delik açtım ve ekran için bir pencere kestim. Ekranı ve düğmeleri düzeltmek için daha fazla şey olması için kapağın arkasına küçük bir tahta parçası yapıştırıyorum. Görünümü yükseltmek için kutunun çıkartmaları var.

Güç kaynağı için şarj edilebilir 9V blok pilleri öneririm. Pili güç anahtarı ile Arduino'ya bağlarım. Pil, kutuya küçük bir metal açıyla sabitlenmiştir. Akü konektörü sadece kablo bağları ile sabitlenir.

Mikroişlemci, Arduino nano'nun bir klonudur. Bu kullanım durumu için performans yeterlidir. Bir Attiny 85, örneğin bir Digispark mikroişlemci reddedildi. Arduino, ekranın yanında "ekmek tahtasında".

Ekran 1602 LCD ekrandır. iki satırda 16 karakter kullanabilirsiniz. Bu ekranı birçok farklı makinede ve alette bulabilirsiniz. Bu ekranı kullanmanın iki farklı yolu vardır. Ekranı doğrudan kontrolöre bağlayabilir veya I2C aracılığıyla ekranla iletişim kurmak için bir eklenti kullanabilirsiniz. I2C standart bir protokoldür. Ekranı kontrolöre bağlamak daha kolay olduğu için kullandım. 16 yerine 4 kabloya ihtiyacınız var, VCC'den 5V'a, GND'den GND'ye, SDA'dan A4, SCL'den A5'e. Ekran, kutu kapağına vidalarla sabitlenmiştir.

Düğmeler çok büyük! tipik bir arcade oyun stiline sahipler. Beğendim! Butonlar digital pin 4 ve 7'ye bağlıdır. Lütfen 10K Dirençleri unutmayınız!

Kapağı açmak için, örneğin pili değiştirmek için, devre tahtasına takılı daha uzun kablolar kullandım.

Adım 4: Kablolama

kablolama
kablolama

Adım 5: Gelecekteki İyileştirme

Gelecekteki İyileştirme

Bir projeyi bitirdikten sonra, her zaman iyileştirme için hatalar veya özellikler bulursunuz. Bu projede, sadece birkaç nokta bulduğum için mutluyum, gelecek için kendimi geliştireceğim.

Bir dahaki sefere kutudaki sömürüyü iyileştirecektim. Bu projenin başında ekranı, güç düğmesini ve düğmeleri düzelttim. Sonunda kutuda pil ve mikroişlemci için yeterli alan bulmakta biraz zorlandım. Düğmeyi ve ekranı daha dışarıya koyduğumda kutunun içindeki parçalar için alan sıkıntısı çekmezdim.

Şu anda ikinci dereceden denklemi çözmek için bir kullanım durumum yok. Aracı geliştirmek için, aracı daha fazla matematiksel şeyle genişletmek istiyorum, örneğin temel hesap veya binominal formül veya Pisagor cümlesi gibi formüller.

Önerilen: