• Forumu şuan da Ziyaretçi olarak görüntülüyorsunuz. Forum ziyaretçileri tüm konu ve bağlantıları görüntüleyemez ve kaynaklara erişimi yoktur. Eğer üye iseniz buradan üye girişi yapın ya da burayı tıklayarak şimdi üye olun.
  • Ubden® Topluluk Projelerine, Aracılığınızla Destek Vermektedir.

    Topluluk projelerine katkı yapmak ve topluğumuza ulaşan genç girişimcilere destek olmak için Buradaki  bağlantıdan işlem kanallarına ulaşabilirsiniz.

    Desteklerinizle 7.000 kişilik bir ekosistem olduk ve büyümeye devam ediyoruz. Desteğiniz için teşekkürler.

Arduino ile Zar Uygulaması

elekkabudu

Acemi
Üye
3 Şub 2023
7
6
KrediPara
5KP
Çoğunlukla küp şeklinde olan, her bir yüzünde 1 ila 6 arasındaki rakamlardan birini temsil eden sayıda nokta bulunan ve rastgele sayı üretmeye yarayan zarlar, genellikle şans oyunlarında kullanılmaktadır. Bu yazımızda zar işlevi gören bir dijital sistem oluşturacağız.

Arduino ile geliştireceğimiz bu eğlenceli uygulamada yer alan ekipmanların tamamı direnc.net stoklarında yer almaktadır. Arduino ile Zar Uygulaması için gereken ürünlerin listesi şöyle:

1 Adet
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.


6 Adet
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.


2 Adet
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.


1 Adet
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.


Dileğiniz adet veya özellikte
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.


1 adet
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.


1 Adet
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.


Şimdi Arduino ile Zar Uygulaması’nın bağlantı şemasına bakalım:

Arduino İle Zar Uygulaması


Bağlantı şemasında da görüldüğü üzere, Arduino Nano’nun dijital pinlerine; LED’ler, Display ekranın DIO,CLK uçları ve butonlar bağlanıyor. Şimdi Arduino Nano’ya yükleyeceğimiz kodu inceleyelim. Kod satırlarında yer alan açıklamalar, ilgili kodun işlevini belirtmektedir:

#include <TM1637.h>
#define DEBUG 0

int CLK = 9;
int DIO = 10;

TM1637 tm(CLK,DIO);
// 6 adet LED'in bağlı olduğu dijital pinler tanımlanır
int bir = 2;
int iki = 3;
int uc = 4;
int dort = 5;
int bes = 6;
int alti = 7;

// buton için pin tanımlanır
int button = 12;
// butona basılıp basılmadığı kontrol edilir
int pressed = 0;

void setup() {

tm.set(2);

// LED'lerin dijital pinleri OUTPUT olarak ayarlanır
for (int i=bir; i<=alti; i++) {
pinMode(i, OUTPUT);
}
// Butonun bağlı olduğu pin INPUT olarak ayarlanır
pinMode(button, INPUT);

// random fonksiyonundan değer belirlenir
randomSeed(analogRead(0));

#ifdef DEBUG
Serial.begin(9600);
#endif

}

void buildUpTension() {
// Zar atıldığında çıkan değer belli olana kadar,
// LED'lerde kara şimşek uygulaması başlar
// önce soldan sağa
for (int i=bir; i<=alti; i++) {
if (i!=bir) {
digitalWrite(i-1, LOW);
}
digitalWrite(i, HIGH);
delay(100);
}
// sonra sağdan sola
for (int i=alti; i>=bir; i--) {
if (i!=alti) {
digitalWrite(i+1, LOW);
}
digitalWrite(i, HIGH);
delay(100);
}
}
// zar atıldıktan sonra çıkan rakan ekranda gösterilir
void showNumber(int number) {
digitalWrite(bir, HIGH);
if (number >= 1) {
digitalWrite(bir, HIGH);
// 4 haneli display ekranın tamamında rakam gözüksün istiyoruz
tm.display(3, 1);
tm.display(2, 1);
tm.display(1, 1);
tm.display(0, 1);
}
if (number >= 2) {
digitalWrite(iki, HIGH);

tm.display(3, 2);
tm.display(2, 2);
tm.display(1, 2);
tm.display(0, 2);
}
if (number >= 3) {
digitalWrite(uc, HIGH);
tm.point(1);
tm.display(3, 3);
tm.display(2, 3);
tm.display(1, 3);
tm.display(0, 3);
}
if (number >= 4) {
digitalWrite(dort, HIGH);
tm.point(1);
tm.display(3, 4);
tm.display(2, 4);
tm.display(1, 4);
tm.display(0, 4);
}
if (number >= 5) {
digitalWrite(bes, HIGH);
tm.point(1);
tm.display(3, 5);
tm.display(2, 5);
tm.display(1, 5);
tm.display(0, 5);
}
if (number == 6) {
digitalWrite(alti, HIGH);
tm.point(1);
tm.display(3, 6);
tm.display(2, 6);
tm.display(1, 6);
tm.display(0, 6);
}
}

int throwDice() {
// 1 ila 6 arasında random bir rakam verilsin istiyoruz
int randNumber = random(1,7);

#ifdef DEBUG
Serial.println(randNumber);
#endif

return randNumber;
}

void setAllLEDs(int value) {
for (int i=bir; i<=alti; i++) {
digitalWrite(i, value);
}
}

void loop() {
// Butona basıldığında zar atılmaya başlar
pressed = digitalRead(button);

if (pressed == HIGH) {
// önceki rakam kaldırılır
setAllLEDs(LOW);

buildUpTension();
int thrownNumber = throwDice();
showNumber(thrownNumber);
}

}

Arduino ile Zar Uygulaması’na yukarıdaki kod yüklendikten sonra, sistemimiz hazır hale gelecektir. Şimdi her butona basılma durumunda Buzzer ötecek şekilde tasarlanan devre şemasında, rastgele seçilen sayı değeri hem LED adeti kadar yanacak hem de sayı display’de gösterilecek. Rastgele seçilen sayı 6 olursa, buzzer sürekli ses çıkaracak ve LED’lerin tamamı yanacak. Ayrıca LED’ler yandığında Kara Şimşek düzeninde yanacak.

Arduino Zar Uygulaması’nda karşılıklı 2 kişinin oynayacağı bu oyunda 6 rakamını ilk bulan kazanmış olacak. Direnc.net Youtube kanalımızdan da Arduino ile Zar Uygulaması projesini izleyerek inceleyebilirsiniz:


Bir Sonraki yazıda görüşmek dileğiyle…

The post
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
appeared first on
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
.

Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
 
Üst