Döner Enkoder Konum Sayacı

Arduino Nano 33 BLE üzerinde mekanik bir kuadratür el çarkını çözün: her tam tık doğru yönde bir kez sayılsın; kontak sekmesi, geri sallama ve geçersiz geçişler sayılmasın, basmalı düğme konumu sıfırlasın.

Kart
Nano 33 BLE · Arduino
Zorluk
Orta
Konu
Data Handling & Algorithms
Erişim
Tam plan

Görev

Döner Enkoder Konum Sayacı

Küçük bir CNC router'a, iş milini elle ilerletmek için bir el çarkı takılıyor. Çark, tık tık oturan (detent'li) mekanik bir kuadratür enkoderdir. Mekanik kontaklar sekebilir, operatör de çarkı ileri geri sallayabilir; ama buradaki yanlış bir adım kesici takımı oynatır. Bu yüzden her tık tam bir kez, doğru yönde sayılmalı ve başka hiçbir şey sayılmamalı.

Donanım

  • Arduino Nano 33 BLE (nRF52840, 3,3 V lojik). Seri konsol Serial1 (D0/D1), 115200 baud. Serial USB'dir ve testlerde görülmez. Konsolu hareket denetleyicisi okur.
  • Enkoder kanalları: A kanalı D2'de, B kanalı D3'te; ortak uç GND'ye bağlı. Dahili pull-up'ları kullanın. Tık konumunda (durağan konumda) iki kanal da HIGH okunur.
  • Bir tık saat yönünde çevrilince önce A LOW olur, sonra B LOW olur, sonra A tekrar HIGH, en son B tekrar HIGH olur. Saat yönünün tersinde sıra aynıdır, yalnızca B önce gelir.
  • D5: çarkın basmalı düğmesi (sıfırlama), GND'ye bağlı, LOW = basılı.

Kodu sketch/sketch.ino dosyasına yazın. setup() içinde Serial1'i 115200 baud ile açın, konumu 0 ile başlatın, sonra READY yazın. delay() ile akışı asla durdurmayın: pinleri sürekli okuyan bir döngü yeterince hızlıdır.

Bu, görevin başlangıcı. Devamını okumak ve çözmek için tam planla giriş yap.

Neler var

  • Firmware'in emüle edilmiş bir kartta derlenip çalıştırılır ve donanım seviyesindeki testlerle kontrol edilir.
  • Çözümün yazılı anlatımı.
  • Geliştirme kartı veya yerel kurulum gerekmez.

Gömülüye yeni misin? Yol haritasıyla başla: Gömülü sistemler nasıl öğrenilir