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.SerialUSB'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
HIGHokunur. - Bir tık saat yönünde çevrilince önce A
LOWolur, sonra BLOWolur, sonra A tekrarHIGH, en son B tekrarHIGHolur. 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