Proje için yardım/öneri (24.03.25 güncelleme)

mkara

Üye
Katılım
23 Ağustos 2022
Mesajlar
16
Elektrik elektroniğe hobi olarak ilgi duyuyorum fakat neredeyse sıfır bilgi, google araştırması ve yapay zeka katkısıyla birşeyler yapmaya çalışıyorum.

Daha önce bir kuluçka makinesi yapmıştım strafor kutu içine, fareler kemirince daha iyi birşey yapma hevesi geldi. Hazır kitler satılıyor bu iş için ama ben nasıl yaparım derken arduino ya bi merak saldım. Nasıl çalışır derken Proteus programını buldum ve kendimce bir şeyler ortaya çıkardım.

Kuluçkaya koyulan yumurta cinsini seçme
Seçilen cinse göre süre, sıcaklık, nem ayarlaması ve bunlara müdahale edilmesi gibi seçenekler mevcut.

Arduino mega
5110 lcd
4x4 tuş
SHT31 sensör (kabinin orta ve üstünde konumlanacak şekilde 2 adet)
DS3231 RTC
4 lü röle (ısıtıcı, nem, fan ve viyol motorunun kontrolü)

Sorularım;
Sensörleri bağlarken direnç kullanmam gerekli mi? Çünki 50-80cm kablo ucuna bağlamam gerekli.
Cat6 kablo bağlantılarda kullanılabilir mi? Elimde atıl durumda farklı uzunluklarda cat6 kablo var kullanayım diyorum.
Proteus ta ic2 adresi değiştirilebiliyor mu? Eklediğim görselde çalıştırdığımda sensör hatası alıyorum. Zaten sht31 bulamadım 21 ekledim, acaba bundan kaynaklı mı.

Malzemelerin neredeyse hepsini sipariş verdim.

Öneri ve görüşlere ihtiyacım var.
 

Ekler

  • prot.JPG
    prot.JPG
    121.9 KB · Görüntüleme: 58
Mikroişlemciye bağlamadan önce düşük direnç (20ohm ile 1k arasında) kullanmak genellikle tavsiye edilir akımı sınırlaması açısından. İki cihaz da (SHT21) aynı i2c adresini (0b1000000) kullanıyor. Datasheetine ufak bir baktım adres değişmek için bir yöntem yok. Adres çakışması olduğu için iki hattan aynı anda sinyal geliyordur bu yüzden kullanamıyorsundur.

Ya arduinodan yeni bir i2c hattı aç (var mı bilmiyorum) ya da sensörleri değiştirmeyi düşün. BME280'de iyi bir alternatif adres değişim pini de var.
 
Mikroişlemciye bağlamadan önce düşük direnç (20ohm ile 1k arasında) kullanmak genellikle tavsiye edilir akımı sınırlaması açısından. İki cihaz da (SHT21) aynı i2c adresini (0b1000000) kullanıyor. Datasheetine ufak bir baktım adres değişmek için bir yöntem yok. Adres çakışması olduğu için iki hattan aynı anda sinyal geliyordur bu yüzden kullanamıyorsundur.

Ya arduinodan yeni bir i2c hattı aç (var mı bilmiyorum) ya da sensörleri değiştirmeyi düşün. BME280'de iyi bir alternatif adres değişim pini de var.
Basınçla işim olmadığından ve daha stabil olduğunu düşündüğümden SHT31 seçtim. AD ve AL yi kısadevre yapınca adres değiştiğini öğrendim. Uygulamada bunu yapabilirim ama proteus ta simülasyon yaparken böyle bir seçenek mevcut mu? bilginiz var mı?

Direnci hangi hatta bağlamam gerekli?
 

Ekler

  • sht31.jpg
    sht31.jpg
    35.8 KB · Görüntüleme: 38
  • sht31-arka.jpg
    sht31-arka.jpg
    34.7 KB · Görüntüleme: 38
Belki, 74 serisınde analog swtichleri kullanarak birden fazla eşit adresli sensörün i2c bus erişimleri kontröl edilebilir.
 
Basınçla işim olmadığından ve daha stabil olduğunu düşündüğümden SHT31 seçtim. AD ve AL yi kısadevre yapınca adres değiştiğini öğrendim. Uygulamada bunu yapabilirim ama proteus ta simülasyon yaparken böyle bir seçenek mevcut mu? bilginiz var mı?

Direnci hangi hatta bağlamam gerekli?
Şöyle açıklayayım proteusta ne kullandığını tam göremedim eğer proteusta şema üzerinde sht21 ise yapamazsın çünkü onda addres değiştirme pini yok. Ama sht31 ise o sensörde adres değiştirme pini mevcut. O pini high ya da low yaparak addreste değişiklik yapabilirsin ama açıkta bırakmaman lazım.

