Forum: Mikrocontroller und Digitale Elektronik AD-Wandler --> PWM


von Marcus Göttler (Gast)


Lesenswert?

Hi Leute,

ich bin gerade dabei mir eine Lüftersteuereung mit 4 PWM Kanälen zu 
bauen.

4 Potis die an die AD-Wandler vom Mega323 angeschlossen werden. Der 
AD-Wandler soll den Wert vom 1. Poti einlesen und auf die erste PWM 
ausgeben, dann vom 2. AD-Wandler einlesen und auf die zweite PWM 
ausgeben...und so weiter.

Nun hab ich den ganzen Nachmittag mit erfolglosem rumprobieren 
verbracht.

Hat mir da vielleicht jemand einen kleinen Denkanstoß in Assembler wie 
ich das lösen kann ? Ich bin bis jetzt soweit gekommen, das ich den Wert 
vom 1. AD-Wandler auf die PWM ausgebe ( komischerweise auf alle 4 PWM 
Kanäle ). Ich hab den Wandler mit dem ADCSR Register ausgewählt und dann 
auf die entsprechende PWM ausgegeben.

Tips werden gerne angenommen.

MfG
Marcus

von emil (Gast)


Lesenswert?

nur so, beiseite, warum benutzt du nicht statt potis einfach up/down 
tasten? und dann nur noch eine "kanal select" taste und ein paar leds 
und schon hast du mit nur 3 tasten eine "high tech" lüftersteuerung; die 
potis sind...naja, glaube kaum, das du hier einen findest, der potis 
liebt :)))

und nochwas, nimm einfach die bascom-demo; die kompiliert bis 2k code, 
damit schaffst du locker deine aufgabe inkl. tasten und allem...und 
flash speicher hast du ja sowieso genug...

emil

von Marcus Göttler (Gast)


Lesenswert?

So wars anfangs auch geplant, nur bin ich mit den Interupts nicht klar 
gekommen. Bin in Assembler nicht besonders fit und das mit den Potis 
erschien mir für den Anfang einfacher zu sein. Ursprünglich sollte auch 
ein Kanal davon Temperatur geregelt sein.


MfG
Marus

von emil (Gast)


Lesenswert?

der fehler liegt nicht bei dir; assembler ist eben schwer und umständig 
für anfänger und in deinem fall auch völlig unnötig; nimm' einfach 
bascom-demo, schau' dir die doku ein wenig, es gibt fertige routinen für 
tasten entprellen (debounce), auch fertige adc funktionen( getadc()) 
usw...für pwm kannst du entweder die timer oder auch die eingebaute 
pulseout funktion benutzen...
damit kommst du viel leichter zu einem brauchbaren ergebnis, zuerst mit 
einem kanal, dann mit mehreren, danach auch ein temperatursensor 
einbinden, du schaffst das dann ganz bestimmt...

emil

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.