Help! aan/uit Servo sg90

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 4
Geregistreerd: 17 Sep 2019, 13:28

Help! aan/uit Servo sg90

Berichtdoor Macthijs » 17 Sep 2019, 13:38

Dag,

Ik ben bezig met een project dat ik minimaal 10 servo sg90 wil aansturen, de servo's zelf aansturen is niet zo heel moeilijk maar ik wil er graag een aan en uit knop op hebben. (dus dat de loop reset en weer begint bij af)

De enige filmpjes en informatie die ik tegen kom gaat telkens over hoe je een servo rechts naar links zet drukt met de knop maar het gaat mij juist om dat de hele (arduino of breadboard zich dan even uitschakeld tot je weer op de aan knop drukt)

Vraag:
Hoe sluit ik de aan/uit knopjes aan? en wat voor code heb ik nodig?

Ik kan me voorstellen dat dit een beetje lui overkomt dat ik geen zin heb om het zelf te leren, maar ik weet vooral even niet waar ik moet beginnen.

dit is even heel basic de code voor 2 servo's worden er straks 10.

Code: Alles selecteren
#include <Servo.h>
Servo myServo1;
Servo myServo2;

void setup() {
myServo1.attach(9);
myServo2.attach(10);
}

void loop() {
 myServo1.write(90);
 delay(50);
 myServo1.write(120);
 delay(60);

myServo2.write(90);
 delay(50);
 myServo2.write(120);
 delay(60);

}


Alvast enorm bedankt.

Advertisement

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

Re: Help! aan/uit Servo sg90

Berichtdoor Koepel » 17 Sep 2019, 14:19

Hallo, en welkom op dit forum.

Een drukknop kun je verbinden met een pin en met GND.
En een weerstand tussen de pin en 5V. Bijvoorbeeld een 4k7 of 10k weerstand.
Die pin zet je als INPUT of INPUT_PULLUP met pinMode() in setup().
Dan kun die pin lezen met digitalRead(): https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/.

Er zijn meerdere manieren om dit te doen:

1) slordige manier:
Tijdens wachten steeds naar de knop kijken, en er dan op een onhandige manier uit springen. Als je in de loop() een return doet, dan gaat de loop() weer opnieuw beginnen.

2) nette manier:
Kijk in de loop() of de knop is ingedrukt en kijk of er een servo-motor iets moet doen. Dit kost veel meer code, maar het is uit te breiden met allerlei andere dingen. Wat de servo-motoren moeten doen kan in een tabel gezet worden. Hier staat een voorbeeld waarbij een tabel wordt uitgevoerd: https://github.com/Koepel/Fun_with_millis/blob/master/millis_rhythm.ino.

Wil je de sketch eenvoudig houden en nooit uitbreiden, dan kun je misschien "1)" doen. Maar als je later een temperatuursensor en een display wilt toevoegen, dan loop je meteen vast.
Wil je graag iets leren en doelgericht naar een oplossing werken, dan kun je misschien beter voor "2)" gaan.

Kun je vertellen wat je project is ?
Wil de je de servo-motoren ook langzaam laten bewegen ?
Wil je meerdere servo-motoren tegelijk laten bewegen ?

Hoeveel stroom heb je beschikbaar ? Hoe heb je het aangesloten ? Wat heb je met de GND verbindingen gedaan ?

Berichten: 4
Geregistreerd: 17 Sep 2019, 13:28

Re: Help! aan/uit Servo sg90

Berichtdoor Macthijs » 17 Sep 2019, 15:44

Dag,

Super bedankt voor je uitgebreide reactie en vragen.

Innmiddels heb ik even nieuwe code geprobeerd nog niet zozeer de juiste snelheden maar dat komt later wel,

#include <Servo.h>

// Servo apparaatjes

Servo servo1;
Servo servo2;

// Posities

int servoPos = 0;

void setup ()
//inputs 3-5

{
servo1.attach(3);
servo2.attach(5);
}

void loop ()
{

// 0 tot 180 graden
for(servoPos = 90; servoPos <180; servoPos++)
{
servo1.write(servoPos);
servo2.write(servoPos);
delay(0);
}
// 180 tot 0 graden
for(servoPos = 180; servoPos > 90; servoPos--)
{
servo1.write(servoPos);
servo2.write(servoPos);
delay(0);
}
}





hieronder een foto wat ik ga laten bewegen doormiddel van arduino (soort kunstachtig maf snack project).
Afbeelding

De huidge situatie

Afbeelding

Afbeelding

Ik wil dat de snacks(ja snacks) door een druk op de knop allemaal onrustig gaan trillen.

