Guten Tag, habe folgendes Problem: Ich möchte Daten (Zahlenwerte) zwischen einem µC (Arduino Nano) und einem Roboter (ABB 6 DOF) übertragen. Leider hat der Roboter nur je 10 digitale Ein- und Ausgänge zu Verfügung. Je vier davon sind verwendet. Bleiben also je 6 digitale Ein-und Ausgänge. Ich möchte aber Daten an den Roboter übermitteln. Hat Jemand eine Idee wie man es machen könnte? Die einfachste Möglichkeit die mir in den Kopf kommt ist die Verwendung eines D-FlipFlops mit einer Leitung für Chipselect und 5 Datenleitungen. Das Problem ist, dass ich dann nur Zahlen von 0 bis 31 übertragen kann. Das ist aber zu wenig.
Eine serielle Verbindung kommt je Richtung mit einer Signalleitung aus (Stichwort Soft-UART, wenn Du nicht die Hardware-UART Deines Arduinos nutzen möchtest/kannst) und kann beliebige Informationen übertragen.
Tja serielle Übertragung 1. bit 0 oder 1 setzen zweite Leitung auf High setzen bit wird eingelesen 2. links oder rechts shiften 3. zweite Leitung auf Sprung zu 1 Anzahl der Leitung 2 aber mal nur so gefragt der hat doch auch ne UART oder sind die Pins dafür schon vergeben??
Den Roboter kann man um UART erweitern (aktivieren). Man hat mir gesagt, dass es ca. um die 1500 Euro kosten wird. Außerdem finde ich in der Doku von RobStudio (Software des Roboters) nirgendwo Funktionen für UART. Wahrscheinlich bekommt man diese nach der Aktivierung mitgeteilt. Deswegen versuche ich es auf eine andere Art. Der µC hat eine UART Schnittstelle aber die Benutze ich um den Status des µC abzufragen. Das mit der seriellen Verbindung, wird die Lösung sein. Danke! Werde mir gleich ein paar Gedanken machen.
Viktor schrieb: > Hat Jemand eine Idee wie man es machen könnte? Dafür gibt es fast unendlich viele Möglichkeiten. Als erstes wäre mal festzulegen, ob es eher auf einen möglichst geringen Verbrauch an Signalleitungen ankommt oder doch eher auf eine möglichst hohe Datenrate. Und es wäre festzulegen, ob eine unidirektionale oder bidirektionale Datenverbindung benötigt wird und im letzteren Fall noch, ob diese halb- oder vollduplex betrieben werden soll. > Die einfachste Möglichkeit die mir in den Kopf kommt ist die Verwendung > eines D-FlipFlops mit einer Leitung für Chipselect und 5 Datenleitungen. > Das Problem ist, dass ich dann nur Zahlen von 0 bis 31 übertragen kann. > Das ist aber zu wenig. Unsinn. Wenn die Breite eines Datenwortes nicht reicht (egal wie breit es konkret ist), dann muß man halt mehrere solcher Datenworte für ein Datum übertragen. Davon mal abgesehen scheint also eine unidirektionale Verbindung angestrebt zu werden. Bliebe nur noch zu klären, ob lieber mit möglichst wenig Signalen oder lieber möglichst schnell. Wenn mit möglichst wenig Signalen, dann reicht genau eins. Womit wir bei OneWire oder einem ähnlichen Protokoll wären. Wenn mit möglichst hoher Geschwindigkeit, würde man ein Strobe-Signal vorsehen und ein Ack-Signal und die verbleibenden vier Signale zur Übertragung von Nibbles, also 4Bit breiten Datenwörtern verwenden. Also im Prinzip eine klassische LPT-Druckerschnittstelle, bloß mit nur vier statt acht Datenbits. Oder, fast genauso, die physische Schnittstelle eine SDHC-Karte mit maximaler Datenwortbreite. Du scheinst rein garnix davon zu kennen. Also mach dich einfach mal schlau, wie sowas funktioniert.
Vielen Dank für den Beitrag. Die Schnittstellen an sich, sind mir schon bekannt. Die Idee digitale Pins dazu zu nutzen um eine Schnittstelle selber zu erstellen, habe ich hier gefunden. Finde ich echt klasse. Werde mir ersteinmal eine srielle Schnittstelle aus zwei Leitungen aufbauen und versuchen Daten zu übertragen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.