Eğer simülasyonda sht31 kullanıyorsan kullanıyorsan belki çift tıklayınca bir değer değiştirilebilir. Proteusa çok hakim değilim maalesef.

Direnç konusuna gelirsek; numpadden mikroişlemciye bağladığın her tüm hatlar için gerekli. I2C hattına gerekli değil çünkü sensör zaten çok düşük akımla çalışıyor yine de içim rahat etsin dersen 20-100 ohm arası bir direnci seri şekilde SDA, SCL hattına bağlayabilirsin.
 
Seri direncin başka bir kullanım alanı da yüksek hızlı dijital devrelerde. Buradaki görevi de yüksek hızlı anahtarlamada ortaya çıkan "ringing" etkisini baskılamak. Ama senin devre için geçerli bir kullanım şekli değil, I2C nin yaygın çalışma frekansı en fazla 400 kHz.

1738340392421.png
 
Seri direncin başka bir kullanım alanı da yüksek hızlı dijital devrelerde. Buradaki görevi de yüksek hızlı anahtarlamada ortaya çıkan "ringing" etkisini baskılamak. Ama senin devre için geçerli bir kullanım şekli değil, I2C nin yaygın çalışma frekansı en fazla 400 kHz.

40009 eklentisine bak
O halde direnç bağlamam gerekli değil.
Yanlış çeviri yaptırmadıysam kılavuzda 4.7kohm direnç olduğu bilgisini buldum.
Parçalar geldi, yarın vakit bulabilirsem taslak olarak bağlayıp denemeye çalışıcam.
Cat6 kablosunu bu bağlantılarda kullansam sorun yaşarmıyım sizce?
 
Yukarıda belirtildiği gibi, şu anda konuya tam hakim olmadığın için bağlamakta yarar var. Böylece yanlışlıkla sensör çıkışı ile Arduino çıkışı birbirine bağlanırsa ve farklı dijital seviye varsa arıza çıkmasını engellemiş olursun, devrenin çalışmasına da olumsuz bir etkisi olmaz.
 
Çünki 50-80cm kablo ucuna bağlamam gerekli.
Evet, bir kaç tane sensör bağlanacaksa bu uzunlukta i2c ye, direnclerin bağlanamsı gerekiyor . Osiloskop varsa kontröl edebilirsin ne oluyor direncsiz.
Ben en son bir hafta önce gpio pull up aktif yaparak baktım.
 
O halde direnç bağlamam gerekli değil.
Yanlış çeviri yaptırmadıysam kılavuzda 4.7kohm direnç olduğu bilgisini buldum.
Parçalar geldi, yarın vakit bulabilirsem taslak olarak bağlayıp denemeye çalışıcam.
Cat6 kablosunu bu bağlantılarda kullansam sorun yaşarmıyım sizce?
Klavuzda yazan büyük ihtimal pull-up direnci. Genel olarak i2c hatları için 1k ile 10k arasında pull-up direnci önerirler en yaygını da (en azından benim sürekli karşılaştığım) 4.7k. Sen direkt olarak modül alacağın için hali hazırda pull-up dirençleri bağlı olarak gelebilir. Bir kontrol etmekte fayda var.

@taydin hocamızın dediği ringing etkisinden kurtulmak için yukarıda da bahsettiğim gibi en fazla 100 ohmluk direnç kullanmak gerekli. 100 ohmdan yukarısı bu sefer de sinyallerin düşen ya da yükselen kenarlarını çok yavaşlatabilir. 20, 30 ohm direnç yeterli.
 
Önce dışarıda bağlantıları yapıp denemeler yaptım. Bugün elektrik kutusu alıp içerisine yerleştirmeye başladım, keşke biraz daha büyük kutu alsaydım diyorum şimdi. İçerisine bukadar kablo çekeceğimi hesaba katmamışım.
Kesme biçme işleri derken epey zaman harcadım ama olacak sanki.
Sensörleri uzatmak için cat6 kablo kullandım. Arduino pinlerinden dişi cat6 soketine kablo çektim, böylece sensör değişimi gerekirse işim kolaylaşır diye düşündüm.
Aslında kutuyu büyük tutup tüm kabloları soketli yapmak mantıklıymış sonradan farkettim.

Kod kısmından hiç anlamayan biri için hatanın neden kaynaklandığını bulup çözmek gerçekten çok zormuş.

Haftasonu tüm sistemi kurup test etmeye başlarım diyorum. Sorun olmadığını görürsem kodla beraber konuyu güncelleyeceğim.
 

Ekler

  • 20250227_215535.jpg
    20250227_215535.jpg
    767.7 KB · Görüntüleme: 54
Kod yüklemesini ve tüm parçaların bağlantılarını yaptım. Fakat bir sorunum var, bunu nasıl çözebilirim?

