Forum: Mikrocontroller und Digitale Elektronik Ausgang in C für 2sec setzen


von Schüler F.F. (Gast)


Lesenswert?

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

von Hubert.G (Gast)


Lesenswert?

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.

von Franjo Rupcic (Gast)


Lesenswert?

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

von Schüler F.F. (Gast)


Lesenswert?

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

von Uwe S. (uwe_stark)


Lesenswert?

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
Noch kein Account? Hier anmelden.