nu ben ik er van op de hoogte dat er een extra energie bron nodig is om 10 van die motoren aan te sturen, en hiervoor heb ik een 9 volt batterij aangesloten.
Het is mij nog niet geheel duidelijk waar ik de push button moet plaatsen en hoe precies zodat hij de stroom pas doorlaat naar de servo motoren als de knop 1x is ingedrukt.

Het wordt een vaste sketch inderdaad zonder allerlei poespas. (voorlopig dan)

De servo motoren moeten tegelijk snel (vibereren) en met de druk op 1 knop starten en de indien mogelijk de zelfde knop ook stoppen.

Waar begin ik? :?


Nogmaals super bedankt voor je reactie ik ga het nog even nalezen.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Help! aan/uit Servo sg90

Berichtdoor shooter » 17 Sep 2019, 17:17

In een servo zit gewoon een DC motortje en een hoop tandwielen om het juist langzamer te kunnen maken.
Als je iets wilt laten trillen en het maakt niet uit wat de positie is, dan kun je gewoon kleine motortjes gebruiken,
een servo kun je niet uitzetten zoals jij bedoelt alleen stopzetten in een bepaalde positie want de spanning hoort erop te blijven staan net als het stuursignaal.
een slag bij een servo motor kost ongeveer 2 a 3 seconden.

Als voeding kun je beter een stekkervoeding gebruiken ipv batterij want die houden het maar heel even vol.
en je mag best schrijven servo (0)
servo 180 maar zo snel gaat het gewoon niet .
wat je wel kan doen is met een soort CAM schijf de trilling maken zo doen ze het in bijv de efteling om een beweging te maken.
we horen het wel
paul deelen
shooter@home.nl

Berichten: 4
Geregistreerd: 17 Sep 2019, 13:28

Re: Help! aan/uit Servo sg90

Berichtdoor Macthijs » 17 Sep 2019, 18:24

Wat me aansprak is juist de 180 graden op de servo, zodat hij naar links en rechts kan bewegen.

Als ik het goed begrijp kan je dus geen aan uit knop zetten tussen de servo motors? hmm dat is wel even een tegenvaller zeg.

Ik dacht er is vast wel een code dat je de void loop kan uitzetten en weer aanzetten met een knop.

Wat voor voeding zat je te denken(ivm voltage)? want misschien kan ik daar dan een aan/uit knop tussen zetten dat hij volledig de arduino uitzet.

Bedankt voor je reactie.

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

Re: Help! aan/uit Servo sg90

Berichtdoor Koepel » 17 Sep 2019, 19:29

trillen: gewoon motortje
bewegen: servo motor

Een servo motor gebruikt meer stroom dan je denkt.
Bij het beginnen van bewegen kan een servo motor 500mA trekken. En dat is voor een klein servo-motortje.

5V is prima voor servo motors, dus een voeding van 5V en een paar ampère heb je wel nodig.

Voor het aan- en uitzetten met één knop is een standaard voorbeeld: https://www.arduino.cc/en/Tutorial/StateChangeDetection.
Dat voorbeeld heeft de knop aan de 5V en de weerstand aan de GND. Wat ik eerder beschreef is net andersom.

Kun je beschrijven wat je idee van "stoppen" is ?
Mag het nog 2 seconden doorgaan ? of wil je meteen binnen 100 ms stoppen ?

Berichten: 4
Geregistreerd: 17 Sep 2019, 13:28

Re: Help! aan/uit Servo sg90

Berichtdoor Macthijs » 17 Sep 2019, 20:08

Dag bedankt weer voor je reactie,

natuurlijk mag het nog 2 seconden doorgaan, het is meer dat de gebruiker hem zelf aan en uit kan zetten (dat er een vertraging inzit is geen probleem).

Dus wat ik begrijp uit de link die je stuurde is, alles wat na de resistor komt wordt pas geactiveerd wanneer men de knop indrukt? en ze hebben het daar over LED kan ik dat dan vervangen door de servo code? (sorry als deze vragen super noob zijn) begin het nu pas allemaal beetje te begrijpen.

Bedankt zo ver weer :)

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Help! aan/uit Servo sg90

Berichtdoor shooter » 18 Sep 2019, 23:20

ja tuurlijk kun je een schakelaar gebruiken om het simpel te houden, gewoon in de voeding en dan begint alles gewoon van voor af aan.
de arduino blijft het programma toch onthouden.
het probleem is gewoon dat een servo altijd stroom gebruikt dus die moet je ook uitzetten.
paul deelen
shooter@home.nl

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 12 gasten