2 Timer, für jeden Motor einer, müsste klappen.
Was ich nicht ganz erkennen kann ist, ob du die Potis an einen ADC angeschlossen hast oder nicht. Wenn Ja, dann kannst du ja den ADC-Wert für die Timer gleich mehr oder weniger übernehmen. 255 = Max, 0 = min oder so... Wie die Werte dann umgesetzt werden ist dann dein Ding.
Logik für deine Ansteuerung dann:
Mal ein Ansatz... Denk dran, dass der Faktor nicht zu groß werden darf... am besten so wählne, dass bei Volllenkung genau in die Räder sich gleich schnell aber in unterschiedliche Richtungen drehn. (Faktor auch von X abhängig, nicht nur Y!!)Code:if (X_Value > 128) { //rechts lenken power_Motor_links = (....)*(Y_Value); power_Motor_rechts = (....)*(Y_Value-faktor); } if (X_Value <= 128) { //links lenken power_Motor_links = (....)*(Y_Value-faktor); power_Motor_rechts = (....)*(Y_Value); }
Du brauchst außerdem eine Motorroutine, die abhängig von den errechneten Werte die Motoren vorwärts oder rückwärts lenkt.
Ich weis, es ist C-Style und nicht basic, aber du müstest es lesen könnenCode:Motor_A(int power) { //power 0-255 if (power>128) { //vorwärts dir = 1; TimerA_value = (...)*((power-128)*k+d); } if (power<128) { //rückwärts dir = 0; TimerA_value = (...)*(-power*k+d); } //Hier die Timer Füttern!! }![]()







Zitieren

Lesezeichen