From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
04-09-2014 03:02 PM
04-09-2014 03:04 PM
04-10-2014 01:18 AM - edited 04-10-2014 01:19 AM
Merhaba Emre,
Öncelikle arduino karta giren AC sinyalin kart için güvenli aralıkta olduğuna emin olman gerekir.
Örneğin arduino'ya negatif bir gerilim ya da 5V'u geçen bir gerilim vermen kartında hasara neden olabilir.
Ölçmek istediğin sinyali öncelikle bu aralığa getirmen gerekecektir. Öncelikle negatif yönde salınma varsa bunu uygun bir rectifier ile doğrultabilir, genliği de yine direnç bölücü ile 0-5V aralığına indirebilirsin.
Daha sonra sinyal frekansının en az 2 katı bir hızla (sinyalin 50Hz ise en az saniyede 100 kere) arduino koduna analogRead() yaptırman gerekir.
Buraya kadar geldikten sonra, gerilim ölçümünü bilgisayarda göstermek için 2 yol var:
analogRead() ile aldığın her gerilim örneğini (10 bit'lik değerler olduğu için 2'şer byte halinde) seri porttan LabView koduna gönderebilir. Kodunda yeterli örnek oluştuktan sonra RMS, peak gibi değerleri kodunda hesaplayıp ekranda gösterebilirsin.
Ya da, arduino ile belirli bir süre (örneğin 1 saniyelik pencereler halinde) topladığın örneği arduino hafızasında (short tipinde array tanımlayarak) biriktirip daha sonra hesaplamaları yapıp sonucu yine seri porttan LabView'a gönderebilirsin.
Arduino herhangi bir anda tek bir işle meşgul olabileceği için analogRead() haricinde yazacağın her kod örnekleme hızını düşürecektir. Bu yüzden hesaplama kısımlarını bilgisayara bırakmak daha iyi olabilir.
Yaptığın ölçümleri tek tek bilgisayara gönderirken de yüksek bir baud rate'i seçersen (115200 veya daha üstü) gönderme sırasında arduino kodun fazla zaman harcamadan yeniden analogRead() işine geri dönebilir.
Bilgisayara ulaşan gerilim verileri 0 ile 1024 arasında sayılar olacaktır. Çünkü analogRead fonksiyonu 0-5V aralığını 1024 parçaya bölerek okuduğu gerilimin hangi parçaya denk geldiğini sana söyler.
Önce bunları geri VOLT cinsine dönüştürmen gerekir.
Daha sonra eğer orijinal stator gerilimini arduino'ya bağlamak için direnç bölücü gibi bir yöntemle gerilimi düşürdüysen bu işlemi tersine çevirerek orjinal stator gerilimine ulaşacaksın.
Kolay gelsin...
04-10-2014 01:22 AM - edited 04-10-2014 01:38 AM
Aşağıdaki link'e bir göz atmanı tavsiye ederim.
Analog okuma ile ilgili güzel denemeler ve örnek kodlar var.
http://meettechniek.info/embedded/arduino-analog.html
Sayfada Free Running Sampling başlığı altında arduino loop() kodunu meşgul etmeden, interrupt ile nasıl analog okuma yapılacağı hakkında da kısa ama güzel bir örnek var.
Önce basit olması açısından loop() içinde analogRead() ile okuyarak projeyi gerçekleyip, bunu başardıktan sonra örnekleme hızını artırmak için interrupt tabanlı bir yöntemi de deneyebilirsiniz.
04-10-2014 05:05 AM
sağolun eren balcı beyfendi, çok tesekkur ediyorum bilgiler için, yazdıklarınız inceledim ve halen bakmaktayım. ama lakin bu boundrate oranı sanırım arduino uno için 9600 diye biliyorum, ama farklı bir boundrate yazabilirmiyim yani dediğiniz gibi 115200. bu boundarate oranı sanırıım Mega için gecerli. yani şuan için elimde sadece uno mevcut.
Tez olarak 3 phase synchonours motor (generator) ü kendim tasarlayıp daha sonra bunu jenerator oralarak kullanarak statoruna automatic voltage regulator (avr) eklemek. basitce jeneratorun çalışma mantığı. rotorumuza DC besleme yapıp sonra rotoru baska bir motor yada el yardımı ile dönderip. Statoru manyetiklemek sonra ordan elde ettiğimiz voltaj değerlerine bakıp fazla ise rotora verilen akımın azaltılması gerekicek azsa da tam tersi..
burda arduinonun görevi satordaki gerlimleri sanırım pwm moduna çevirmek olucak.. reticifer dan sonra tam dalga dogrultumuz sınyali okuyup ona göre rotor akımını ayarlamak 🙂
yanıtınız ve bilgilendimeleriniz için çok teşekkür ederim, çalışmalrınızda da başarılar dilerim.
Saygılar, Emre Öztoklu
06-20-2014 09:58 AM