Zamanlayıcılar mikrodenetleyicilerin önemli bir özelliğidir ve gecikmelere güvenmeden görevleri kesin aralıklarla gerçekleştirmenizi sağlar. Arduino Uno, PWM sinyalleri, zamanlama olayları veya zamanlama görevleri üretme gibi çeşitli işlevler için yapılandırılabilen üç dahili donanım zamanlayıcısına (zamanlayıcı, zamanlayıcı1 ve zamanlayıcı2) sahiptir. Bu öğretici, Arduino zamanlayıcılarını anlama ve kullanarak size rehberlik edecektir.
Ne İhtiyacınız Olacak
- Arduino Uno (veya uyumlu bir tahta)
- LED ve 220-OHM direnç (zamanlama tabanlı örnekler için)
- Breadboard ve jumper telleri
- Bilgisayarınızda yüklü Arduino IDE
1. Adım: Arduino zamanlayıcılarını anlamak
Arduino Uno’nun Atmaga328P mikrodenetleyicisinin üç donanım zamanlayıcısı var:
Zamanlayıcı | Bit çözünürlüğü | Birincil kullanım |
---|---|---|
Zamanlayıcı | 8 bit | Millis (), micros (), pimlerde PWM 5, 6 |
Zamanlayıcı1 | 16 bit | Servo Kütüphanesi, Pins 9, 10 Üzerinde PWM |
Zamanlayıcı2 | 8 bit | Tone () işlevi, pinlerde PWM 3, 11 |
Zamanlayıcıların temel özellikleri
- Zamanlayıcılar PWM sinyalleri oluşturabilir.
- Zamanlayıcılar kesintileri tetikleyebilir.
- Zamanlayıcılar, arduino işlevleri tarafından dahili olarak kullanılır
delay()
Vemillis()
.
2. Adım: Basit bir PWM sinyali oluşturma
PWM (darbe genişliği modülasyonu) sinyalleri, LED parlaklığı veya motor hızını kontrol etmek için yaygın olarak kullanılır. PWM sinyali oluşturmak için Timer0'ı kullanalım.
Örnek kodu: PWM ile LED parlaklık kontrolü
Adım 3: Kesmalarla zamanlayıcılar kullanma
Zamanlayıcıları kesintileri düzenli aralıklarla tetikleyecek şekilde yapılandırabilirsiniz. Örneğin, Timer1 bir LED'i her saniyede değiştirecek şekilde ayarlanabilir.
Örnek Kodu: Timer1 kesinti
Adım 4: Zamanlayıcılarla süreyi ölçme
Kesin süreleri ölçmek için zamanlayıcılar kullanabilirsiniz. Timer2, 8 bitlik bir zamanlayıcı olduğu için küçük aralıklar için uygundur.
Örnek Kodu: Zaman ölçümü için Timer2
Adım 5: Zamanlayıcı kitaplıklarını kullanma
Zamanlayıcılarla çalışmayı basitleştirmek için, Zaman ayı veya TimeThree.
Timerone Kütüphanesini Kullanma
- Timerone kütüphanesini Arduino IDE'ye yükleyin.
- Görevleri kolayca planlamak için kullanın:
Zamanlayıcıların uygulamaları
- Motor kontrolü için kesin PWM sinyalleri üretme
- Kodu engellemeden görevleri zamanlama (ör. Çoklu görev)
- Olaylar için zaman aralıklarını ölçme
- Kullanmadan kesin gecikmeler yaratmak
delay()
- Yanıp sönen LED'ler veya veri gönderme gibi periyodik eylemleri yönetmek
Sorun giderme
- Zamanlayıcı Çatışmaları: Aynı zamanlayıcıyı birden çok işlev için kullanmadığınızdan emin olun (örn. Servo kütüphanesi ve PWM).
-
Kesme çalışmıyor: Kesmaların etkinleştirildiğini kontrol edin
interrupts()
. - Beklenmedik davranış: Presclarer'ı çift kontrol edin ve doğru zamanlama için eşleşme değerlerini karşılaştırın.
Çözüm
PWM sinyalleri oluşturmak, kesintileri işlemek ve süreyi ölçmek için Arduino zamanlayıcılarını nasıl kullanacağınızı öğrendiniz. Mastering Timers, verimli ve hassas Arduino projeleri oluşturmak için güçlü özelliklerin kilidini açar. Farklı konfigürasyonları deneyin ve bir sonraki projenizi optimize etmek için zamanlayıcılar uygulayın!