12V Motorsteuerung mit PIC12f675

Gast #331372
Hi Leute,
ich habe ein Problem und zwar muss ich für ein Praktikum
einen kleinen 12V Motor mit dem PIC12f675 ansteuern, gelötet ist schon
alles, Schaltung liegt bei. Habe versucht die Sache mal mit dem
Programm PIC-C zu programmieren, läuft auch soweit, glaub ich, nur
habe
ich leider absolut keine Ahnung wie ich das mit der PWM klären soll.
Wenn jemand Lösungsvorsschläge hat, bin ich immer offen für. Falls ihr
euch mein Programmprototyp anschauen wollt, müsst nur Bescheid geben.

Vielen Dank!

Gruß

Artur Müller
Angehängte Dateien:
Gast #331373
Der PIC12F675 besitzt kein PWM - Modul.
Warum verwendest du statt dessen nicht den pinkompatiblen PIC12F683 ?

Allerdings benötigt man für eine H - Brücke normalerweise zwei PWM -
Ausgänge, und der PIC12F683 besitzt nur einen. Es gibt aber auch dafür
schaltungstechnisch eine Lösung, nämlich mit zwei Transistoren, die das
aufteilen.
Gast #331374
Naja.. was muss den dein PIC so alles machen? vl gehts ja eh ganz
einfach mit einer Software-PWM Lösung.
Also beschreibe mal was du einliest und was du damit machen musst.
Gast #331375
Hallo Schoaschi,
ich muss den PIC mit einem Taster ansteuern, dass heißt mit Betätigung
des Tasters soll der Motor anlaufen (dieses Programm soll auf einmal
ablaufen), dann Rechts-linkslauf und eine Rampe fahren (erst rauf und
dann runter). Wie in der Schaltung sichtbar habe ich ja auch eine
Lichtschranke und an der Spitze des Motors eine passende Scheibe mit
zwei gegeüberliegenden Schlitzen, um die Zählgenauigkeit zu erhöhen.
Das Problem ist ich weiß eigentlich gar nix, das einzige was ich
geschafft habe ist, das der Motor schon mal anspricht, und der
schwierigste Teil ist die PWM, wie ich finde.

P.S. Jonny: Ich soll eine PWM programmieren, damit der Motor eine Rampe
fahren kann. Was ich noch weiß ist, dass dies irgendwie auch mit der
Lichtschranke zu tun hat.

Gruß

Artur
Angehängte Dateien:
#331376
Als "Rampe" wird bezeichnet, dass der Motor nicht abrupt anfahren und
bremsen soll (wie z.B. mittels Schalter), sondern dass er langsam
anfahren soll und langsam immer schneller werden soll, bis er die
End-Drehzahl erreicht hat (genauso beim Bremsen).

Eine Software-PWM erreichst du durch einen Zähler (Register), der im
Timer-Interrupt hochgezählt wird und mit den PWM-Werten
(Tastgrad-Werte) verglichen wird. Das Vergleichsergebnis entscheidet
dann über Einschalten oder Ausschalten des Motors. Da du beide
Drehrichtungen realisieren sollst, brauchst du zur Ansteuerung einer
H-Brücke zwei PWM-Ausgänge, von denen je nach Drehrichtung immer nur
einer aktiv sein darf.

Wenn du auch die Lichtschranke zur Drehzahlmessung einbeziehen sollst,
dann wird es etwas komplexer, da du dann eine komplette Regelung
programmieren musst.

Ich hoffe, ich habe dir jetzt genügend Stichworte für die Suche im
Forum oder Web genannt.

...
Gast #331377
Hi Leute, hab das Programm schon auf denPIC gebrannt, Fazit, es läuft
nicht.

Ich habe das TRIS-Register gesetzt ( A2 und A3 als Input, A4 und A5
Ausgang für den Motor links/rechts).

An A3 ist ein Taster, der 5V auf Masse zieht (MCLR).

Leider läuft der Motor nicht los.

Hat jemand eine Ahnung, was am Programm falsch ist?

Gruß
Artur
Angehängte Dateien:
Gast #331378
Als erstes sollte MCLR ausgeschaltet (bzw. PIC-Intern intern auf High
gelegt) werden --> #fuses , da ihr den Pin ja als Eingang
verwendendet.

Für die Lichtschranke würde ich den GPIO OnChangeInterrupt verwenden.
Gast #331379
Haben MCLR ausgeschaltet und den A3 als Input für den Taster genommen.
Sobald der PIC Spannung bekommt, fängt er aber leider auch ohne
Tastendruck an zu laufen.

void main
{
 while (true)
 {
   if (Start)
   {
     motorlinks();
     delay_ms(5000);
     output_low(M_links);
     delay_ms(2000);
     ...
   }
 }
}



Wie funktioniert das mit dem GPIO OnChangeInterrupt?
Gast #331380
Wie inititalisierst du die Ausgänge? Setzt du beide auf 0?

Wie der IOC funktioniert, das findest du im Datenblatt unter 3.2.2
Interrupt-On-Change.
Gast #331384
Vielen Dank an alle die mitgeholfen haben, ich habe es endlich geschafft
der Motor läuft wie er soll, auch die PWM mit der Lichtschranke
funkioniert.

Gruß

Artur Müller

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.