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.
:
Bearbeitet durch User
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.