Sanftanlauf programmieren

  • VB

  • Chef
  • 1193 Aufrufe 1 Antwort

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Sanftanlauf programmieren

    Hallo, ich bins schon wieder.
    Ich bin gerade dabei mein Programm für meinen C-Control µC zu programmieren und entwerfen. der Controller soll einen DC-Motor Drehzahl steuern, und zwar hängt am Analogeingang ein Drucksensor der Spannungen liefert je nach Druck. Wenn fest gedrückt wird soll der Motor sich schneller drehen wie wenn weniger fest gedrückt wird. Das ganze soll dann auch einen Sanftanlauf haben, sprich wenn einen Druckänderung am Sensor stattfindet soll der Motor "langsam" auf die gewünschte Geschwindigkeit hochdrehen. Ich habe das jetzt mal so programmiert, was aber nicht gerade Vorteilhaft ist, da der Sensor während er in der "Sanftanlauf" Schleife ist nicht weiter abgefragt wird. Hat jemand da eine andere Lösung?
    Hier der Code:

    Quellcode

    1. define sensor1 AD[1]
    2. define output1 PORT[1]
    3. define x WORD
    4. define y WORD
    5. define z WORD
    6. define w WORD
    7. #loop
    8. x = sensor1
    9. pause 1
    10. y = sensor1
    11. if x <> y then goto sanftanlauf
    12. goto loop
    13. #sanftanlauf
    14. z = z + 1
    15. w = x + z
    16. pause 50
    17. print w
    18. if w = sensor1 then goto loop
    19. goto sanftanlauf
    Alles anzeigen
  • Ohne jetzt ansatzweise zu ahnen, auf welche microcontroller man solch einen basic dialekt programmiert. (Ich programmier MC eher in C)


    Quellcode

    1. define sensor1 AD[1]
    2. define output1 PORT[1]
    3. define x WORD
    4. define y WORD
    5. define z WORD
    6. define w WORD
    7. #loop
    8. x = sensor1
    9. pause 1
    10. y = sensor1
    11. //ramp in
    12. if x > y+10 then // wenn großer abstand etwas größere sprünge
    13. y=y+2
    14. elseif x > y+5 then // sonst kleinere sprünge
    15. y=y+1
    16. //ramp out
    17. elseif x > y-10 then // wenn großer abstand etwas größere sprünge
    18. y=y-2
    19. elseif x > y-5 then // sonst kleinere sprünge
    20. y=y-1
    21. endif
    22. goto loop
    Alles anzeigen