Hallo Zusammen, ich brauche mal Ihre Hilfe, wie mache ich mit CAN-BUS- weiter. Welche Hardware brauche ich noch. sehen Sie das Bild. Danke im Voraus
Wahrscheinlich liegt es an meinen Augen, aber wo soll bei dem Konzept der CAN Bus eingebeaut werden (sein)?
Heinzel schrieb: > Wahrscheinlich liegt es an meinen Augen, aber wo soll bei dem > Konzept > der CAN Bus eingebeaut werden (sein)? also die Aufgabe ist Übertragung der Steuerbefehle und Rückmeldung per CAN-BUS: o Getriebesteuergerät empfängt Steuerbefehle und sendet Status als Rückmeldung o Senden der Steuerbefehle und Empfangen der Rückmeldung mit Hilfe eines zweiten Arduinos (simuliert das Fahrzeugsteuergerät). ich wollte mit Ihre Hilfe ein CAN BUS ausbauen.
CAN-Bus shield auf den Arduino stecken, dazu ein paar Beispiele anschauen und umsetzen. Da es ja eine Aufgabe ist, kannst Du sicherlich den Betreuer fragen, wenn du nicht weiterkommst. Er hat bestimmt Tipps auf Lager.
Die Bus Struktur eines CAN Busses bedingt entsprechende Treiberbausteine. Für den Arduino gibt es komplette Shields für den CAN Bus als auch seperate SPI - Can Module die man nutzen könnte. Für 2 Busteilnehmer werden nätürlich 2 Treiber Shields Interfaces benötigt. Die Anbieter der Module haben auch schon oft ne Lib im Download um die ersten Schritte zu machen.
CC schrieb: > CAN-Bus shield auf den Arduino stecken, dazu ein paar Beispiele > anschauen und umsetzen. Da es ja eine Aufgabe ist, kannst Du sicherlich > den Betreuer fragen, wenn du nicht weiterkommst. Er hat bestimmt Tipps > auf Lager. er möchte zuerst das Konzept komplett mit CAN-Interface sehen. dann die Bauteile bestellen lassen. gibt es mehrere Variante von CAN-BUS Schilds. Wie geht es dann mit dem zweiten Arduino weiter. es sollte MATLAB verwendet werden.
MATLAB bin ich eher raus. Aber grundsätzlich vieleicht prüfen, welche Ansprache der Module einem eher liegt oder von MATLAB spezifisch unterstützt wird. Entsprechende Module auswählen. Prüfen, ob MATLAB "nur" als HMI dienen soll oder auch einen Sketch in das 2. System flashen kann.
Haitham A. schrieb: > Übertragung der Steuerbefehle und Rückmeldung per CAN-BUS: > o Getriebesteuergerät empfängt Steuerbefehle und sendet Status > als Rückmeldung > o Senden der Steuerbefehle und Empfangen der Rückmeldung mit Hilfe > eines zweiten Arduinos (simuliert das Fahrzeugsteuergerät). Dein Mega2560 hat keine Hardware-Unterstützung für das CAN-Busprotokoll. Dazu brauchst du also einen CAN-Protokoll-IC. Und zur Anbindung dieses IC an die CAN-Buskabel (CANH, CANL, Masse) noch einen CAN-Transceiver. Ziemlich üblich im Arduino-Bereich ist die MCP2515/TJA1050-Kombo, entweder als Modul oder als "Shield". Der Arduino kommuniziert mit dem MCP2515 über SPI(MOSI/MISO/SCK/CS)/INT/Masse und evtl. RST, der MCP2515 mit dem TJA1050 über TXCAN/RXCAN/Masse. Dito "rückwärts" für den zweiten Arduino der für das Steuergerät steht. Und an beiden Enden des CAN-Bus je einen 120Ω-Abschlusswiderstand nicht vergessen. Aber vielleicht ist das auch schon zu viel Detail fürs "Konzept". LG, Sebastian
:
Bearbeitet durch User
Ich habe diesen Arduino gewählt, weil der Matlab unterstützt. haben Sie vielleicht anderen Vorschlag ?
hilft das ? https://www.seeedstudio.com/blog/2019/11/27/introduction-to-can-bus-and-how-to-use-it-with-arduino/
Beitrag #6581554 wurde von einem Moderator gelöscht.
Haitham A. schrieb: > Ich habe diesen Arduino gewählt, weil der Matlab unterstützt. haben Sie > vielleicht anderen Vorschlag ? Haitham A. schrieb: > kannst du mir ein Beispiel aus dem Internet geben. Ob Mega2560, Uno, Nano oder Pro Mini ist eher Geschmackssage, jeder davon wird laut https://de.mathworks.com/hardware-support/arduino-matlab.html unterstützt. Bei Mega2560 und Uno passen die "Shields", aber die stinknormalen MCP2515-Module (was weiss ich, z.B. https://www.amazon.de/dp/B081W7BPB2) benutzen dieselben Datenleitungen zur Kommunikation mit dem Arduino wie die "Shields", und sollten also wohl auch von Matlab unterstützt werden (hab ich aber nicht probiert), brauchen dann aber eben noch einige Kabelverbindungen anstatt des "Shield"-Stecksystems. Für den Pro Mini würde man dann noch einen USB-zu-Seriell-Wandler brauchen (der ist Nano/Uno/Mega2560 schon an Bord), dafür ist der Pro Mini die kleinste Lösung. Wie hast du dir denn die H-Brücke vorgestellt? Auch als "Shield"? LG, Sebastian
:
Bearbeitet durch User
hallo, Nimm den Arduino DUE, der hat einen CAN eingebaut und die Beispiele sollten sofort funktionieren. Mit einer Diode und einigen Verbindungs- leitung, kann man bei kurzem Abstand den Treiber (von Tisch zu Tisch bei einer Laborübung) einsparen. PS Der Arduino DUE ist ein Arm Prozessor und mit der mit der Arduino IDE programmierbar.
max123 schrieb: > Nimm den Arduino DUE, der hat einen CAN eingebaut und die Beispiele > sollten sofort funktionieren. Max, auf der MATLAB-Seite steht für den Due: "DAC and CAN channel not supported." Dann hat er den Due und braucht dennoch noch einen MCP2515 ... LG, Sebastian
Herr Sebastian, könnten Sie bitte mein Datei öffnen und mir sagen ob ich so richtig gemacht habe? Danke.
Haitham A. schrieb: > könnten Sie bitte mein Datei öffnen und mir sagen ob ich so richtig > gemacht habe? Also ich sehe im Konzept noch ein, zwei Fehler. * Der Servo wird im Konzept vom Arduino mit Strom versorgt. Der Blockierstrom des Servos könnte oberhalb der Leistung des 5V-Reglers auf dem Arduino liegen - Datenblatt prüfen. * Die CAN-Busleitung besteht nur aus CANH und CANL, also ohne Massereferenz. Das kann gut gehen, muss aber nicht. Im Gegensatz zu Ethernet haben die CAN-Transceiver keine Übertrager zur Potentialtrennung eingebaut, und die Gleichspannungsebene darf darum nur einen bestimmten Betrag abweichen. Steht im TJA1050-Datenblatt. Ausserdem soll das Konzept ja die Situation im KFZ nachbilden, und dort ist die Massereferenz überall gegeben. Also noch eine Masseleitung neben CANH und CANL, wie oben schon vorgeschlagen. * Soll der Motor auch rückwärts drehen? Die Leitung zum Motor ist fest mit + und GND bezeichnet, als wäre nur eine Drehrichtung möglich. Der Witz einer H-Brücke ist ja aber die Umpolbarkeit! Also entweder es reicht ein simpler Transistor, oder die Bezeichnung ist widersinnig. Soweit erst mal. LG, Sebastian
Ach, und die vielen Netzteile mit ihren jeweiligen Massepotentialen machen mich etwas nervös. Da könnte aber vielleicht jemand was zu sagen der sich in der Materie besser auskennt. LG, Sebastian
> * Der Servo wird im Konzept vom Arduino mit Strom versorgt. Der > Blockierstrom des Servos könnte oberhalb der Leistung des 5V-Reglers auf > dem Arduino liegen - Datenblatt prüfen. das ist Richtig. soll ich den Servomotor mit externe Versorgungsspannung anschließen? oder was schlagen Sie vor. > * Die CAN-Busleitung besteht nur aus CANH und CANL, also ohne > Massereferenz. Das kann gut gehen, muss aber nicht. Im Gegensatz zu > Ethernet haben die CAN-Transceiver keine Übertrager zur > Potentialtrennung eingebaut, und die Gleichspannungsebene darf darum nur > einen bestimmten Betrag abweichen. Steht im TJA1050-Datenblatt. ich habe hier Sie nicht verstanden, aber ich schaue mal nach? > Ausserdem soll das Konzept ja die Situation im KFZ nachbilden, und dort > ist die Massereferenz überall gegeben. Also noch eine Masseleitung neben > CANH und CANL, wie oben schon vorgeschlagen. in Youtube habe ich keine Massereferenz neben CANH und CANL gesehen. > * Soll der Motor auch rückwärts drehen? Die Leitung zum Motor ist fest > mit + und GND bezeichnet, als wäre nur eine Drehrichtung möglich. Der > Witz einer H-Brücke ist ja aber die Umpolbarkeit! Also entweder es > reicht ein simpler Transistor, oder die Bezeichnung ist widersinnig. ja, der Motor soll in beide Richtungen drehen. was ist falsch? > > Soweit erst mal. > vielen DANK. > LG, Sebastian
Herr Sebastian im Anhang ist ein Foto und hier einen Link von Youtube, es gibt kein Massenreferenz zwischen CANH und CANL. https://www.youtube.com/watch?v=3GmVrIWT3Bo
Haitham A. schrieb: > im Anhang ist ein Foto und hier einen Link von Youtube, es gibt kein > Massenreferenz zwischen CANH und CANL. Ja, es wird auch ohne gehen. [Aber Youtube ist da nicht autoritativ, sondern die Datenblätter der Komponenten. Und das des TJA1050 sagt uns a) dass CANH und CANL nicht mehr als +33V über und nicht weniger als -27V unter der lokalen Masse liegen dürfen, aber dann auch b) dass lokal CANH und CANB jeweils über 25kOhm auf das lokale VCC/2-Potential gezogen werden, und das sollte Potentialunterschiede zur Gegenstelle im erlaubten Bereich halten.] LG, Sebastian
Haitham A. schrieb: > ja, der Motor soll in beide Richtungen drehen. was ist falsch? Die Leitungen zum Motor sind rot und schwarz und mit Plus-Pol und Masse beschriftet. Aber wenn der Motor rückwärts dreht ist Masse an dem Anschluss wo vorher Plus war, und Plus ist dort wo vorher Masse war. Das funktioniert, aber die Beschriftung stimmt dann nicht mehr ... LG, Sebastian
Haitham A. schrieb: > das ist Richtig. soll ich den Servomotor mit externe Versorgungsspannung > anschließen? oder was schlagen Sie vor. Entweder noch ein Netzteil, oder mit einen geeigneten DC/DC-Buckwandler aus den 12V 5V machen? LG, Sebastian
Sebastian schrieb: > Entweder noch ein Netzteil, oder mit einen geeigneten DC/DC-Buckwandler > aus den 12V 5V machen? ist so besser ? ich habe im Internet gelesen unter https://antwortenhier.me/q/wie-viel-strom-kann-ich-aus-den-stiften-des-arduino-ziehen-59828797044#:~:text=Laut%20Datenblatt%20kann%20dieser%20Pin,3%2DV%2DVersorgung%20bereitstellen. Der 5-V-Ausgangspin ist für ~ 400 mA an USB und ~ 900 mA bei Verwendung eines externen Netzteils geeignet was sagen Sie dazu ?
Haitham A. schrieb: > ist so besser ? Es wird. Immerhin sind Motor und Servo nun festgelegt. Haitham A. schrieb: > ich habe im Internet gelesen unter > https://antwortenhier.me/q/wie-viel-strom-kann-ich-aus-den-stiften-des-arduino-ziehen-59828797044#:~:text=Laut%20Datenblatt%20kann%20dieser%20Pin,3%2DV%2DVersorgung%20bereitstellen. > Der 5-V-Ausgangspin ist für ~ 400 mA an USB und ~ 900 mA bei Verwendung > eines externen Netzteils geeignet Ein Linearregler verwandelt für einen gewissen Stromfluss die Spannungsdifferenz zwischen Eingang und Ausgang in Wärme. Siehe zum Beispiel Beitrag "Re: Schaltplan für Pflanzenprojekt": Der Regler wird bei 1,2 Watt Abwärme am Gehäuse 70°C warm, im Inneren 85°C. Der Artikel "im Internet" sagt nun auch: "900 mA ist für einen Adapter, der ~ 7V liefert. Mit zunehmender Adapterspannung steigt auch die Wärmemenge, mit der der Regler umgehen muss, sodass der maximale Strom mit zunehmender Spannung abfällt. Dies wird als thermische Begrenzung bezeichnet." Eine längere Belastung des 5V-Ausgangs mit 600mA (z.B Servo mehrmals hin- und her) wird bei 12V Eingangsspannung wohl den Linearregler des Arduino Mega 2560 in die thermische Abschaltung bringen (und dabei dem Mikrocontroller natürlich auch den Strom kappen). Immerhin muss der Linearregler dann über 4 Watt ((12V-5V)*0,6A) an Abwärme abführen! Und ich kann nur wiederholen, im Internet steht vieles, autoritativ sind die Datenblätter der Komponenten. Ich würde die 5V-Versorgung des Servo stattdessen über ein Buck-Modul aus den 12V erzeugen (die kleinen sollten ausreichen). Haitham A. schrieb: > was sagen Sie dazu ? Die Pin-Nummern des Konzepts beziehen sich anscheinend auf die Pins des Atmega2560. Vielleicht sollte dazu auch noch die Arduino-Pinnummerierung genannt werden. So ist der Pin 1 im Konzept auf dem Arduino Mega 2560 mit D4 bezeichnet, und der Pin 6 mit D2, Pin 36 entspricht D48,Pin 37 D47 und Pin 38 D46. Für die Kommunikation mit dem MCP2515-Modul müssen zwingend die SPI-Pins (MOSI, MISO, SCK) verwendet werden. Im Konzept werden diese als Pin 24 (MOSI), Pin 25 (MISO) und Pin 26 (SCK) bezeichnet. Dies sind aber nicht die korrekten SPI-Pins des Atmega2560, diese sind Pin 21 (MOSI), Pin 22 (MISO) und Pin 20 (SCK), und diese Pins finden sich auf dem Arduino Mega 2560 bezeichnet als D51 (MOSI, Pin 21), D50 (MISO, Pin 22) und D52 (SCK, Pin 20). Für CS nimmt man gemeinhin D53 (SS, Pin 19). Und wie gesagt, ich bin inzwischen der Auffassung, dass der zweite Arduino ruhig an einem separaten Netzteil betrieben werden kann, so dass man einen längeren CAN-Bus testen kann. LG, Sebastian
:
Bearbeitet durch User
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.