Hallo, möchte mit C einen kleinen Roboter programmieren der frei herumfährt; hat jemand ein fertiges Programm oder kann mir jemand helfen: 1. Ausgangs Port (Motor) für 2 Sekunden setzen, wie lautet die Anweisung? 2. Wie kann ich 2 Signal(eingänge) einlesen mit Abbruchbedingung? MfG
Nachdem du in C anscheinend nicht sehr fit bist würde ich dir raten zuerst mal das AVR-GCC-Tutorial durchzuarbeiten (auf dieser Seite links oben), dann haben sich einige Fragen von ganz alleine gelöst, beim Rest wird dir gerne geholfen.
Hi, also zuerst denke ich solltest du den Leuten hier mittelen mit welchem µC du das ganze vor hast und eventuell welches Board, Entwicklungsumgebung etc. Für die 2 Sekunden benötigst du einen Timer oder zum Anfang einfacher eine delay Funktion (wait) wie z.B. static void delay(void ) { volatile int i,j; for (i=0;i<500;i++) for (j=0;j<1000;j++); } zu deiner Frage 1: Ausgangs Port (Motor) einen PIN als OUTPUT definieren .. doch du solltest dir dann im Datenblatt ensprechend anschauen wieviel Spannung und Strom dann am PIN anliegen und ob das vür den Eingang des Motors den du verwändest reicht oder du noch zusätzlich eine Schaltung mit entsprechender Strom/Spannungsversorgung brauchst zu Frage 2: Wie kann ich 2 Signal(eingänge) einlesen mit Abbruchbedingung? Ebenfalls mit PINS die als Eingang definiert sind. Das einlesen kannst dann eventuell ebenfalls einfach tun mit //warten sollange Eingang nicht gesetzt while(INPUT1 == 0){} ... oder mit einem Externen Interrupt
Also, vor hab ich das mit einem ATmega8 µC auf einem Anfänger MyAVR-Board. Entwicklungsumgebung ist AVR Studio 4.12. Soll also ein Roboter (wie so ein Panzer, mit Ketten und so, also Motor links&rechts) werden, der durch die gegen fährt. Vorne hab ich Ihm drei Infrarot-Sensoren drangebaut; einer direkt vorne und die anderen beiden vorne an den Ecken. Und dann wenn der Robi Hindernis erkennt z.B. die Sensoren "vorne" und "rechts" sind geschaltet dann soll er anhalten Sekunde später nach links drehen (Motor links läuft rückwärts, Motor rechts vorwärts für 1sek (nicht 2 wie oben angegeben), und dann färt er wieder gerade aus. Also wie das Programm aussehen soll weiß ich wohl nur die genauen Befehle nicht. Hab mir ein C-Tutorial durchgelesen, bin dann aber mit den dort erwähnten Ports, Pins und Registern voll durcheinander gekommen, weil irgendwie steht in zwei Kapiteln dasselbe aber doch irgendwie anders. Hilfe wäre sehr hilfreich:-) MfG
wie ich sehe bist du ein Anfänger in sachen Mikrcontroller, fange erst mal ganz klein an und nicht gleich einen Roboter. Dann solltest du ausser C auch die Datenblätter lesen können damit du auch weisst was der Controller überhaupt kann und welche Pins wofür geeignet sind. Gruß Uwe
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.