PWM Bascom

chris-k

Neues Mitglied
15. Juni 2008
3
0
0
Sprachen
Hallo kann mir einer bitte helfen bin anfänger.
und zwar möchte ich über 2 Taster die drehzahl einstellen können.
schneller oder langsamer. das ganze möchte ich mit einen Attiny2313 machen. Danke im voraus . chris:)
 
Hallo Chris,

am besten ist, wenn du dir einmal die Bascom-Hilfe anschaust, dort findest du sehr schnell Informationen.

PWM kannst du zum Beispiel mit dem Timer1 erzeugen, wobei du das PWM-Verhältnis mit einem Compareregister einstellst.


PWM mit Timer1 erzeugen:
CONFIG TIMER1

Tastenabfrage:
DEBOUNCE
CONFIG DEBOUNCE
BITWAIT

Datenblatt ATtiny2313:
ATtiny2313

Grüße,
Dirk
 
Hi Danke für die schnellen Antwort !
hasst du mir ein Beispiel !
Danke mfg chris
 
Hallo Chris,

ich habe für Bascom leider keine fertige Lösung für dich, da ich nicht in Bascom programmiere.

Bascom hat aber eine gute Online-Hilfe mit Beispielen, siehe dir einmal die links, welche ich oben im Beitrag angegeben habe genauer an, damit hast du eigentlich schon die Lösung zu der Aufgabenstellung.

Du musst eigentlich nur den Timer1 so konfigurieren, dass du durch Vorgabe der Inhalte eines Compareregisters (z.B CompareA) das PWM-Verhältnis einstellst. Die Periodendauer läßt sich durch Teilung der Taktfrequenz fosc mittels Prescaler wählen.

In dem Hauptprogramm reagierst du auf Plus- und Minustaste und änderst eine zuvor definierte Variable in dem Wertebereich der PWM-Auflösung (z.B. 10Bit, also 0...1023). Den Inhalt dieser Variable kopierst du dann immer in das entsprechende Compare-Register, somit läßt sich das PWM-Verhältnis einfach einstellen.

Gruß,
Dirk
 
hi das würde doch so Funktionieren oder.
Danke


$regfile = "m8def.dat"
' $crystal = 4000000
$crystal = 1000000

'Taster abfrage und PWM:



Config Portb.6 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 256



Dim Down As Word

Dim Up As Word
'Startwert einstellen
Compare1a = 1000

Do
Debounce Pinb.3 , 0 , Down , Sub '-----> erhöht bei jedem Tastendruck um 1
Debounce Pinb.4 , 0 , Up , Sub
Debounce Pinb.5 , 0 , Rechts_links , Sub '--> schaltet das Relais von der Rechts/Links umschaltung.
Loop
End

Down:
Down = Down - 100
Compare1a = Down
Return
Up:
Up = Up + 100
Compare1a = Up
Return
Rechts_links:
Toggle Portb.6
Return
 
Mal mit einer Frage hier einklinke, kann ich denn pracktisch auch den Motor einfach umschalten in der Drehrichtung, ohne vorher die Umdrehung gegen NULL zu bringen?
Ich frage deshalb, weil ich mich auch gerade mit PWM -Motorantrieb befasse und als Neuling noch nicht so über praktische Erfahrungen verfüge.

Gruss Gerhard
 
Hallo,

ich habe beruflich zwar mehr mit Motoren bis zu 150kW zu tun, aber ich kann Dir sagen, daß die das GAR NICHT mögen. Drehrichtung während der Laufzeit umschalten kann zu Katastrophen führen! ;-)

Aus dem Bauch heraus, würde ich auch kleine Motoren gegen Null Umdrehungen fahren. Oder im Programm eine Drehrichtungsumschaltung verhindern, wenn die PWM noch am Ausgang liegt. Beachten müßte man dann aber eventuell noch die Motorauslaufzeit.

Gruß Dirk
 
Aus dem Bauch heraus, würde ich auch kleine Motoren gegen Null Umdrehungen fahren. Oder im Programm eine Drehrichtungsumschaltung verhindern, wenn die PWM noch am Ausgang liegt. Beachten müßte man dann aber eventuell noch die Motorauslaufzeit.
Gruß Dirk

Genau darum ging es mir, mittels Programm prüfen, ob noch PWM anliegt, bevor ein Drehrichtungswechsel stattfinden kann...evt noch etwas Nachlaufzeit beachten.
So hätte ich auch gedacht bei der Programmerstellung, da ich aber noch Neu-Einsteiger bin wollte ich mich nochmals informieren.

Danke !!!

Gerhard
 
Nichts zu danken!

Aber wie gesagt, es ist nur aus dem Bauch heraus. Ich kann da eben nur für richtig große Maschinen reden. Aber ich denke das ist da analog. Bei uns werden Motoren über Chopper sogar gezielt bis zum Stillstand runtergefahren und dann erst umgekehrt wieder beschleunigt.

Denn mal viel Spaß beim Proggen!!!

Gruß Dirk
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)