Forum: Mikrocontroller und Digitale Elektronik "Langzeit"-Timer


von Hase (Gast)


Lesenswert?

Hallo! Wie bekomme ich einen "Lang"zeit-Timer (so ca. 5-10 Sekunden)
mit dem AVR hin?
Sinn und Zweck ist ein Softstart für die Heizung in einem
Röhrenverstärker, d.h. nach der eingestellten Zeit soll ein port auf
High gehen und ein Relais schalten, welches einen Widerstand
überbrückt. Prinzipiell ginge das zwar auch einfacher und schneller mit
einem NE555, aber da der Verstärker wohl demnächst sowieso eine
Ansteuerung Fernbedienung bekommen soll könnte ich auch alles in einem
Chip integrieren. Softstart ginge zwar sicher auch per Phasenanschnitt,
allerdings habe ich dann sicher beim Start ein ungesundes Brummen
drauf.


Gruß, Hase

von Hannes L. (hannes)


Lesenswert?

Sowas macht man mit einem Heißleiter im Heizkreis...

Im AVR nimmt man einen Timer (Interrupt) und zählt in der ISR ein
Register hoch (oder runter). Reicht ein Register nicht, so kann man
mehrere Register kaskadieren. Einfach bei Überlauf des niederwertigen
das höherwertige erhöhen (vermindern).

...

von Hase (Gast)


Lesenswert?

Klingt gut, werde das mal probieren.

@Heißleiter: Nee, zu unmodern ;-).

von Quacks (Gast)


Lesenswert?

Hm, unmodern?

Aber so wird erst geschaltet wenn eine bestimmte Temperatur tatsächlich
erreicht ist und dies ohne großen Aufwand.

Gruß

von Hannes L. (hannes)


Lesenswert?

"Geschaltet" wird da eigentlich garnicht, sondern kompensiert. Es
kommt ja ein (auf den Heizkreis abgestimmter) Kompensationsheißleiter
zum Einsatz. So wie der Widerstand der Heizwendeln (Kaltleiter) steigt,
so verringert sich der Widerstand des Heißleiters.

...

von Mario (Gast)


Lesenswert?

void pause(int);
volatile int timercounter;

INTERRUPT(SIG_OVERFLOW2)      //Pausefunktion
{
TCNT2 = 0;
timercounter++;
}

int main(void)
{
 pause(10);//

 return 0;
}

void pause(unsigned int zeit)
{
  TCNT2 = 0;
  TIMSK  |= 0b01000000;    //Timer Overflow Interrupt enable
  TCCR2 = 0b00000101;
  timercounter = 0;
  while(timercounter < zeit);
  TIMSK  &= 0b10111111;    //Timer Overflow Interrupt disable
}

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.