Çalışır vaziyette yaklaşık 3 saat gözlem yaptım, sistem düzgün çalışır haldeydi. Açık bırakıp gittim. Bu sabah baktığımda sistem reset atmış ve çalışmayı durdurmuş. neden olabilir?
 

Ekler

  • kod.txt
    kod.txt
    24.7 KB · Görüntüleme: 14
  • 4.jpg
    4.jpg
    221.8 KB · Görüntüleme: 29
  • 3.jpg
    3.jpg
    94.2 KB · Görüntüleme: 22
  • 2.jpg
    2.jpg
    222.4 KB · Görüntüleme: 23
  • 1.jpg
    1.jpg
    237 KB · Görüntüleme: 96
  • reset.jpg
    reset.jpg
    78.3 KB · Görüntüleme: 30
Bir öneriniz var mı, kablo kalitesi için mi söylediniz yoksa karışıklık için mi?
Röleler açılıp kapanırken ortaya çıkan EMI (elektro manyetik indüksiyon) Uzun kablolarda voltaj indüklüyordur bu da anahtarlamanın meydana geldiği ana bağlı olarak bazen arduinoyu resetleyecek kadar yüksek oluyordur. Kabloları kısaltmak ve röle tarafıyla arduino tarafını metal plakayla ayırmanın faydası olabilir. Kabloları ferrit yüzük içinden geçirmenin de faydası olur. Bunun dışında resetlemenin sebebi sadece arduinoyu beslediğin adaptör de olabilir.

RTC modül kullanmışsınız, arduinoda eeprom var. Güç kesintisi veya resetlemeden sonra eeprom kayıtları ve RTC'den okunan zaman değerlendirilerek sistemin kaldığı yerden normal çalışmaya dönmesi ve ekranda güç kesintisi uyarısı yazması sağlanabilir. Hatta biraz daha uğraşılıp güç kesintisin ne kadar sürdüğü bile takip edilebilir.
 
Çalışır vaziyette yaklaşık 3 saat gözlem yaptım, sistem düzgün çalışır haldeydi. Açık bırakıp gittim. Bu sabah baktığımda sistem reset atmış ve çalışmayı durdurmuş. neden olabilir?

İşte bu noktada sana bir osiloskop gerekli. Osiloskobu Arduino Vcc sine bağlayacaksın, trigger eşiğini de şöyle 4.6 V gibi yapıp "falling edge trigger" olarak yapılandıracaksın. Sonra da osiloskobu "single" moda alıp orada bırakacaksın. Geri döndüğünde eğer trigger oluşmuşsa, reset'in sebebinin Vcc çökmesine bağlı olduğunu görmüş olacaksın ve ona göre analiz devam edecek. Eğer trigger etmemişse başka teoriler geliştirip onları osiloskop ile kanıtlamaya çalışmak lazım. Deterministik yöntem budur.

Veya osiloskop almak istemiyorsan, istatistik olarak olası problem kaynaklarına teker teker el atıp problem gidiyor mu diye bakacaksın.
 
Röleler açılıp kapanırken ortaya çıkan EMI (elektro manyetik indüksiyon) Uzun kablolarda voltaj indüklüyordur bu da anahtarlamanın meydana geldiği ana bağlı olarak bazen arduinoyu resetleyecek kadar yüksek oluyordur. Kabloları kısaltmak ve röle tarafıyla arduino tarafını metal plakayla ayırmanın faydası olabilir. Kabloları ferrit yüzük içinden geçirmenin de faydası olur. Bunun dışında resetlemenin sebebi sadece arduinoyu beslediğin adaptör de olabilir.

RTC modül kullanmışsınız, arduinoda eeprom var. Güç kesintisi veya resetlemeden sonra eeprom kayıtları ve RTC'den okunan zaman değerlendirilerek sistemin kaldığı yerden normal çalışmaya dönmesi ve ekranda güç kesintisi uyarısı yazması sağlanabilir. Hatta biraz daha uğraşılıp güç kesintisin ne kadar sürdüğü bile takip edilebilir.
20cm jumper kablolar var 120x225x80 kutu içerisinde arduino ve röle modülü ve rtc modülü var. rölede otokuplör izolatör mevcut dedi satıcı. Ferrit yüzüğü tüm kablolara mı yoksa belirli kablolara mı takmak gerekli? Rölenin beslemesini 5v adaptör alıp ayırsam bir faydası olurmu acaba?
İşte bu noktada sana bir osiloskop gerekli. Osiloskobu Arduino Vcc sine bağlayacaksın, trigger eşiğini de şöyle 4.6 V gibi yapıp "falling edge trigger" olarak yapılandıracaksın. Sonra da osiloskobu "single" moda alıp orada bırakacaksın. Geri döndüğünde eğer trigger oluşmuşsa, reset'in sebebinin Vcc çökmesine bağlı olduğunu görmüş olacaksın ve ona göre analiz devam edecek. Eğer trigger etmemişse başka teoriler geliştirip onları osiloskop ile kanıtlamaya çalışmak lazım. Deterministik yöntem budur.

