Arduino ile 3 adet led ve 1 buton uygulaması Uzay Gemisi gibi

Arduino Başlangıç ​​Kiti: Proje 2

Proje adı: UZAY GEMİSİ ARAYÜZÜ

Keşfedin: dijital giriş ve çıkış, ilk programınız, değişkenler

Ekler: kütüphaneler ve 

kod:

int switchState = 0; // store value in switchState variable
void setup() {
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(A2,INPUT);
}

void loop() {
switchState = digitalRead(A2);
if (switchState == LOW) {
// the buton is not pressed
digitalWrite(3, HIGH); // green LED on
digitalWrite(4, LOW); // red LED off
digitalWrite(5, LOW); // red LED off
}
else { // the buton is pressed
digitalWrite(3, LOW); // green LED off
digitalWrite(4, HIGH); // red LED on
delay(100);// wait 100ms
digitalWrite(5, HIGH); // red LED on
delay(100);// wait 100ms
digitalWrite(4, LOW); // green LED off
delay(100);// wait for a quarter second
digitalWrite(5, LOW); // green LED off
}
}//go back to the beginning of the loop


Bu projede, şu parçalara ihtiyacınız vardı:

1.Aruduino Uno R3 (Arduino’nun diğer sürümünü de kullanabilirsiniz)

2. atlama kabloları

3. Direnç 3 adet (2 adet 220 Om ve 1 adet 10 kOm)

4. Breadboard yarım boyutu 

5. LED’ler (2 adet kırmızı LED ve 1 adet yeşil LED)

6. Anlık anahtar 1 adet

7. Arduino IDE (siz indirebilirsiniz burada  )

GENEL

Bu projede, bir düğmeye ve düğmeye bastığınızda yanan ışıklara sahip serin bir kontrol paneli yapacaksınız. Işıkların ne anlama geldiğine karar verebilirsiniz. Bir düğmeye basana kadar yeşil bir LED yanacaktır. Arduino düğmeden bir sinyal aldığında, yeşil ışık o turn olacak ve diğer 2 ışık yanıp sönmeye başlayacaktır. Arduino’nun dijital pinleri sadece iki durumu okuyabilir: bir giriş pininde voltaj olduğunda ve olmadığında. Bu tür girdilere normalde dijital (veya iki durumlu bazen ikili) denir. Bu durumlara yaygın olarak YÜKSEK ve DÜŞÜK denir. YÜKSEK “burada voltaj var” demekle aynıdır ve DÜŞÜK “bu pim üzerinde voltaj yok” anlamına gelir. DigitalWrite () adlı bir komut kullanarak ÇIKIŞ pimini YÜKSEK döndürdüğünüzde, açıyorsunuz. Pim ve toprak arasındaki voltajı ölçün, 5 volt alacaksınız. ÇIKIŞ pimini DÜŞÜK döndürdüğünüzde o ff döndürürsünüz. Arduino’nun dijital pinleri hem giriş hem de çıkış işlevi görebilir. Kodunuzda, işlevlerinin ne olmasını istediğinize bağlı olarak bunları yapılandıracaksınız. Pimler çıkış olduğunda, LED’ler gibi bileşenleri açabilirsiniz. Pimleri giriş olarak yapılandırırsanız, bir anahtara basılıp basılmadığını kontrol edebilirsiniz. 0 ve 1 pinleri bilgisayar ile iletişim kurmak için kullanıldığından, pin 2 ile başlamak en iyisidir.

DEVRE

Bir önceki projede olduğu gibi, breadboard’unuzu Arduino’nun 5V ve toprak bağlantılarına bağlayın. İki kırmızı LED’i ve bir yeşil LED’i breadboard’a yerleştirin. Her bir LED’in katotunu (kısa bacak) 220 ohm’luk bir dirençle toprağa takın. Yeşil LED’in anodunu (uzun bacak) pim 3’e bağlayın. Kırmızı LED’lerin anotlarını sırasıyla 4 ve 5 pimlerine bağlayın. Anahtarı, önceki projede yaptığınız gibi breadboard’a yerleştirin. Bir tarafını güce, diğer tarafını Arduino’daki dijital pim 2’ye takın. Ayrıca, Arduino’ya bağlanan anahtar pimine topraktan 10k-ohm’luk bir direnç eklemeniz gerekir. Bu aşağı çekme direnci, anahtar açıkken pimi toprağa bağlar, bu yüzden anahtardan voltaj gelmediğinde DÜŞÜK okur. Kitte sağlanan şablonu devre tahtasını kapatabilirsiniz. Ya da kendi fırlatma sisteminizi yapmak için dekore edebilirsiniz. Işıklar yanıyor ve kendiliğinden hiçbir şey ifade etmiyor, ancak bunları bir kontrol paneline yerleştirip etiketler verdiğinizde anlam kazanıyorlar. 

