Ich will für einen Motor eine Überlastsicherung implementieren. Dieser wird über einen Atmega8 und L298 angesteuert. Habe ein Sense Signal vom L298 und versuche dieses über den AnalogComparator zu nutzen. Mein Problem: Bei jedem Motorstart gibt es einen Peak den ich nicht weg bekomme. Habe so programmiert das der Interrupt mehrmals ausgelöst werden muss bevor das Programm reagiert. Nun ist es so, dass bei abrupter Belastung des Motors das Sense Signal ansteigt und auf einem bestimmten Niveau bleibt, es aber kein Interrupt mehr ausgelöst wird, weil das Sense Signal schon beim wiederaktivieren des AnalogComparator über dem Vergleichssignal liegt. Ich bin nun ratlos.
Frage doch Bit5 (ACO) im ACSR-Register im Polling ab. Dann brauchst du kein Interrupt, sondern nur einen Timer. Oder du verwendest eine Kombination aus beidem. Mfg Gero
hi, ein peak beim anfahren ist der normalfall... stromueberwachung per interrupt ist zwar eine gute idee um schnell zu sein....die tatsache,dass du mehrere ints forderst,dagegen nicht. da genuegt es, wie oben schon gesagt,den komparator abzufragen. aber ich glaube dass eine 'analog'ueberwachung (kontinuierlich) weniger nerven kostet. gute digitale ueberwachung bei schnellen endstufen ist nicht einfach oder... setze deine schaltschwelle hoeher ed
die schaltschwelle soll regelbar sein, mit dem ACO abfragen teste ich gerade, mit dem interrupt sehe ich ein, wäre ja auch zu einfach gewesen ;) aber ich habe das doch richtig verstanden, ACO ist solange gesetzt, wie die spannung an pin AIN0 höher ist als an pin AIN1.
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.