Hallo erstmal! Ich habe ein gewaltiges Projekt vor mir: Ich möchte eine Lowcost-CNC-Fräse bauen und programmieren. Weniger, um einen Nutzen daraus zu entnehmen, vielmehr um die Möglichkeiten eines PCs im Zusammenspiel mit einem Mikrocontroller (AVR) zu nutzen und danach ein hoffentlich aus Spaß entstandenes Produkt stolz in den Händen halten zu können. :-) Ich habe mir bereits einen Kreuztisch der Marke Proxxon (Typ KT-70) gekauft. Nun habe ich vor, diesen Kreuztisch auf eine Platte zu montieren, an der ein "Dremel-ähnliches" Multifunktionsgerät über einen Bügel oberhalb des Kreuztisches angeschraubt wird. An die Drehspindeln kommen dann Schrittmotoren. Nun zu meiner 1. Frage: Welches Drehmoment benötigt der Schrittmotor, um eine Spindel zu drehen? -Ich empfinde die dafür benötigte Drehkraft am Kreuztisch nicht ganz ohne. Meine Vorstellung vom Programmieraufwand sieht etwa so aus (Ich bin übrigens Informatiker ;-) ): ! Die Maschine soll vorerst OHNE Tachogeber oder etwaige Sensoren verfügen, um Istwerte auszuwerten ! Der Mikrocontroller dient als "Taktquelle" der einzelnen Schrittmotoren. Bsp: Es soll erstmal reichen ein einfaches "H" mit Outlines zu fräsen. Mehr soll wirklich mal nicht gemacht werden.: Ich bin mir noch nicht sicher, ob ich in Echtzeit die vom Controller geforderten Parameter (die der Controller in diesem Fall während des Fräsvorganges vom PC anfordert) von meinem PC-Programm an ihn senden soll, oder vor dem Fräsvorgang alle Daten über den UART an ihn übermitteln soll (was wohl ziemlich speicherintensiv für den µC sein wird) Ein von mir geschriebenes PC-Programm schickt über den UART an den Mikrocontroller die benötigten Parameter für jeden einzelnen Prozess: - Umdrehungsanzahl des Schrittmotors - Laufrichtung (Taktzyklus) des Schrittmotors - Schrittmotor-ID ("Adresse", welcher Motor ist gemeint?) des Schrittmotors Um detailliert auf die Parameter einzugehen, habe ich vor, eine eigene Skriptsprache für das PC-Programm für den Fräsprozess zu entwickeln, die etwa wie folgt aussieht. (slash = Kommentar) /---------------------------------------------------------------------- TurnOn //Soll den Fräsmotor anwerfen MoveDown //Soll den Fräskopf in Richtung Werkstück bewegen ("oben" oder "unten" soll erstmal reichen) Go ID1 L 500 //bewege den Tisch über den Motor1, mit Drehrichtung "links" um 500 [Maßangabe] . . . usw. GoOffset //Fahre Schlitten über alle Motoren in Ausgangsposition MoveUp //Fräskopf in Ausgangsposition fahren TurnOff //Schalte Fräse aus /---------------------------------------------------------------------- Wie würdet ihr die Datenübertragung zwischen PC und Controller machen? Wie ich vor hätte: Über Echtzeit an den Controller schicken, oder anders? Sorry, falls noch irgendwelche Fragen offen sind die euch noch nicht von mir beantwortet wurden, meldet euch. Es ist so komplex, dass ich mir schwer tue, meine Vorstellungen von "klein an" zu schreiben. Vielen Dank! PS: Es wird garantiert nicht der letzte Thread zum Thema "CNC-Fräse" von mir sein! ;-)
Was ich noch vergessen habe, ich habe die CNC-Fräse für Schrittmotoren ohne Getriebe vorgesehen. Das heißt sie sollten ein hohes Drehmoment besitzen, damit sie aus der vorher stehenden Spindel eine drehende Spindel machen.
Hallo Chris, >Um detailliert auf die Parameter einzugehen, habe ich vor, eine eigene >Skriptsprache für das PC-Programm für den Fräsprozess zu entwickeln, >die etwa wie folgt aussieht. Gibt es doch schon: z. B. ISO oder Heidenhain - solltest Du nicht kompatibel sein, damit Teileprogramme übernommen werden können. Gruss Otto
Auch wenn ich Sinumeric nicht mag: da sind auch viele Teileprogramme vorhanden, Kompatibilität lohnt sich eventuell (Siemens hat ein paar Erweiterungen ggü. ISO eingebaut). Erstmal Schrittmotoren statt Geber macht Sinn, dir (so wie ich deinen Skriptsprachenentwurf verstehe) von vornerein die Möglichkeit zu verbauen, auch diagonal zu fahren, weniger. Darauf würde ich auch die Struktur der Firmware von Anfang an drauf auslegen, lieber als daß ich später den ganzen Code nochmal wegschmeißen kann.
OK Dank erstmal. Seht ihr, wie ich es gesagt habe, habe ich auch das Vergessen zu erwähnen ;) Natürlich habe ich auch berücksichtigt Diagonal-Fahrten zu machen. Ich habe vor, den Winkel durch die länge einer bestimmten Flanke zu bestimmen: _x Punkt y _| _| <-- "Höhe/Länge der Flanke" ergibt den Winkel. _| _| x Offset Was ich da aber wahrscheinlich noch beachten muss ist, dass sich ein Winkel im Prinzip wie ein Hebel verhält. Wenn ich also unten (z.B. am Offset-Punkt) bereits anfange, die Flankenlänge zu bestimmen, hat das unerwünschte Folgen auf Punkt y. Oder denke ich da falsch? Ich habe vor, den Treiberbaustein LS298N zu verwenden. Der hat doch 4 Outputs, das heißt der Summenstrom der 4 Ausgänge darf nicht mehr als 2 A betragen. Der LS298N ist also ein "Verstärker" für den hohen Laststrom der Motoren oder? danke
>Der LS298N ist also ein "Verstärker" für den hohen Laststrom der Motoren >oder? Nicht nur, er fungiert auch als Pegelumsetzer (Logic-Pegel auf Motorspannung). Heißt übrigens L298 (nicht LS) und ist eine H-Brücke, nicht für Schrittmotoren geeignet.
>Natürlich habe ich auch berücksichtigt Diagonal-Fahrten zu >machen. Ich habe vor, den Winkel durch die länge einer bestimmten Flanke >zu bestimmen: Bresenham lässt grüssen...
>nicht für Schrittmotoren geeignet.
Stimmt nicht, man kann zwei Wicklungen damit ansteuern.
Ähm sorry, dann war ich falsch gewickelt. Welchen treiberbaustein gibt es dann für Schrittmotoren die genauso funktionieren??
Also ich kann den L298 dafür verwenden?! Wenn du jetzt JA sagst, wird heute noch eine Bestellung bei reichelt eingehen ;-)
Der L298 in Zusammenarbeit mit dem L296 ist eine etwas "antiquierte" Schrittmotoransteuerung. Der L6203 ist besser.
ok dann kauf ich mir solchen treiber. Wie sieht es mit dem Drehmoment aus von einem solchen Schrittmotor aus? In der angabe steht 0.6 Nm. Das heißt doch, dass 60 gramm bei einem Hebel von 1m Länge Kraft hat. Das heißt doch, dass der motor bei einem 10cm-langen Hebel eine kraft von 600 gramm hat oder? CNChris und MagicProgger deswegen, weil mein Kollege auch mit Mikrocontroller rummacht und ich am FIrmenrechner saß und dummerweise oben im Namen (wegen gespeicherten Cookies) seinen Namen eingetragen hatte ;-) danke
> Ich habe mir bereits einen Kreuztisch der Marke Proxxon (Typ KT-70) > gekauft. Nun habe ich vor, diesen Kreuztisch auf eine Platte zu > montieren, an der ein "Dremel-ähnliches" Multifunktionsgerät über einen > Bügel oberhalb des Kreuztisches angeschraubt wird. An die Drehspindeln > kommen dann Schrittmotoren. Tja, dann wollen wir dir mal deine Illusionen rauben. :-) Ich kenn den KT-70 von Proxxon nicht, habe aber selber den groesseren von Proxxon. (KT-2xx?) Der ist von der mechanischen Stabilitaet gerade so ausreichend. Ich vermute mal das dein Tisch beim fraesen nicht alt wird. Die Qualitaet von Dremel liegt eh schon weit hinter Proxxon, aber auch die kleinen (z.b 100W) Bohrmachinen von Proxxon sind nicht zum fraesen geeignet. Sie haben eine zu hohe Drehzahl und zuwenig Kraft. Proxxon hat dafuer extra den BFW40. Zwischen dem und eine Bohrmaschine liegen WELTEN. Trotzdem wuerde ich damit nicht mehr als 0.5mm Alu und vielleicht 1mm Plexiglas abnehmen. Ich vermute auch das die kleinen Bohrmachinen bei dauerhafte seitlicher Belastung kein Stunde halten. Wenn du nicht auch die Z-Achse fahren kannst dann bringt eine CNC Fraese eigentlich nicht viel. Du solltest dir darueber im klaren sein das der Aufwand den du in die Mechanik stecken musst groesser ist als das bisschen programmieren. Olaf
naja das "bisschen programmieren" wird sich wohl auch auf etwas mehr belaufen ;-) Außerdem verwende ich die Z-Achse, habe ich doch im Programmbeispiel von meiner "Skriptsprache" erwähnt oder? (siehe MoveDown MoveUp). Es gibt nun auch eine Änderung. Ich habe vor, den kleinen Tisch umzutauschen weil ich eine andere Fräsmaschine daheim habe (von meinem Vater). Es handelt sich um eine BFW 36 mit einem "richtigen" Kreuztisch. An die jeweiligen Drehspindeln wird über eine Halterung (anstelle der Spindeln) der Schrittmotor befestigt. Ich habe in erster Linie auch garnicht vor, etwas zu fräsen. Es soll erst mal reichen, einen Buchstaben mit einem eingespannten Bleistift zu malen. Fräsen oder Malen, das ist letztendlich kein großer Unterschied. Gruß
CNChris wrote:
> Habt ihr noch Ideen ??
Schon mal über Fischertechnik nachgedacht?
Warum das, wenn ich eine Proxon-Fräse daheim habe? Ich würde mich vielmehr für gute Schrittmotoren interessieren. Wieviel Drehmoment braucht denn ein Schrittmotor für eine solche auszuführende Drehbewegung? -> Gibt es eine Faustformel zur Berechnung des Drehmoments, wenn der Haltemoment gegeben ist? Die dummen Shops geben immer nur die Haltemomente an und verwechseln diese auch gerne mit dem Drehmoment, siehe Conrad :-/ Danke
Packe in den Controller mehr Intelligenz und übergebe einfach x/y, bzw. gleich x/y/z Koordinaten als Zielpunkt. Vergiß links/rechts drehen. +/- als Vorzeichen reicht völlig. Weiterhin kannst Du entweder Absolut- oder Relativkoordinaten übergeben. Definiere einen Nullpunkt am Frästisch, der irgendwann angetastet werden kann.
Hi Schau mal hier: http://burger-web.com/ProductDescription/AKKON_Desk/en_DescAKKON_USB.htm.en Auch ein Konzept mit Mikrocontroller und Schrittmotoren. Grüsse Martin
OK danke erstmal. Welche Motoren würden sich denn nun dafür eignen?? Ich weiß nicht, wie kräftig solche motoren sind, drum kann ich nicht abschätzen, welches Drehmoment er haben sollte...
Bei dem kleinen Kreuztisch, den du steuern möchtest müssten Motoren mit ca. 1-1.5A ausreichen. Zu finden in Drucker:) Als Schrittmototreiber wäre dann eine Kombination L297 mit L298 denkbar. Es gibt aber auch schon integrierte Chips, die das gleiche können. L6203 wäre für Deinen Fall schon überdimensioniert, funktiniere würde er aber auch. Schau dir doch auch mal den IMT901 an.
Also ich hab bei meiner Fräse (Portalfräse) für die Steuerung der X- und Y- Achse Schrittmotoren mit 5V, 1,4A, Z-Achse 5V 1,1A. Als Spindeln kommen Kugelumlaufspindeln mit 5mm Steigung zum Einsatz. Fahrweg: 1080x840x170mm Fahrgeschwindigkeit max. 3700mm/min (mehr erlaubt die Software nicht) Beim Fahren mit Fräsgeschwindigkeit (unter 500mm/min) kann man sich gegen das Portal stemmen und wird am Laminatboden weggeschoben. Nur soviel zur Kraft von Schrittmotoren. Viel Erfolg, Christian
Guck mal nach dem "Handbuch für Kleinantriebe" (oder so ähnlich - ich komme aus dem Firmennetz nicht an Amazon ran). Darin sind alle Sorten Motoren gut beschrieben; auch mit notwendigen Kenndaten.
Ok. Ich habe nun einen schrittmotor mit 0.6 A gekauft. Ich finde er hat ein ganz gutes Drehmoment. Nun zu einer weiteren Frage: Er hat 4 Leitungen, A u. A-NICHT, B und B-NICHT. Heißt das, dass er zwei Spulen oder 4 Spulen hat? In der Abbildung sind nur 2 Spulen eingezeichnet. Außerdem hat er einen Step-Winkel von 1,8 °. DAs heißt du, wenn er die wie oben genannten eingänge hat, muss ich so rechnen: Wie oft ich nun nacheinander die 4 Eingänge takten muss, damit er sich 360° dreht: (360° / 1,8°) / Anzahl der Spulen ; Sobald der mikrocontroller den Treiber-IC (L293-D) nicht mehr taktet, sprich der motor still steht, entsteht ein großer Strom an der Versorgung des Schrittmotors und der Treiber-IC erwärmt sich. Woran liegt das?? Muss man Vs und Vss (Logic Supply und Power Supply) am IC mit einander verbinden?? DAnke
umso langsamer der schrittmotor dreht, desto höher wird der strom. Warum??
sry ElektroMotorische Kraft ;-) Jetzt ists mir wieder eingefallen. Könntet ihr mal auf meine Berechnung eingehen von einer exakten 360° Umdrehung?
Spar die die Arbeit http://www.nc-step.de/ Ich habe auch so ein Teil, allerdings schon älteren Semesters. proxxon komplett umgebaut mit KT150 und BF40
Hallo, ich habe mich vor kurzem auch damit beschäftigt mir eine cnc-fräse selber zu bauen und einige möglichkeiten durchdacht damit es nicht zu teuer wird. deshalb will ich mal einige überlegungen zu den thread schreiben. 1.) bei der auswahl der schrittmotoren sollte auch berücksichtigt werden das nicht nur der kreuztisch bewegt werden muss, also dessen "tragheit" (drehmoment) überwunden werden muss, sondern auch beim fräsen kräfte auftreten welche überwunden werden müssen. diese sind auch bei einer "kleinen" anlage nicht unerheblich. 2.) wird es bei der vorgeschlagenen lösung mit dem kreuztisch zu ungenauigkeiten bei der positionierung kommen, besonders wenn man den tisch in eine richtung steuert und dann wieder zurück. denn gerade bei der umkehr der bewegungsrichtung gibt es ein gewisses spiel in der spindel 3.) ! Die Maschine soll vorerst OHNE Tachogeber oder etwaige Sensoren verfügen, um Istwerte auszuwerten ! für eine x und y sollte man schon zwei schalter einplanen und einen referenzpunkt "anfahren" zu können. besser noch zusätzlich ein paar endschalter, um bei einer "fehlprogrammierung" den zulässigen verfahrweg nicht zu überschreiten. 4.) an das gerät welches den fräser antreibt werden ebenfalls einige anforderungen gestellt, desonders im bezug auf die "aufnahme" von kräften in querrichtung (also seitwerts) - sollte auch beachtet werden ! 5.) die verrausforderung einer solchen fräse ist also eher die mechanik als die elektronik. natürlich wirst du mich der von dir erdachten kostruktion ein "H" fräsen können. aber bezüglich der genauigkeit vermute ich mal das das nich so besonders sein wird. vieleicht kommt man auf +/- 1 mm.
Also. um mal etwas klarzustellen: ich habe nicht die Absicht, mit meiner CNC-Fräse einen gewissen Nutzen rauszuschlagen, sondern einfach nur aus Spaß ein Gerät aufbauen, was annähernd so genau usw. ist wie eine "richtige" CNC-Fräse. Außerdem zum Schrittmotor. Ich habe am Amperemeter mich vertan: der Motor zieht im Stand nicht 60 mA sondern etwa 1.4 A! @Sven: 1.) Das ist klar. Ich habe vorher ja nach dem Drehmoment des Motors geforscht. 2.) Dieses Spiel / Ungenauigkeit kann man einstellen. 3.) Richtig, sie soll erstmal ohne etwaige Tachogeber ausgestattet werden. Eine genaue Anfahrung hängt von der Berechnung des Drehwinkels des Schrittmotors ab...Ansonsten muss ich wohl doch einen Tachogeber anwenden. 4.) Ich denke, das hat bereits Proxxon für mich gemacht ;) 5.) Man kommt auf mehr als 1 mm. wenn ein Step des Motors 1,8 ° beträgt. Eine Umdrehung (360 °) am Kreuztisch von Proxxon ist 1 mm Kreuztisch-Schub! Jetzt kannst du dir die Genauigkeit ausrechnen. 360 / 1,8 = Genauigkeit PRO MILLIMETER! Gruß
>Eine genaue Anfahrung hängt von der Berechnung des Drehwinkels >des Schrittmotors ab... Das kannst Du gleich vergessen. Stell Dir vor, Dein Schrittmotor rutscht nur bei einem Schritt durch...
>Also: ist das jetzt normal, dass der motor etwa 1 A im Stand zieht?
Stichwort: EMK (hatten wir schon).
ok danke erstmal. Sooo. Ich schreibe gerade eine PC-Oberfläche für meine Steuerung. Diese soll nun die befehle die vom Benutzer per "skript" eingegeben werden, gewandelt. Nun sollen über den UART verschiedene Daten an den Mikrocontroller gesandt werden. Dafür habe ich schon ein kleines Programm am controller geschrieben, allerdings empfängt das dummerweise immer nur 1 Zeichen (was ja auch klar ist). Nur: Habt ihr eine Funktion, mit der ich einen ganzen string empfangen kann, bis beispielsweise ein "x" kommt, was bedeutet, dass nun das Senden von Datum1 fertig ist und nun Datum2 kommt usw.? Danke
Eigentlich sollte der Motorstrom in einem Schrittmotor drehzahlunabhängig konstant bleibn, dass ist doch der Sinn von Schrittmotortriebern. @jack: Der Motor wird kaum nur einen Schritt verlieren, wenn dann sind es soviele, dass man es sofort merkt, kommt aber eigentlich nur bei einer schlecht eingestellten Anlage vor. Auch professionelle Systeme auf Schrittmotorbasis arbeiten ohne Wegsensoren. Viele Grüsse, Christian
>Auch professionelle Systeme auf Schrittmotorbasis arbeiten ohne >Wegsensoren. Welche professionellen Systeme? Selbst die LPKF-Platinenfräse in unserer FH hatte noch Inkremtalgeber, die über Zahnriemen angesteuert wurden. >Der Motor wird kaum nur einen Schritt verlieren, wenn dann sind es >soviele, dass man es sofort merkt, hier mal einen. da mal einen ... irgendwann merkt man es dann auch (beim "fertigen" Produkt) Im Notfall gibt es auch noch Schrittmotoren mit angeflanschtem Inkrementalgeber. Mit einem externen Wegmeßsystem hat man auch die Möglichkeit, das Spindelspiel auszumessen...
Also ich hatte bei meiner Fräse im Fräsbetrieb noch nie einen Schrittverlust, selbst wenn ich mit 6mm Fräsern in Alu arbeite und alles unter 3mm Fräsern reißt die Maschine locker ab, bevor ein Schritt verschwindet. Motoren: 1,4A 5V direkt auf Kugelumlaufspindeln mit 5mm Steigung geflanscht Mit professionellen Systemen meinte ich zB.: Step Four die bauten vor der Einführung von Ihren Anlagen mit Servomotoren alles mit Schrittmotoren ohne Wegmessung und beliefern auch die Industrie mit ihren Anlagen. Die Servomotoren wurden in erster Linie zur Steigerung der Fahrgeschwindigkeit eingesetzt, heute kann man sich das Motorsystem aussuchen, mit dem die Anlage bestckt sein soll. Viele Grüsse, Christian
Hallo Leute! :-) Heute habe ich mal begonnen, das C-Programm für den Mikrocontroller zu schreiben. Wäre nett, wenn ihr mal drüber schauen könntet, ob das nach meinen oben genannten Vorstellungen funktionieren würde. Zur Info: Der Mikrocontroller empfängt nach jedem Arbeitsschritt in Echtzeit die Bytes vom PC. Das heißt, ich schicke ihm nacheinander die Bytes, die er in eine Variable speichert, die wiederum die Funktion "go" parametrisiert. Hier der Code: #include <avr/io.h> #include <util/delay.h> #define DREHUNG 50 char ReceiveUART(void) { char tempVar; for(;;) { while (!(UCSRA & (1<<RXC))) { tempVar = UDR; return tempVar; } } } int goCNC (int Anzahl, char Adresse, char Richtung) { int i=0; int y=0; for(; i<=Anzahl;i++) { if (Adresse == 0) //frägt: Welcher Mtor soll laufen?! { if (Richtung == 0) { for(y=0;y<=DREHUNG;y++) { //Zyklus für Motor0/Richtung0 } } if (Richtung == 1) { for(y=0;y<=DREHUNG;y++) { //Zyklus für Motor0/Richtung1 } } } if (Adresse == 1) { if (Richtung == 0) { for(y=0;y<=DREHUNG;y++) { //Zyklus für Motor1/Richtung0 } } if (Richtung == 1) { for(y=0;y<=DREHUNG;y++) { //Zyklus für Motor1/Richtung1 } } } if (Adresse == 2) { if (Richtung == 0) { for(y=0;y<=DREHUNG;y++) { //Zyklus für Motor2/Richtung0 } } if (Richtung == 1) { for(y=0;y<=DREHUNG;y++) { //Zyklus für Motor2/Richtung1 } } } } } int main (void) { char aiParameter[3] ; int i=0; for(;i<=3;i++) { aiParameter[i] = ReceiveUART(); //schreibt die empfangenen Bytes in eine Array } goCNC(aiParameter[0],aiParameter[1],aiParameter[2]); } Würde der UART-Empfang so funktionieren? (Warte bis was kommt, dann schreibe es in die Array "aiParameter") Fehlen würde jetzt noch das anfangs erwähnte "Polling", ob das Board an den Computer angeschlossen ist. (Controller schickt irgendwas ständig über die Leitung, bis PC ein "Stop, warte von nun an auf Daten vom PC" schickt). Außerdem würde noch eine return-Anweisung in der goCNC fehlen, damit der PC weiß "jetzt ist der letzte goCNC-Zyklus abgeschlossen, schicke jetzt neue Daten". Vielen Dank!
uppps, es muss natürlich noch die initalisierung des UARTs in die main rein. UCSRB |= (1<<RXEN); //Empfangen aktivieren UCSRC |= (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1); UBRRH = 00; //Baudrate einstellen 9600 bei 8 MHz UBRRL = 51; ;-) Danke
Hier mal das letzte "Update": #include <avr/io.h> #include <util/delay.h> #define DREHUNG 50 char globalReceiveEnable=0; unsigned char ReceiveUART(void) { unsigned char tempVar; for(;;) { while (!(UCSRA & (1<<RXC))) { tempVar = UDR; return tempVar; } } } int goCNC (unsigned char Anzahl,unsigned char Adresse,unsigned char Richtung) { int i=0; int y=0; for(; i<=Anzahl;i++) { if (Adresse == 0) //frägt: Welcher Mtor soll laufen?! { if (Richtung == 0) { for(y=0;y<=DREHUNG;y++) { //Zyklus für Motor0/Richtung0 } } if (Richtung == 1) { for(y=0;y<=DREHUNG;y++) { //Zyklus für Motor0/Richtung1 } } } if (Adresse == 1) { if (Richtung == 0) { for(y=0;y<=DREHUNG;y++) { //Zyklus für Motor1/Richtung0 } } if (Richtung == 1) { for(y=0;y<=DREHUNG;y++) { //Zyklus für Motor1/Richtung1 } } } if (Adresse == 2) { if (Richtung == 0) { for(y=0;y<=DREHUNG;y++) { //Zyklus für Motor2/Richtung0 } } if (Richtung == 1) { for(y=0;y<=DREHUNG;y++) { //Zyklus für Motor2/Richtung1 globalReceiveEnable=1; } } } } } int main (void) { char aiParameter[3] ; int i=0; UCSRB |= (1<<RXEN); //Empfangen aktivieren UCSRC |= (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1); UBRRH = 00; //Baudrate einstellen 9600 bei 8 MHz UBRRL = 51; for(;i<=3;i++) { aiParameter[i] = ReceiveUART(); //schreibt die empfangenen Bytes in eine Array } goCNC(aiParameter[0],aiParameter[1],aiParameter[2]); for(;;) { if (globalReceiveEnable != 0) { UCSRB &= ~(1<<RXEN); } else { UCSRB |= (1<<RXEN); } } }
Hallo, deine Variante finde ich vom Aufbau sehr unübersichtlich und auch nicht gerade leicht änderbar. Hier mal eine sehr einfache andere Variante. Beitrag "Auswertung RS232-Befehle" Du solltest Dir zur Sicherheit ein Protokoll ausdenken. Gruß, Dirk
Ein Vorteil waere die Anpassbarkeit der Befehle und es wird ein FIFO benutzt.
CNChris, bist du eigentlich selbst-ernannter Informatiker oder was? Allein das hier, hört sich nicht sehr nach Informatiker an: > Habt ihr eine Funktion, mit der ich einen ganzen string empfangen kann, > bis beispielsweise ein "x" kommt, was bedeutet, dass nun das Senden von > Datum1 fertig ist und nun Datum2 kommt usw.?
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.