Zoemende servo

Arduino specifieke Software
Berichten: 9
Geregistreerd: 05 Aug 2014, 18:06
Woonplaats: budel

Zoemende servo

Berichtdoor jobbomodels » 14 Mrt 2017, 22:58

Beste,

Ik heb een vraagje:

Op mijn kamer ben ik bezig geweest met domotica. Zowel de luxaflex als mijn gordijnen gaan automatisch dicht doormiddel van een stappen motor. In de tijd dat de luxaflex of gordijnen dicht gaan komt er een LCD scherm onder mijn bureau vandaan die wordt aangedreven door een 9g servo.
Echter heb ik nu het probleem dat als hij terug onder mijn bureau verdwijnt dat hij soms blijft zoemen. Ik denk omdat de code zegt dat hij naar een bepaalde hoek toe moet en daar steeds een beetje van afwijkt en de servo hem corrigeert. Voor de servo gebruik ik de Servo.h library.

Is er een mogelijkheid om in de code te zeggen dat de servo "Uit" gaat?

Alvast bedankt!

Groetjes,
Job

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Zoemende servo

Berichtdoor Koepel » 15 Mrt 2017, 00:00

Sommige servo motors gaan in standby als het servo signaal stopt.
Dat wordt soms ook gedaan bij goedkope servo motors, het schijnt vaak te helpen.
Probeer het eens: Servo.detach() : https://www.arduino.cc/en/Reference/ServoDetach
Vanwege de tandwieltjes in de servo motor blijft hij meestal zijn stand wel houden als er geen servo signaal meer is.

Wanneer de voedingsspanningen van zowel de servo als het Arduino board heel stabiel zijn, en je hebt een goede (digitale) servo motor, en alles is helemaal perfect, dan hoor je de servo motor ook niet.

Berichten: 9
Geregistreerd: 05 Aug 2014, 18:06
Woonplaats: budel

Re: Zoemende servo

Berichtdoor jobbomodels » 15 Mrt 2017, 00:22

mmmm het werkt in zoverre het zoemt niet meer. Ik heb er een delay achter gezet om er voor te zorgen dat hij helemaal dicht gaat en niet halverwege ophoudt. Helaas doet hij de volgende keer dat ik de servo oproep om een actie uit te voeren niks meer...

void LCD_UIT()
{
LCD_Servo.write(170);
delay(1000);
LCD_Servo.detach();
}

void LCD_IN()
{
LCD_Servo.write(25);
delay(1000);
LCD_Servo.detach();
}

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Zoemende servo

Berichtdoor Koepel » 15 Mrt 2017, 18:02

Met een detach() wordt die pin weer een gewone pin, die niets meer met de Servo te maken heeft. Natuurlijk doe hij daarna niets meer. Je hebt dan weer een attach() nodig om opnieuw het servo signaal naar de Servo motor te sturen. Duh! dat had je zelf ook kunnen bedenken ;)

Die delay() is inderdaad nodig. Er zit niets anders op dan maar een beetje te gokken hoeveel tijd de servo maximaal nodig heeft.

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 36 gasten