Guten Tag,
habe da ein Problem beschäftige mich noch nicht allzu lang mit der
Programmierung.
Nun habe ich meine PWM bisher mit diesem Programm gelöst was auch gut
Funktioniert (Steuerung über 2 Taster.
* PWM_Programm.c
*
* Created: 15.01.2014 19:55:46
* Author: Steve Uffelmann
*/
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 8000000UL
#include <util/delay.h>
int main(void)
{
// Ein/Ausgänge konfigurieren
DDRD |= (1<<PD5); //Ausgänge
PORTD|= (1<<PD2) | (1<<PD3); //Pull-UPs
//PWM konfigurieren
TCCR1B |= (1<<WGM12); //
TCCR1A |= (1<<WGM10); // Timer Einstellung Fast PWM, 8-bit
TCCR1B |= (1<<CS12); // Vorteiler 256
TCCR1A |= (1<<COM1A1); // Nicht invertierender PWM-Modus
OCR1A = 0; // Startwert Ausgang
while(1)
{
//Taster Frequenz höher
if (!(PIND & (1<<PD2))) // wenn Taster getrückt, dann Frequenz
steigern
{
if (OCR1A < 255) // abfrage nach maximal Wert
OCR1A++; // Impulsbreite verbreitern um 1
_delay_ms(20); // 20ms Pause
}
//Taster Frequenz sinken
if (!(PIND & (1<<PD3))) // wenn Taster getrückt, dann Frequenz
sinkt
{
if (OCR1A > 0) // abfrage nach minimal Wert
OCR1A--; // Impulsbreite verringern um 1
_delay_ms(20); // 20ms Pause
}
}
}
So nun ist ja das Problem wenn Wir alles in ein Gehäuse einbauen,
brauchen Wir ja eine Kühlung mit einem Lüfter. Aber man möchte den
Lüfter ja jetzt nicht immer auf voll Last laufen lassen wegen Geräuschen
und so.
Deshalb wäre es ja gut den Lüfter mittels PWM und einen PT100 im
Verhältnis zu temperatur zu Steuern. Die Spannung die mit dem PT100
Hergestellt/Eingestellt wird müsste ja mit dem ADC Ausgewertet werden.
Aber wie verknüpfe ich das mit den Steuer Registern zur Reglung der PWM.
Hoffe mir kann einer Hellfen.
Falsches Forum. Ein Mega32 zur Lüftersteuerung? Bisschen viel Pins fafür, oder? Aber schau dir erstmal Application Note AVR442 an. Da benutzen sie einen Tiny13 zur Lüftersteuerung mit NTC, der auch gleich die Kommutierung erledigt. Den Teil kannst du dir erstmal sparen, aber der ADC Teil wird dich interessieren. Du musst eigentlich nur eine Wandlung des ADC anschubsen, dann den Wert lesen und je nach Polarität das Ergbnis entweder direkt oder nach Umrechnung auf OCR1A geben. Für so etwas reicht vermutlich ein 8-bit Ergebnis des ADC, also linksbündig wandeln und nur ADCH lesen. Ein Minimum Wert sollte eingehalten werden, damit der Lüfter zumindest schon mal langsam läuft. Das probierst du am besten aus.
Ja aber ich wusste nicht wie ich ein anderes Forum auswähle. Wie kann ich den Artikel verschieben?? Es soll noch etwas mehr drüber laufen, ich werd mir es mal anschauen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.