Gast
#3050565
Hallo, Ich bin gerade dabei eine Drehzahlregelung für einen DC Getriebemotor zu enwickeln. Die Drehzahlregelung soll über den Laststrom vom DC Motor laufen. Als Motortreiber werde ich einen L298N Treiber verwenden. Ich habe im Datenblatt gelesen, dass man hier direkt über einen Widerstand auf Masse den Laststrom vom Motor messen kann. Ich möchte nun diesen Strom(Spannung) mit einem Atmega32 über einen ADC Channel messen und dann dementsprechend das PWM Signal für den L298N nachregeln. Nun zu meinem eigentlichen Problem: Ich dachte mir, ich löse immer einen Interrupt aus wenn die ADC Conversion von diesem ADC Channel fertig ist und lese dann den Wert vom Kanal ein. Da sich der Laststrom ständig ändern wird und ich ein möglichst gutes Ergebnis vom Regler erzielen möchte, denke ich das der Weg über den Interrupt der bessere ist. (andere Möglichkeit wäre zB immer nach einer bestimmten Zeit den ADC Wert zu lesen) Es ist aber so dass ich später vermutlich für irgendwelche anderen Sensorsignale auch noch ADC Werte einlesen möchte, die aber nicht so hochprior sind wie das Signal des aktuellen Laststromes vom DC Motor. ich bin mir jetzt nicht sicher wie ich das einlesen mehrerer ADC Signal sinnvoll implementieren soll. Der Interrupt wird ja immer ausgeführt wenn eine ADC Conversion fertig ist, egal von welchem Kanal. Ist das richtig oder hab ich hier etwas falsch verstanden? Ich möchte jetzt nur den Kanal der den Laststrom misst Interrupt gesteuert einlesen und zB alle anderen Signale im 5ms Zeitraster einlesen. Im datenblatt habe ich vom "Free running mode" oder "Auto triggered mode" gelesen aber für scheinen diese Ansätze nicht wirklich die richtigen zu sein. Hat hier jemand eine Vorschlag wie ich dieses Problem am sinnvollsten lösen kann oder welchen Ansatz ich verfolgen soll? Kann ich einen Interrupt "ADC Conversion complete" auch nur für einen bestimmten ADC Kanal auslösen lassen? wenn ja wäre mein Problem ja eigentlich gelöst :-) vielen Dank schom im Voraus!