2016-04-06 11 views
1

Ich habe ein Projekt, das Ultraschallsensor in Arduino Uno verbindet und der Arduino-Code wird die Messwerte von den Sensoren zu nehmen und sie zu einem Remote-Server im gesamten Ethernet-Schild senden,Ausgabe zwischen Ultraschallsensor und Ethernet Shield Arduino

Jetzt Das Problem, das ich gegenüberstelle, ist, dass ich 6 Ultraschallsensoren verwenden muss, aber wenn das Arduino das Lesen von mehr als 4 Sensoren nimmt, funktionieren die Arduino nicht richtig, aber wenn ich das Lesen der zwei Ruhesensoren von Stiften für eins machte der vorherigen Sensoren funktioniert es gut, oder auch wenn ich einen Standardwert für diese beiden Sensoren zuweisen funktioniert es gut,

Das Problem, mit dem ich konfrontiert bin, ist mit den folgenden verbunden g pins: 10, 11, 12, 13 Dass die Ethernet-Abschirmung sie benutzt, aber wie kann ich dieses Problem lösen und alle sechs Sensoren laufen lassen?

Sie können unten Teil des Codes finden:

#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 

Antwort

1

Sie ein Brett mit mehr GPIO-Pins wie der Arduino MEGA nutzen könnten. Oder Sie können die Trigger-Pins miteinander verbinden und nur einen Arduino-Pin verwenden, um alle zu steuern.

Bearbeiten: Stellen Sie sicher, lesen Sie Tansirs Kommentar unten und experimentieren Sie, um zu sehen, was funktioniert und was nicht. Mit der Anzahl der verfügbaren Pins müssten Sie 3 Ultraschallsensoren pro Pin auslösen (2 Pins zum Triggern + 6 Pins zum Lesen des Echos).

Es gibt eine andere Lösung: Sie können Multiplexer/Demultiplexer verwenden, um bis zu 8 Sensoren mit 5 Pins (2 Datenpins und 3 Adressen) zu betreiben. Dies würde jedoch die Komplexität der Hardware erhöhen.

+1

Sie müssen vorsichtig sein, mehrere Ultraschallsensoren gleichzeitig auszulösen. Abhängig davon, wie sie ausgerichtet sind, erhalten Sie mehrere Rückmeldungen pro Sensor, wodurch Ihre Messungen aufgrund von Interferenzen und Mehrwegechos gestört werden. Es ist sicherer, sie sequenziell mit einer kleinen Verzögerung zwischen jedem ODER auszulösen, um sicherzustellen, dass sie in entgegengesetzte Richtungen gerichtet sind, um Störungen zu minimieren. – Tansir1

+0

Das, was ich für die sequenzielle Triggerung angestrebt habe, aber das Problem sind die Beschränkungen der Ein- und Ausgabe, da ich 6 Ultraschallsensoren verwenden muss, denke ich, 3 Sensoren von einem gemeinsamen Pin für die Triggerung auszulösen und die Ablesung nacheinander zu erhalten Sensor der drei, die ich lesen möchte Ich werde die drei Sensoren vom geteilten Pin auslösen und dann werde ich den Messwert von dem spezifischen Sensor bekommen, den ich lesen möchte, – HAlmusajjen

Verwandte Themen