Forum: Mikrocontroller und Digitale Elektronik PWM Problem / Frage


von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Hallo Leute,
ich stehe vor folgendem Problem.

Ich habe ein Longier Computer(damit werden Pferde über eine leine im 
kreis bewegt) vor mir wo ich die Steuerelektronik erneuere.
es wird ein Motor in verschiedenen Geschwindigkeiten über PWM 
angesteuert.
es gibt 6 Geschwindigkeitsstufen und dementsprechend 6 PWM Werte.

Eine Periode dauert 16ms
bei Geschwindigkeit 1 ist der pin 7ms ein und 9ms aus,
bei Geschwindigkeit 2 ist der pin 8ms ein und 8ms aus,
bei Geschwindigkeit 3 ist der pin 9ms ein und 7ms aus,
bei Geschwindigkeit 4 ist der pin 9,750ms ein und 6,250ms aus,
bei Geschwindigkeit 5 ist der pin 10,5ms ein und 5,5ms aus,
bei Geschwindigkeit 6 ist der pin 16ms ein und 0ms aus also komplett 
eingeschaltet.

mein problem ist nun folgendes, ich nutze einen Atmega8 der über die 
Arduino IDE Programmiert wird, wie bekomme ich eine PWM Frequenz von 
16ms dauer und den entsprechenden werten hin.

ich benutze den 8Mhz internen Quarz und den Ausgang Port-B1 also Timer 
OC1A des AVR

hat da vielleicht jemmand eine idee?

MFG

: Bearbeitet durch User
von Kurt (Gast)


Lesenswert?

Ja:
5teht im Datenblatt.

von Magic S. (magic_smoke)


Lesenswert?

Meine Fresse ... wofür es nicht alles schon Computer gibt. Mal sehen wie 
lange es noch dauert bis wir nicht mehr selbständig kacken können, 
sondern auch dafür auf einen Computer angewiesen sind.

Ich würd sagen nutz einen Vorteiler für den 16 Bit Timer, mit dem Du in 
etwa auf die 16ms kommst (Fast PWM Mode). 16ms sind bei 8 MHz 128.000 
Takte. Dabei kommt mir der Gedanke, daß es gar keine 16ms sind sondern 
16,384. Die erreicht man nämlich exakt mit dem Teiler 2 und einem 16Bit 
Timer und kann sich den Quark mit dem oberen Endwert (TOP glaube ich) 
sparen. Alternativ bietet sich auch ein 8Bit-Timer mit Teiler 512 an.

Der Rest ist dann nur noch das Output Compare Register, welches das 
Puls/Pausenverhältnis bestimmt. Also für 7ms: 7/16.384*65.535= 28.000.

Wenn Du exakt 16ms haben willst, mußt Du bei Teiler 2 den TOP-Wert auf 
64.000 setzen und erhältst für 7ms 7/16*64.000= ebenfalls 28.000.

Übrigens gibt es auch Leute, denen es Spaß macht, Pferde zu longieren. 
Schmeiß die olle Automatik doch ganz einfach weg und mach jemandem eine 
Freude.

von c-hater (Gast)


Lesenswert?

magic smoke schrieb:

> Meine Fresse ... wofür es nicht alles schon Computer gibt. Mal sehen wie
> lange es noch dauert bis wir nicht mehr selbständig kacken können,
> sondern auch dafür auf einen Computer angewiesen sind.

Warst du schonmal in Japan auf'm Klo? Die Zukunft ist heute!

von Aaron C. (Firma: atcnetz.de) (atc1441)


Lesenswert?

Danke magic_smoke das hat geholfen.

Dieses Gerät ist von 1995 und ist demnach ja keine neue erfindung, 
gehört auch nicht mir sondern ich bereite es nur wieder auf.

wenn man das einmal mit den Timern verstanden hat ist es ziemlich 
einfach.

von Magic S. (magic_smoke)


Lesenswert?

> Warst du schonmal in Japan auf'm Klo? Die Zukunft ist heute!
Nö. Log in to shit into? rofl

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.