www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 12V Motorsteuerung mit PIC12f675


Autor: Artur Müller (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jonny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Artur Müller (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

...

Autor: Artur Müller (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Artur Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Nablus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CMCON=%00000111   ' Disable Comparators
  ANSEL=%00000000   ' Disable ADC

kontrollieren.

Autor: F.H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PWM Chip mit 12 F
http://www.ees-hartz.de/pwm

Autor: Nablus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cny36 : fehler im schaltplan

Autor: Artur Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Marcus Det (cali)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich mache gerade fast dasselbe und mich würde der Code interessieren,
sowie der korregierte Schaltplan.

Vielen Dank und Grüße
 Marcus

Autor: Artur Müller (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Marcus,
hier der Schaltplan und weiter unten den Code.

Gruß

Artur Müller

Autor: Artur Müller (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So,
und nu der Code

nochmals Gruß

Artur

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.