Merhaba, bugün ESP32-C3 süper minik mikro denetleyicisini klasik CD4017 CMOS on yıllık sayaçla birleştirerek "dijital rulet" nasıl yapılır göstereceğim.
Düğmeye basıldığında, ESP32, LED'in döngüye girmesine neden olan "saat darbesini" CD4017 IC'ye gönderir. Düğmenin serbest bırakılması, rastgele bir sonuca durana kadar gerçekçi bir yavaşlama efekti tetikler ve son konumu seri monitör kullanılarak veya Wi-Fi üzerinden bildirir.
İnanın, bu projede birçok donanım tasarımı, Arduino kodlaması, PHP, veritabanı, 3D tasarım ve yazdırma vb. bulunuyor.
Video:
https:// youtu.be/5jVFR7KSNmgTam blog yazısı:
https:// diyfactory007.blogspot.com/2026/05/Roulette.html
Bileşen gereksinimleri
Bu proje için ihtiyacımız olan şeyler:
🔗1 x ESP32-C3 Süper Minik Plus Mikro Kontrolör:
https://s.click.aliexpress.com/e/_ c2zUTvyj
🔗 2 adet CD4017 CMOS onluk sayaç:
https://s.click.aliexpress.com/e/_ c33qzzRt🔗 2 adet 2N2222 NPN transistör:
https://s.click.aliexpress.com/e/_ c4OwNvnZ🔗3x220 Ω direnç:https://s.click.aliexpress.com/e/_ c41SucJd
🔗1 x 10kΩ direnç:https:// s.click.aliexpress.com/e/_c41SucJd
🔗1 x düğme anahtarı:
https://s.click.aliexpress.com/e/_ c3cfuN6J🔗1 x SPDT anahtarı:
https://s.click.aliexpress.com/e/_ c4FRHRaX 🔗18 x 5 mm kırmızı LED:https://s.click.aliexpress.com/e/_ c2RpNzh9
🔗 2 x 5 mm yeşil LED:https:// s.click.aliexpress.com/e/_c2RpNzh9
🔗1 x 3 mm mavi LED:
https://s.click.aliexpress.com/e/_ c306Pzbh🔗1 x 10mfd kondansatör (isteğe bağlı)
🔗https://s.click.aliexpress.com/e/_ c4okFfef:1 x LiPo bataryası.
🔗1 x pil şarj modülü (isteğe bağlı):
https://s.click.aliexpress.com/e/_ c3EJLcZh🔗1 x pil gücü göstergesi:
https://s.click.aliexpress.com/e/_ c4KGEDh53D yazıcı ile kasayı yazdırın.
Devre şeması.
Bu projenin kablolaması gerçekten çok basit!
* ESP32'nin 8 numaralı pini, IC #1'in sıfırlama piniyle (15 numaralı pin) bağlanır.
* ESP32'nin 10 numaralı pimi, IC #1'in saat pimine (14 numaralı pim) bağlanır.
* ESP32'nin 9 numaralı pimi, pull-up direnci olan bir düğme anahtarına bağlanır.
* ESP32'nin 0 pinini, sınırlı akım direnci olan Wi-Fi gösterge LED'ine bağlayın.
Diğer kablolama için, ekrandaki devre şemasına bakın.
İşleri daha kolay hale getirmek için sizin için özel bir PCB tasarladım.
Temel işlevler.
Bu LED rulet projesini, birkaç CD4017 CMOS on yıllık sayaç ve 555 zamanlayıcı IC kullanarak oluşturdum. 555 zamanlayıcısı, sayacı çalıştıran bir sinyal üreten bir saat osilatörü olarak kullanılır. IC555'in 3 numaralı pimi, IC4017'in 14 numaralı pimine beslenir. IC4017 her darbe aldığınd
IC'ler hakkında daha fazla bilgi edinmek için, aşağıdaki açıklamada bulunan bağlantıda "555 Darbe Jeneratörü Modülünün Çalışma Prensibi" başlıklı 26. eğitimimi inceleyin.
Bu ilk tasarımın ana dezavantajı, sayımı manuel olarak yapmak zorunda olmamdı. Otomatik olarak sayıları ekleyen bir sistem istedim ve kazananlar sistem tarafından belirlenmeliydi. Amacım bir kumar tekerleği oluşturmak değil, oğlumla birlikte oynayabileceğim basit bir rulet oyunu olu
Bu hedefi gerçekleştirmek için, ESP32-C3 Super Mini mükemmel bir seçimdir. Küçük boyutlu ve yerleşik Wi-Fi özelliğine sahiptir.
İşte böyle, 555 zamanlayıcı IC'yi kullanmadım, ancak CD4017 IC'lerinden biri için "saat darbesi" oluşturmak için ESP32-C3 kartına geçtim. Düğmeye basıldığında darbeler giderek daha hızlı hale geldi. Işık, döngü boyunca koşarak "dönme" hissi yarattı. Düğme serbest
Kod.
Şimdi tüm programı harekete geçiren mantığa bir bakalım.
Daha önce de belirtildiği gibi, bu sistem birçok bileşene, Arduino koduna, PHP'ye, MySQL veritabanına vb. dayanıyor. GitHub deponumda iki kod sürümü bulunuyor: biri sunucuyla, diğeri ise sunucuda saklanmayan kod. Sunucuda saklanan sonuçlara ihtiyacınız yoksa, "Code_No _wi-fi" kod
Ancak, bu eğitimde, ayarın tüm özelliklerini göstereceğim.
Şimdi, kodu tek tek inceleyelim.
Arduino kodunda, ağın SSID'sini ve şifresini girmeniz ve php dosyanın bulunduğu dizine uyacak şekilde sunucu IP'sini ve URL'sini ayarlamanız gerekir.
Mevcut işlevlere yeni işlevler eklemek istemediğiniz sürece kodun diğer bölümlerini değiştirmenize gerek kalmaz.
Ruleti açtığınızda, ESP32 ilk olarak Wi-Fi üzerinden sunucuya bağlanmaya çalışır. Bağlantı kurulduktan sonra oyuncular oyuna başlayabilir. Düğmeye basarak gecikmeyi azaltarak LED dizisini hızlandırabilir ve düğmeyi bırakarak gecikmeyi artırarak yavaşlatabilir - durma eşiğini aşana kad
LED tekerleği durduğunda, ESP32-C3 kazanan pozisyonu uzak bir sunucuya gönderir. Oyuncular oynamaya devam ettiği sürece bu süreç devam eder.
Kodun yanında, MySQL sunucusuna içeri aktarılması gereken bir "MySQL_DB.sql" dosyasını da dahil ettim.
Bunu yapmak için, phpMyAdmin'i açın, "İçe Aktarma" sekmesine gidin, "Dosya Seçin" düğmesine tıklayın ve ardından "MySQL_DB.sql" dosyasını seçin. Daha sonra tabloları içe aktarmak için "Git" düğmesine tıklayın. İçe aktarmanın başarılı olup olmadığını do
Web sunucusunu ayarlamak için, GitHub deponumdan indirdiğim php dosyalarında bazı değişiklik yapmamız gerekiyor. "Connection.php"yi açın ve dosyadaki ana bilgisayar adını, kullanıcı adını, şifreyi ve veritabanı adını güncelleyin. Daha sonra dosyayı web sunucusundaki bir klasöre sürükleyip
Her şeyin normal çalışıp çalışmadığını doğrulamak için, web tarayıcısında "Player_Results_Display.php" dosyasını açın ve sıralamanın doğru şekilde görüntülendiğinden emin olun.
Bir prototipin gösterimi.
Şimdi, donanım mantığı hazır ve sunucu ayarlandı. Sistemin işlevselliğini doğrulamak için breadboard üzerinde hızlı bir test yapabiliriz.
Düğmeye basmaya devam edelim ve seri monitörün basıldığını kaydedip kaydetmediğini görelim. Gördüğümüz gibi, HTTP 200 kodu, sunucuyla başarılı iletişimi gösteren seri monitörde görüntüleniyor. Sıralama sayfasında, sunucunun düğmeye basmayı kaydettiğini doğrulayabiliriz. Web sayfas
Bu sayfa, her oyuncunun oynadığı gerçek zamanlı skorları, kazanılanları, kaybedilenleri, beraberlikleri ve toplam oyunları gösteren yan yana skor kartları "Oyuncu 1" ve "Oyuncu 2" içerir.
"Yeni oyun" düğmesine tıkladığınızda, sayfa sıfırlanır ve sistem, oyuncunun kazanma, kaybetme veya beraberlik sayımını mevcut skora göre günceller.
3D baskı.
Microsoft 3D Builder'ı kullanarak bu projenin 3D modelini tasarladım.
Tasarım üç bölümden oluşmaktadır:
- Üst kısım, tüm LED'leri barındırmak için kullanılır. -Alt kısım, tüm elektronik bileşenleri içerir ve
- Küçük bir parça, içinde mavi bir Wi-Fi gösterge LED'i, bir pil şarj modülü, bir SPDT açma/kapama anahtarı ve anten kablosu ve düğme anahtarı için delikler bulunmaktadır.
Bambu Studio'da modeli dilimledim ve yeni Bambu A1 3D yazıcımı kullanarak onu yazdırdım.
Son olarak, projenin ana kısmını akrilik renklerle boyadım. Altın kaplama gerçekten baskının görünüşünü geliştirdi. Boya kuruduktan sonra tüm LED'leri üst kısma monte ettim ve negatif bacaklarını çiftler halinde birleştirdim.
Kaynak.
Şimdi tüm elektronik bileşenleri monte etmeye başlayalım. Öncelikle, üretilen PCB'nin kalitesini kontrol etmek için biraz zaman ayırın. PCBWay'i yaklaşık altı yıldır kullanıyorum ve onların sundukları son ürünü kesinlikle seviyorum.
Önce tüm dirençleri pano üzerine kaynaklayalım, sonra tüm transistörleri kaynaklayalım.
Çünkü IC'lerim ve mikro denetleyicilerime özellikle dikkat ediyorum, bu yüzden onları asla doğrudan karta lehimlemiyorum. IC'ler için her zaman IC soketlerini kullanıyorum. Soket yoksa, dişi pin başlarını kullanıyorum. Bu, doğrudan lehimlemeyi önler ve değiştirmeyi kolaylaştırır. Tüm bileş
Devre kartına güç vermek için şarj modülü ve bazı ek bileşenleri entegre etmemiz gerekiyor. SPDT anahtarını ve ardından mavi Wi-Fi gösterge LED'ini kurulumaya başladım. Daha sonra dünyanın en küçük pil şarj modülünü bloka süper yapıştırdım ve bunu sabitlemek için küçü
Kalan iki delik, anten ve düğme anahtarlarına ev sahibi oluyor. Son olarak, tüm bileşenler yerine oturduktan sonra, plastik blokları tabanın altındaki oluğa yapıştıracağım.
LED'lere bağlanacak tüm kabloları kaynattıktan sonra devre kartının görünümü bu. LED'ler 1'den 10'a kadar genel GND2 kullanıyor; LED'ler 11'den 20'ye kadar ise genel gnd1 kullanıyor.
LED'leri tahtaya kaynak yaparken, fiziksel LED numaralandırmasının sunucuya gönderilen koda uyuşmamasını önlemek için doğru sırayla kaynak yapmanız gerekir. Ekrandaki talimatlara uygun sırayla yapın. LED'leri yanlış kaynatırsanız, değişikliklere uyum sağlamak için Arduino kodundakiBenim ayarlarımda.
Tüm her şeye 3,7V yeniden şarj edilebilir pil ile güç veriyorum. Fakat isterseniz, 220V'den 5V'ye indirim dönüştürücüyü veya USB kablosunu tahtadaki +5V ve -VE deliklerine kaynaklayabilirsiniz.
Her şey hazır olduğunda, kalan tek şey tabanı üst kısmına yapıştırmaktır.
Son gösteri.
Donanım hazır, eğlenme zamanı! Cihazın gücünü açın ve mavi LED'in yanmasını bekleyin. LED yandığında, sunucuya Wi-Fi bağlantısı doğrulanır. LED izlemeye başlamak için düğmeye basın. Puanınız aynı ağa bağlı tüm cihazlarda (bilgisayar veya mobil cihaz) görülebilir.
Teşekkür ederim.
Tekrar paylaşımımı kontrol ettiğin için teşekkür ederim. Umarım bu sana yardımcı olur.
Tam blog yazısı: https:// diyfactory007.blogspot.com/2026/05/Roulette.html
Tags
Modellquelle



















