CNC-Graviermaschine mit Zusatz Arduino kommunizieren lassen

Hallo Leute,

ich habe eine CNC-Graviermaschine in Gebrauch. Jetzt möchte ich einen weiteren Schritt gehen und einen zusätzlichen Arduino zuschalten.
Die CNC-Graviermaschine soll z.B. nach Ablauf des Programmcodes ein Signal an den Zusatz-Arduino senden und dort einen weiteren Prozess in Gang setzen.

Hat das schon einmal jemand gemacht? Wie kann ich die Kommunikation zwischen CNC-Arduino und Arduino herstellen und die Daten der Graviermaschine weiter verwenden?

Grüße
Baril

Baril:
ich habe eine CNC-Graviermaschine in Gebrauch.

Glückwunsch...

...Wie kann ich die Kommunikation zwischen CNC-Arduino und Arduino herstellen und die Daten der Graviermaschine weiter verwenden?

Wie sollen wir das wissen, wenn wir deinen CNC-Graviermaschine nicht kennen.

Also ein paar mehr Informationen brauchen wir schon.

Datenblatt der Maschine und wenn möglich den Sketch dieser Maschine.

Hallo,

und danke für die schnelle Antwort.

Die CNC-Graviermaschine ist eine T8. Die Steuerung der Maschine läuft über einen Arduino Clon mit aufgesetztem CNC-Shield.

http://www.homofaciens.de/technics-machines-cnc-T8_ge.htm

Kann ich die Schnittstellen TX/RX des CNC-Shields benutzen um die gewünschten Daten zu bekommen und diese einfach mit dem anderen Arduino über Kreuz verbinden?

Grüße
Baril

Baril:
Kann ich die Schnittstellen TX/RX des CNC-Shields benutzen um die gewünschten Daten zu bekommen und diese einfach mit dem anderen Arduino über Kreuz verbinden?

das geht nur solange du nichts weiter an RX und TX angeschlossen hast und der Arduino nicht programmiert wird.

Sobald irgend etwas über die serielle läuft, geht das nicht.
Das kann man nur im Code bzw. an der Hardware erkennen.

Im Moment übertrage ich den G-Code vom PC per USB an den CNC-Arduino. Somit sind die RX/TX vom CNC-Shield frei. Wenn ich jetzt dort den anderen Arduino anschließe müsste ich doch auf die Daten der CNC zugreifen können.

Ich möchte eine Verbindung herstellen mit der ich bei zum Beispiel dem Endbefehl M5 Spindel aus ein Signal bekomme und ein weiteres Programm auf dem anderen Arduino somit startet.

Welche Daten kann ich dort lesen?

Baril:
Im Moment übertrage ich den G-Code vom PC per USB an den CNC-Arduino. Somit sind die RX/TX vom CNC-Shield frei. Wenn ich jetzt dort den anderen Arduino anschließe müsste ich doch auf die Daten der CNC zugreifen können.

Beim Übertragen per USB werden auch RX und TX verwendet. Dazu befindet sich ein USB-Serialwandler auf dem Uno.

Ich möchte eine Verbindung herstellen mit der ich bei zum Beispiel dem Endbefehl M5 Spindel aus ein Signal bekomme und ein weiteres Programm auf dem anderen Arduino somit startet.

Welche Daten kann ich dort lesen?

Das kann ich nicht sagen, dazu benötigt man den Sketch, der auf dem Arduino drauf ist.
Das muss sicher darin programmiert werden.

Hmmm ok gut. Irgend eine andere Idee um das Problem zu lösen?

Ich könnte auch über die Positionsdaten das Signal auslösen d.h. wenn die CNC z.B. wieder in die Ausgangsstellung fährt und auf Null Position ist. Aber wie bekomme ich die Positionsdaten auf den anderen Arduino übertragen?

Wie muss die Schaltung dazu aufgebaut werden?

Baril:
Hmmm ok gut. Irgend eine andere Idee um das Problem zu lösen?

Ich könnte auch über die Positionsdaten das Signal auslösen d.h. wenn die CNC z.B. wieder in die Ausgangsstellung fährt und auf Null Position ist. Aber wie bekomme ich die Positionsdaten auf den anderen Arduino übertragen?

Wie muss die Schaltung dazu aufgebaut werden?

Wenn du von Daten sprichst, meinst du sicher wieder Informationen aus dem CNC-Controller zum Arduino.
Das geht nur über die schon beschriebene Schnittstelle und angepasster Software.

Eine Möglichkeit ist die Endposition per "Schalter" dem Arduino mitzuteilen.
Ob das so reicht und möglich ist, musst du entscheiden.

Hallo nochmal,

ich habe jetzt eine andere Idee...

Ich will das Signal vom Pin A3 enable coolant auswerten. Nachdem dort immer ein AN/Aus Signal gegeben wird.
Das müsste doch gehen wenn ich A3 auslese mit dem anderen Arduino d.h. Verbindung A3 mit Eingangspin neuer Arduino und GND sowie 5V. Danach sollte der Zusatzarduino folgendes Abfragen...

int inPin = 3;              // Input pin für Arduino
int reading;               // Wert des Eingangs
int previous = LOW;    // Vorheiger Wert des Eingangs

// folgende Variablen müssen vom Typo unsigned long sein da millis() disen Variablentyp liefert.

unsigned long time = 0;         // letzter Zeitwert bei dem der Ausgangzustand wechselte.
unsigned long debounce = 200;   // Entprellzeit

void setup()
{
 pinMode(inPin, INPUT);
 pinMode(outPin, OUTPUT);
}

void loop()
{
 reading = digitalRead(inPin);

                   // Beim Wechsel des Eingangs von LOW zu HIGH und nach der Entprellzeit: 
 if (reading == HIGH && previous == LOW && millis() - time > debounce) {
   time = millis();    
   Tue irgendwas
   }

                   // Beim Wechsel des Eingangs von HIGH zu LOW und nach der Entprellzeit:
 if (reading == LOW && previous == HIGH && millis() - time > debounce) {
   time = millis();    
   Tue irgendwas anderes
   }
 previous = reading;
}

Bin ich da richtig unterwegs oder würdet ihr das anders machen?

Grüße
Baril