wiskunde321 schreef: ↑wo 20 jul 2022, 20:17ik werk met servo's MG90s.
Als ik de datasheet van de MG90S opzoek (bijvoorbeeld:
hier) dan zie ik dat deze motor wordt aangestuurd met PWM (Pulse-width modulation). Elke 20 ms moet er een puls van 1 tot 2 ms naar de motor gestuurd worden. De lengte van de puls bepaalt de hoek waarin de motor gaat staan.
In de datasheet staat niet wat er gebeurt als je bijvoorbeeld geen puls naar deze motor stuurt. Misschien zou het aansturen met een puls lengte van 0 ms (= geen puls) wel eens tot een stilstaande servo kunnen leiden.
In de beschrijving van de 'Servo'-functie (
hier) staat een manier om de lengte van de puls direct te beinvloeden. Bij die beschrijving staat echter een waarschuwing: "Note however that attempting to drive a servo past its endpoints (often indicated by a growling sound) is a high-current state, and should be avoided."
Dit suggereert dat het aansturen met geen signaal wel eens een slecht idee zou kunnen zijn.
Aangezien je de motor moet aansturen, maar je de motorpositie niet kunt uitlezen, is het dus niet mogelijk om de servo bij opstarten stil te houden.
Je zou, als je avontuurlijk bent, nog een programma kunnen schrijven om te zien of de motor echt niet stilstaat als de pulslengte naar nul gaat. Ik zou de motor dan in de midden positie zetten en kijken wat er gebeurt als je de pulslengte naar nul schrijft. Je moet dan wel alert zijn om de boel spanningsloos te kunnen maken zodra de motor dan toch gaat bewegen naar een wellicht gevaarlijke positie...
Als dat niet werkt, is je enige optie inderdaad om de motor pas van spanning te voorzien op het moment dat je er ook daardwerkelijk iets mee wil doen. In dat geval zul je in de weer moeten met een relais (of zo iets).
[quote=wiskunde321 post_id=1171295 time=1658341056 user_id=82207]ik werk met servo's MG90s.[/quote]
Als ik de datasheet van de MG90S opzoek (bijvoorbeeld: [url=https://datasheetspdf.com/pdf/1106582/ETC/MG90S/1]hier[/url]) dan zie ik dat deze motor wordt aangestuurd met PWM (Pulse-width modulation). Elke 20 ms moet er een puls van 1 tot 2 ms naar de motor gestuurd worden. De lengte van de puls bepaalt de hoek waarin de motor gaat staan.
In de datasheet staat niet wat er gebeurt als je bijvoorbeeld geen puls naar deze motor stuurt. Misschien zou het aansturen met een puls lengte van 0 ms (= geen puls) wel eens tot een stilstaande servo kunnen leiden.
In de beschrijving van de 'Servo'-functie ([url=https://www.arduino.cc/reference/en/libraries/servo/writemicroseconds/]hier[/url]) staat een manier om de lengte van de puls direct te beinvloeden. Bij die beschrijving staat echter een waarschuwing: "Note however that attempting to drive a servo past its endpoints (often indicated by a growling sound) is a high-current state, and should be avoided."
Dit suggereert dat het aansturen met geen signaal wel eens een slecht idee zou kunnen zijn.
Aangezien je de motor moet aansturen, maar je de motorpositie niet kunt uitlezen, is het dus niet mogelijk om de servo bij opstarten stil te houden.
Je zou, als je avontuurlijk bent, nog een programma kunnen schrijven om te zien of de motor echt niet stilstaat als de pulslengte naar nul gaat. Ik zou de motor dan in de midden positie zetten en kijken wat er gebeurt als je de pulslengte naar nul schrijft. Je moet dan wel alert zijn om de boel spanningsloos te kunnen maken zodra de motor dan toch gaat bewegen naar een wellicht gevaarlijke positie...
Als dat niet werkt, is je enige optie inderdaad om de motor pas van spanning te voorzien op het moment dat je er ook daardwerkelijk iets mee wil doen. In dat geval zul je in de weer moeten met een relais (of zo iets).