Veya osiloskop almak istemiyorsan, istatistik olarak olası problem kaynaklarına teker teker el atıp problem gidiyor mu diye bakacaksın.
Kafamda oluşturduğum kadar kolay değilmiş, yazdıklarınıza bakarken epey detay varmış bunları da görmüş oluyorum. Karadüzen kabloları bağla geç çalışır diye düşünmemek gerekliymiş. Daha multimetre yi bile yeni alıp nasıl kullanılır bu diyen biri için osiloskop epey uç nokta :)

Kod kısmını düzenledim, biraz daha kapsamlı hale geldi.

Biraz yardımla bu projeyi çalışır hale getirebilirim.

Yardımcı cevaplarınız için teşekkür ederim.
 
Mesajdaki kod.txt yüklenen kod mu? Son fotoğrafta görünen "SURE DOLDU" mesajı yok, başka bir yerden almıyorsa.
 
20cm jumper kablolar var 120x225x80 kutu içerisinde arduino ve röle modülü ve rtc modülü var. rölede otokuplör izolatör mevcut dedi satıcı. Ferrit yüzüğü tüm kablolara mı yoksa belirli kablolara mı takmak gerekli? Rölenin beslemesini 5v adaptör alıp ayırsam bir faydası olurmu acaba?

Kafamda oluşturduğum kadar kolay değilmiş, yazdıklarınıza bakarken epey detay varmış bunları da görmüş oluyorum. Karadüzen kabloları bağla geç çalışır diye düşünmemek gerekliymiş. Daha multimetre yi bile yeni alıp nasıl kullanılır bu diyen biri için osiloskop epey uç nokta :)

Kod kısmını düzenledim, biraz daha kapsamlı hale geldi.

Biraz yardımla bu projeyi çalışır hale getirebilirim.

Yardımcı cevaplarınız için teşekkür ederim.
Röleler arduino üzerinden besleniyorsa sorun olabilir, regülatör ısınıyordur belki. Arduinoyu beslediğiniz adaptör kaç volt? Çabucak akşamdan sabaha yeni bir test yapmak için Röleleri 5V telefon şarjlarından biriyle besleyerek deneyebilirsiniz. Bir tane usb kablonuzu feda edeceksiniz artık :) . ferit yüzükten önce kabloları daha kısa tutmayı denersiniz. Ama besleme problemi olması daha muhtemel bence.
 
Mesajdaki kod.txt yüklenen kod mu? Son fotoğrafta görünen "SURE DOLDU" mesajı yok, başka bir yerden almıyorsa.
Kodda ufak farklar var, evdeki pc de kaldı son yüklediğim. şuan kodda güncellemeler yapıyorum resetleme halinde kaldığı yerden devam etmesi ile ilgili. Güncel kodu bittiğinde yeniden paylaşırım.

Röleler arduino üzerinden besleniyorsa sorun olabilir, regülatör ısınıyordur belki. Arduinoyu beslediğiniz adaptör kaç volt? Çabucak akşamdan sabaha yeni bir test yapmak için Röleleri 5V telefon şarjlarından biriyle besleyerek deneyebilirsiniz. Bir tane usb kablonuzu feda edeceksiniz artık :) . ferit yüzükten önce kabloları daha kısa tutmayı denersiniz. Ama besleme problemi olması daha muhtemel bence.
Evet arduino üzerinden besledim röleleri 9v 1a. Bende dolabı karıştırıp eski telefon adaptörünü buldum azönce 5v 2a yeterli olur inşallah :) Kabloları kısaltmaya kalkarsam çok gergin olacakmış gibi. 2-3cm de olsa kısatmamı önerirseniz onu da yapayım.
Denediğim yer ile aramda 60km mesafe var, haftasonu deneyip haftaiçi düzeltmeleri yapıyorum. Almam gereken birşey varsa gitmeden toparlamak için öğrenmeye çalışıyorum.
Eski yaptığım sistemde şuan kaz yumurtalarını koydum, o karadüzen çalıştığı için böyle sorunlarla karşılaşmıyorum. Kayınpeder tavuk yumurtalarını biriktirmeye başladı, bayramda çalıştırabilirsem çok güzel olacak :) :)
 

Forum istatistikleri

Konular
7,528
Mesajlar
126,215
Üyeler
3,053
Son üye
xo88name

Son kaynaklar

Son profil mesajları

Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
Back
Top