the_maniac
Üye
- Katılım
- 25 Nis 2009
- Mesajlar
- 48
- Puanları
- 1
Arkadaşlar ben pic 16F877A kullanıyorum ve 4Mhz'de çalışıyorum. AN0'a bir potum bağlı (10kohmluk). Pottan okuduğum adc değerine göre PWM'in duty cycle'ını değiştiriyorum (0 ile 256 arasında değer vererek) ve bununla da led sürüyorum. Bu kodu da microcde yazıyorum. 10bitlik ADCnin 8 bitini kullanıyorum.
Sorunum ledim sürekli blink ediyor yani değişik aydınlık seviyelerinde sürekli yanıp sönüyor veya aydınlık seviyesini sürekli değiştiriyor. Kodumda PWM_duty_cycle fonksiyonunu (duty i değiştiriyorum bu fonksiyonda) çağırdıktan sonra 100ms delay ekledim. Ledi sürdüğüm pinde düzenli olarak giden bir spike tarzında bir şey gördüm. Bu spike benim pwm karelerimin üzerinde geziyor ve benim frekansımdan daha hızlı. Sorunun bundan kaynaklandığını düşünüp pinin bir bacağına 47nFlık bir seramik (yönsüz) kapasitans koydum diğer bacağı ise GNDde. Sorun çözülmedi.
Osiloskopta dikkatli olarak inceledim. Pulseım normal doluluk oranının nerdeyse 2 katından fazla şekilde görünüyor ama kendi pulseımı da görebiliyorum. Sanki anlık olarak pulseımı büyütüp geri çekiyor. Fakat osiloskopta iki pulseı da görüyorum. Pulse sürelerinden hesapla bir şey gördüm. Sorun sanki adcden okuduğum 5. bitten kaynaklanıyor. Zaten daha önce adcden okuduğum değeri porta atadığım zamanda 5.bite denk gelen ledde kafasına göre 1-0 olma durumu görmüştüm ama potun adiliğindendir diye umursamamıştım.
Arkadaşlar bu sıkıntının adcden kaynaklı olduğunu düşünüyorum. Her türlü fikrinize açığım. Yardımcı olabilirseniz sevinirim. Bu sorunu çözmek ve projeyi tamamlamak için az zamanım kaldı.
Sorunum ledim sürekli blink ediyor yani değişik aydınlık seviyelerinde sürekli yanıp sönüyor veya aydınlık seviyesini sürekli değiştiriyor. Kodumda PWM_duty_cycle fonksiyonunu (duty i değiştiriyorum bu fonksiyonda) çağırdıktan sonra 100ms delay ekledim. Ledi sürdüğüm pinde düzenli olarak giden bir spike tarzında bir şey gördüm. Bu spike benim pwm karelerimin üzerinde geziyor ve benim frekansımdan daha hızlı. Sorunun bundan kaynaklandığını düşünüp pinin bir bacağına 47nFlık bir seramik (yönsüz) kapasitans koydum diğer bacağı ise GNDde. Sorun çözülmedi.
Osiloskopta dikkatli olarak inceledim. Pulseım normal doluluk oranının nerdeyse 2 katından fazla şekilde görünüyor ama kendi pulseımı da görebiliyorum. Sanki anlık olarak pulseımı büyütüp geri çekiyor. Fakat osiloskopta iki pulseı da görüyorum. Pulse sürelerinden hesapla bir şey gördüm. Sorun sanki adcden okuduğum 5. bitten kaynaklanıyor. Zaten daha önce adcden okuduğum değeri porta atadığım zamanda 5.bite denk gelen ledde kafasına göre 1-0 olma durumu görmüştüm ama potun adiliğindendir diye umursamamıştım.
Arkadaşlar bu sıkıntının adcden kaynaklı olduğunu düşünüyorum. Her türlü fikrinize açığım. Yardımcı olabilirseniz sevinirim. Bu sorunu çözmek ve projeyi tamamlamak için az zamanım kaldı.