Sayı

2016-04-06 23 views
1

BenSayı

Şimdi Arduino Uno ve Arduino kodu sensörlerden gelen okuma alarak ve ethernet kalkan boyunca bir uzak sunucuya göndermek olduğunu içine ultrasonik sensörler bağlanıyor bir proje var Karşılaştığım problem, 6 ultrasonik sensör kullanmam gerektiğidir, fakat Arduino 4 sensörden daha fazla okuma aldığında Arduino düzgün çalışmaz, ancak iki dinlenme sensörünün okunmasını bir tane için yerleştirilen pimlerden yaptım. önceki sensörler iyi çalışıyor, ya da bu iki sensör için bir varsayılan değer atarsanız bile, düzgün çalışıyorsa,

Karşılaştığım sorun aşağıdakiler ile ilgilidir: g pimler: 10, 11, 12, 13 Ethernet kalkanının onları kullandığı, ancak bu sorunun üstesinden nasıl gelebilirim ve altı sensörü de çalıştırabilir miyim?

Aşağıdaki kod parçasını bulabilirsiniz:

#include <Ethernet.h> 
#include <SPI.h> 
#define ECHOPIN1A1 3  // Pin to receive echo pulse 
#define TRIGPIN1A1 2  // Pin to send trigger pulse 
#define ECHOPIN1A2 5  // Pin to receive echo pulse 
#define TRIGPIN1A2 4  // Pin to send trigger pulse 
#define ECHOPIN1A3 7  // Pin to receive echo pulse 
#define TRIGPIN1A3 6  // Pin to send trigger pulse 
#define ECHOPIN1B1 9  // Pin to receive echo pulse 
#define TRIGPIN1B1 8  // Pin to send trigger pulse 
#define ECHOPIN1B2 5  // Pin to receive echo pulse 
#define TRIGPIN1B2 4  // Pin to send trigger pulse 
#define ECHOPIN1B3 3  // Pin to receive echo pulse 
#define TRIGPIN1B3 2  // Pin to send trigger pulse 

cevap

1

Sen Arduino MEGA gibi daha GPIO iğnelerle bir tahta kullanabilirsiniz. Ya da tetik pimlerini bağlayabilir ve hepsini sürmek için sadece bir Arduino pimi kullanabilirsiniz.

Düzenleme: Tansir'in aşağıdaki yorumunu okuduğunuzdan ve nelerin işe yarayıp yaramadığını görmeyi denediğinizden emin olun. Kullanılabilir pimlerin sayısıyla, pim başına 3 ultrasonik sensörü tetiklemeniz gerekir (ekoyu okumak için + 6 pini tetiklemek için 2 pim).

Başka bir çözüm var: 5 pimli 8 sensöre kadar (2 veri pini ve 3 adres) çoklayıcı/çoğullayıcı kullanabilirsiniz. Ancak bu, donanımın karmaşıklığına katkıda bulunur.

+1

Aynı anda birden çok ultrasonik sensörü tetiklemeniz gerekir. Amaçlarına bağlı olarak, her bir sensörde, parazit ve çoklu yol ekoları nedeniyle ölçümlerinizi kirleterek çoklu dönüşler elde edersiniz. Parazitleri en aza indirgemek için, her bir OR arasında küçük bir gecikme ile ardışık olarak bunları tetiklemek daha zıttır. – Tansir1

+0

Onları sıralı olarak tetiklemeyi hedeflediğim ama benim düşündüğüm sorun, 6 ultrasonik sensör kullanmam gerektiğinden giriş ve çıkış sınırlamalarıdır, tetiklemek için paylaşılan bir pimden 3 sensörü tetiklemeyi düşünüyorum ve okumaları her seferinde sıralı olarak almayı düşünüyorum Okumak istediğim üç sensörün sensörü üç algılayıcıyı ortak pimden başlatacağım ve sonra okumak istediğim belirli bir sensörden okuyacağım. – HAlmusajjen