Bana sunulan analog (giriş) pin sayısını nasıl uzatabilirim?


26

Bir Arduino'daki dijital pin sayısını çoklayıcı kullanarak nasıl genişleteceğimi zaten biliyorum.

Sahip olduğum analog giriş kanallarının sayısını artırmak istiyorum. Bir çözüm köle olarak başka bir Arduino eklemektir.

Analog giriş kanallarının sayısını nasıl arttırırım? (Bazı MUXing ve ADC'lerin dahil olduğunu varsayıyorum). Cevap yazamayacak kadar karmaşıksa, genel bir devre / kod taslağı da iyi olacaktır.

Kalkan önerilerine de açığım, ancak çok zor olmayan bir donanım çözümü olsa tercih ederim.


Yanıtlar:


32

Dijital çoklayıcı yongalarını zaten biliyorsanız, iyi haber! Analog sinyaller için de kullanılabilirler.

http://playground.arduino.cc/Learning/4051

Temel öncül tamamen dijital sinyal çoğullama ile aynıdır. 4051 çipini "şerit değiştirici" olarak kullanıyorsunuz ve çipe geçmesini söylediğiniz şeridin sinyalini okuyorsunuz. 4051, arduino üzerinde 8 taneye kadar giriş şeridi oluşturmak için 3 dijital pin ve 1 ek analog (veya dijital) pin kullanır. Bazı çoğullayıcılar zincirlenebilir özelliktedir, böylece onları arduinodan uzak tutmak zorunda kalmadan 8 sinyal daha kolayca ekleyebilirsiniz.

Aynen dijital sinyaller için zaten bildiğiniz teknik gibidir, okuduğunuz kanalı dijital yerine analog bir pime bağlayın, sonra ikili durumlar arasında dolaşın ve analog değerleri okuyun.

Senin için bir animasyonlu gif yaptım.

görüntü tanımını buraya girin


3
Bağlantı soruya cevap verirken biraz daha ayrıntılı olabilir misiniz? Kısa devre hakkında yazmak? (Link sadece cevaplar ağda önerilmez )
Manishearth

Tamam. Cevap genişledi.
Steve Cooley

3
Bir açıklama, bahsettiğiniz 4051 dijital mux değil analog mux, cevabınızı açıklığa kavuşturacağım çünkü kesinlikle başaramayan dijital mux'ler var çünkü çıktı ve giriş sürücüleri doğrusal tepki için tasarlanmamış. Belki ek bir not değer, analog mux zincirleme, mux
naven87,

1
Analog mux'lerin seçim için önemsiz olmadığına dikkat çekmek önemlidir, tasarımcı voltaj salınımını (çoğu sadece opamplar gibi tedarik aralığında çalışır), bant genişliğini, ON direncini, crosstalk'ı vb. Dikkate almalıdır, voltaj salınımı en büyük potansiyeldir durdurucuyu göster.
Mister Mystère,

Bir sensörü çalıştırmak için dijital pimi de kullanabileceğinizi düşünüyorum, bu yüzden VCC'yi algılamak için sadece bir dijital pimi açıp aynı analogu paylaşın.
Ciasto piekarz

10

Arduino'nun ATmega çipinin kendisinin bir analog MUX kullandığını hatırlamak önemli olabilir. Uno bazlı (ATmega328) yongaları yalnızca tek bir ADC'ye sahiptir. 6 analog giriş aslında bir ADC'ye bağlanan bir MUX.

Bu nedenle bir seferde sadece 1 analog giriş okuyabilirsiniz.

Analog girişleri genişletirken, tüm bu MUXing işlemlerinin ne kadar zaman alacağını ve uygulamanızda ek harici ADC'lerin gerekip gerekmediğini düşünmek gerekebilir.


1

Bunu göz önünde bulundurun: Arduino ile seri haberleşmeyle ATtiny 85 ekleyin, Rx, Tx için 2 pin kullanır ve analog olarak kullanabileceğiniz 3 pin daha var. Bu protokolde kendi protokolünüzü geliştirebilirsiniz, ATtiny algoritmayı işleyebilir ve işlenen bilgileri Arduino'ya gönderebilir, aynı zamanda çok ucuzdur, kendi kendime denedim, güzel bir mimari olduğunu düşünüyorum.

İyi günler

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.