KOD

Her Arduino programının iki ana işlevi vardır. İşlevler, bir bilgisayar programının belirli komutları çalıştıran parçalarıdır. İşlevlerin benzersiz adları vardır ve gerektiğinde “çağrılır”. Arduino programında gerekli işlevlere setup () ve loop () denir . Bu işlevlerin bildirilmesi gerekir, yani Arduino’ya bu işlevlerin ne yapacağını söylemeniz gerekir. setup () ve loop ()sağda gördüğünüz gibi ilan edilir. Bu programda, programın ana bölümüne girmeden önce bir değişken oluşturacaksınız. Değişkenler, Arduino’nun hafızasındaki yerlere verdiğiniz adlardır, böylece neler olduğunu takip edebilirsiniz. Bu değerler, programınızın talimatlarına bağlı olarak değişebilir. Değişken isimleri, depoladıkları değeri açıklayıcı olmalıdır. Örneğin, switchState adlı bir değişken size neyi depoladığını söyler: bir anahtarın durumu. Öte yandan, “x” adlı bir değişken size depoladığı şey hakkında fazla bilgi vermez. Bir değişken oluşturmak için ne tür olduğunu bildirmeniz gerekir. Veri türü inttam sayı tutacaktır (tamsayı da denir); ondalık noktası olmayan herhangi bir sayı. Bir değişkeni bildirdiğinizde, genellikle bir başlangıç ​​değeri de verirsiniz. Her deyim olarak değişkenin bildirimi noktalı virgül ( ; ) ile bitmelidir . Arduino ilk açıldığında setup () bir kez çalışır. Burası, dijital pinleri pinMode () adlı bir işlev kullanarak giriş veya çıkış olarak yapılandırdığınız yerdir . LED’lere bağlı pimler ÇIKIŞLAR ve anahtar pimi bir GİRİŞ olacaktır. Döngü () sonra sürekli çalışır () kurulum tamamladı. Döngü ()girişlerdeki voltajı kontrol edeceğiniz ve çıkışları açıp o ff açacağınız yerdir. Dijital bir girişteki voltaj seviyesini kontrol etmek için , seçilen pimi voltaj için kontrol eden digitalRead () işlevini kullanırsınız . Hangi iğnenin denetleneceğini bilmek için digitalRead () argüman.Arguments işlevlere ilettiğiniz ve işlerini nasıl yapmaları gerektiğini söyleyen bilgilerdir. Örneğin, digitalRead () bir argümana ihtiyaç duyar: kontrol edilecek pin. Programınızda digitalRead () , pin 2’nin durumunu kontrol edecek ve switchState değişkeninde değeri saklayacaktır . DigitalRead () çağrıldığında pim üzerinde voltaj varsa, switchStatedeğişkeni YÜKSEK (veya 1) değerini alır. Pim üzerinde voltaj yoksa switchState , DÜŞÜK (veya 0) değerini alır. Yukarıda, bir şeyin durumunu kontrol etmek için (anahtar konumu) kelimeyi kullandınız. Programlamadaki bir if () ifadesi iki şeyi karşılaştırır ve karşılaştırmanın doğru veya yanlış olup olmadığını belirler. Daha sonra yapmasını söylediğiniz eylemleri gerçekleştirir. Programlamadaki iki şeyi karşılaştırırken iki eşittir işareti == kullanırsınız . Yalnızca bir işaret kullanırsanız, karşılaştırma yapmak yerine bir değer ayarlayacaksınız. digitalWrite () , bir çıkış pinine 5V veya 0V göndermenizi sağlayan komuttur. digitalWrite ()iki argüman alır: hangi pin kontrol edilecek ve bu pin ayarlanacak değer, YÜKSEK veya DÜŞÜK. İf () ifadenizin içindeki kırmızı LED’leri ve yeşil LED’i açmak istiyorsanız , kodunuz şöyle görünür. Arduino’ya anahtar açıkken ne yapması gerektiğini söylediniz. Şimdi anahtar kapatıldığında ne olacağını tanımlayın. Eğer ()deyiminde, orijinal koşul karşılanmadığı takdirde bir şeyin gerçekleşmesini sağlayan isteğe bağlı başka bir bileşen bulunur. Bu durumda, anahtarın DÜŞÜK olup olmadığını kontrol ettiğiniz için else ifadesinden sonra HIGH koşulu için kod yazın. Düğmeye basıldığında kırmızı LED’lerin yanıp sönmesini sağlamak için, az önce yazdığınız diğer ifadede ışıkları açıp açmanız gerekir. LED’leri belirli bir duruma getirdikten sonra, Arduino’nun geri değiştirmeden önce bir an duraklamasını isteyeceksiniz. Beklemezseniz, ışıklar o kadar hızlı gidecek ki, sanki açık ve kapalı değil, sadece biraz loş görünürler. Bunun nedeni, Arduino’nun saniyede binlerce kez döngüsüne () girmesi ve LED’in algılayabildiğimizden daha hızlı açılıp kapanmasıdır. Gecikmesi ()işlevi, Arduino’nun bir süre herhangi bir şey yürütmesini engellemenizi sağlar. delay () , bir sonraki kod kümesini yürütmeden önce milisaniye sayısını belirleyen bir bağımsız değişken alır. Bir saniyede 1000 milisaniye vardır. gecikme (250) çeyrek saniye duraklar. Şimdi programınız, düğme düğmesine basıldığında kırmızı LED’leri yanıp sönecektir.

BAŞLANGIÇ

Arduino’nuz programlandıktan sonra yeşil ışığın yandığını görmelisiniz. Düğmeye bastığınızda, kırmızı ışıklar yanıp sönmeye başlar ve yeşil ışık söner. İki delay () işlevinin saatini değiştirmeyi deneyin ; ışıklara ne olduğunu ve yangının hızına bağlı olarak sistemin tepkisinin nasıl değiştiğini fark edin. Programınızda bir delay () çağırdığınızda , diğer tüm işlevler durur. Bu süre geçinceye kadar sensör okumaları gerçekleşmez. Gecikmeler genellikle yararlı olsa da, kendi projelerinizi tasarlarken arayüzünüze gereksiz yere müdahale etmediklerinden emin olun.

Programınız başladığında kırmızı LED’lerin nasıl yanıp söndüğünü ve LED’ler ve anahtarlarla yıldızlararası maceralarınız için nasıl daha büyük veya daha karmaşık bir arayüz oluşturabileceğinizi öğrenin.

Bu projede, bir anahtara dayalı olarak bazı LED’lerin davranışını kontrol etmek için ilk Arduino programını oluşturdunuz. Bir giriş ve kontrol çıkışlarının durumunu okumak için değişkenler, bir if () … else deyimi ve işlevler kullandınız.

İLAVE

 

It can be helpful to write out the flow of your program in pseudo code: a way of describing what you want the program to do in plain language, but structured in a way that makes it easy to write a real program from it. In this case you’re going to determine if switchState is HIGH (meaning the button is pressed) or not. If the switch is pressed, you’ll turn the green LED off and the red ones on. In
pseudocode, the statement could look like this:
if the switchState is LOW:
turn the green LED on
turn the red LEDs off
if the switchState is HIGH:
turn the green LED off
turn the red LEDs on
{ Curly brackets }
Any code you write inside the curly brackets will be executed when the function is called
Case sensitivity
Pay atention to the case sensitivity in your code.
For example, pinMode is the name of a command, but pinmode will produce an error
Comments
Programınıza doğal dil eklemek istiyorsanız, bir yorum bırakabilirsiniz.
Yorumlar, bilgisayarın yoksaydığı kendiniz için bıraktığınız notlardır. Yorum yazmak için iki eğik çizgi ekleyin // Bilgisayar bu eğik çizgilerden sonra satırdaki hiçbir şeyi yok sayar.

 

Programınızın akışını sahte kodda yazmak yararlı olabilir: programın düz dilde ne yapmasını istediğinizi açıklamanın bir yolu, ancak programdan gerçek bir program yazmayı kolaylaştıracak şekilde yapılandırılmış. Bu durumda, switchState’in YÜKSEK (düğmeye basıldığı anlamına gelir) olup olmadığını belirleyeceksiniz. Düğmeye basılırsa, yeşil LED’i ff ve kırmızı olanları açarsınız. Inpseudocode, ifade şöyle görünebilir:

switchState DÜŞÜK ise:

yeşil LED’i aç

kırmızı LED’leri çevirin o ff

switchState YÜKSEK ise:

yeşil LED’i çevirin o ff

kırmızı LED’leri aç

{Kıvırcık parantez}

Kıvrımlı parantezlerin içine yazdığınız kodlar işlev çağrıldığında yürütülür.

Büyük küçük harf duyarlılığı

Kodunuzdaki büyük / küçük harf duyarlılığına dikkat edin. Örneğin, pinMode bir komutun adıdır, ancak pinmode bir hata oluşturur.

Yorumlar

Programınıza doğal dil eklemek istiyorsanız, yorum bırakabilirsiniz.Kompozisyonlar, bilgisayarın göz ardı ettiği kendiniz için bıraktığınız notlardır. Yorum yazmak için iki eğik çizgi ekleyin // Bilgisayar bu eğik çizgilerden sonra satırdaki hiçbir şeyi yok sayar.

Bu konuda Youtube’daki filmlerden birini izleyin – buraya bağlantı verin

Posted in Makaleler.