Servo regelen met reed schakelaar

Arduino specifieke Software
Berichten: 17
Geregistreerd: 24 Jan 2020, 22:48

Re: Servo regelen met reed schakelaar

Berichtdoor PeterC » 16 Feb 2020, 22:30

Heren,
Ik heb inmiddels in een andere Arduino het programma geïnstalleerd en nu werkt het naar behoren. Er zal denk ik wel iets met de andere Arduino gebeurd zijn denk waardoor deze met dit programma niet goed meer werkt.
Shooter, is de 12 volt een probleem, is het beter om een wat lagere stroom te gebruiken? Het schema krijg ik niet als bijlage erbij maar de reed schakelaars schakelen naar aarde.

PeterC

Advertisement

Gebruikers-avatar
Berichten: 421
Geregistreerd: 15 Nov 2015, 11:54

Re: Servo regelen met reed schakelaar

Berichtdoor Gij Kieken » 16 Feb 2020, 23:27

Beter is om 8 a 9 volt dc te gebruiken ,dat is een paar watt minder verstoken.
Het hangt er een beetje vanaf wat nog allemaal van verbruikers is aangesloten.
Jouw servo zit toch op een aparte voeding niet de 5volt uit de Arduino ?

Berichten: 17
Geregistreerd: 24 Jan 2020, 22:48

Re: Servo regelen met reed schakelaar

Berichtdoor PeterC » 18 Feb 2020, 22:23

Prima, ik ga een 9 Volt voeding gebruiken. Deze voeding wordt ook voor de servo's gebruikt middels een stepdown schakeling naar 5 volt. Dus ik gebruik niet de 5 volt van de Arduino. Op de treinbaan worden Ptt relais gebruikt welke geschakeld worden met 30 volt gelijkstroom. Nu gebeurd het dat bij het afschakelen de servo hierop reageert, daar moeten we nog een oplossing voor bedenken. Ik heb al een poging gedaan om een diode over het relais te zetten maar dat gaf geen verbetering.

PeterC

Gebruikers-avatar
Berichten: 421
Geregistreerd: 15 Nov 2015, 11:54

Re: Servo regelen met reed schakelaar

Berichtdoor Gij Kieken » 18 Feb 2020, 22:49

Snellere dioden gebruiken en tantaal condensator op de voedingslijnen plaatsen, goed afschermen ,aarden en methode van verwijdering(proberen de afstand tussen de stoorbron en de schakeling te vergroten).

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

Re: Servo regelen met reed schakelaar

Berichtdoor shooter » 19 Feb 2020, 10:04

Het zou handig zijn als je een electrisch schema maakt, want een dergelijk eenvoudige opstelling zou toch storingsvrij moeten werken.
Tuurlijk zijn servo behoorlijk gevoelig want het zijn tijdgeschakelde dingen. je zou voor de prijs misschien wel de servos slopen en alleen de aandrijving gebruiken.
maar ik heb nog wel een doos vol met stappenmotoren staan.
paul deelen
shooter@home.nl

Berichten: 17
Geregistreerd: 24 Jan 2020, 22:48

Re: Servo regelen met reed schakelaar

Berichtdoor PeterC » 19 Feb 2020, 18:02

Ik heb een eenvoudig schema gemaakt maar hoe kan ik deze hier plaatsen?

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

Re: Servo regelen met reed schakelaar

Berichtdoor shooter » 25 Feb 2020, 13:59

plaats een reactie en onderaan vind je dan vanzelf een bijlage toevoegen.
paul deelen
shooter@home.nl

Berichten: 17
Geregistreerd: 24 Jan 2020, 22:48

Re: Servo regelen met reed schakelaar

Berichtdoor PeterC » 04 Mrt 2020, 22:06

Mede met wat hulp is het gelukt om de servo tot rust te houden. Ook is het mij eindelijk gelukt om het schema hier te plaatsen. Ik wilde de oplossing graag aan jullie mededelen. Hopelijk is deze duidelijk genoeg. De 2 stepdowns schakelingen zitten er omdat de trafo 12V is
Reedschakeling.jpg
Reedschakeling.jpg (21.33 KiB) 382 keer bekeken
.
Ik bedank een ieder voor de reacties en het meedenken.

PeterC

Reedschakeling.jpg
Reedschakeling.jpg (21.33 KiB) 382 keer bekeken

Berichten: 17
Geregistreerd: 24 Jan 2020, 22:48

Re: Servo regelen met reed schakelaar

Berichtdoor PeterC » 04 Mrt 2020, 22:07

Sorry, de tekening 2 keer geplaatst.

PeterC

Berichten: 17
Geregistreerd: 24 Jan 2020, 22:48

Re: Servo regelen met reed schakelaar

Berichtdoor PeterC » 13 Mrt 2020, 16:40

Heren,
Ik heb toch nog even een vraag. Omdat er zonder computer gereden wordt en het toch wel prettig is om het geluid harder of zachter te laten klinken dacht ik dit op te lossen door middel van een if constructie. Na de nodige experimenten dacht ik het gevonden te hebben maar ik ben niet helemaal tevreden. Ik heb in het programma 3 lussen gemaakt, weet niet of de benaming goed is, maar in de eerste lus gaat alles goed. In de 2e gaat de eerste opdracht ook goed echter bij het terug lopen lijkt het net of de servo toch naar een andere beginstand springt om vervolgens netjes terug te lopen. Dit gebeurd ook bij de 3e lus.
Graag jullie advies hierin.
Hierbij het programma wat ik nu gemaakt heb.

PeterC

Code: Alles selecteren


#include <Servo.h>

const int LeftbuttonPin = 2;
const int RightbuttonPin = 4;

int KeuzePin1 = 5;
int KeuzePin2 = 6;
int KeuzePin3 = 7;
int KeuzePin1State = 0;
int KeuzePin2State = 0;
int KeuzePin3State = 0;

int LeftbuttonState = 0;
int RightbuttonState = 0;
int pos = 15; // Staat normaal op 0, dit geeft een rustiger start.

Servo myservo;

void setup() {
  Serial.begin(9600);
 
  myservo.attach(9);
  pinMode(KeuzePin1, INPUT);
  pinMode(KeuzePin2, INPUT);
  pinMode(KeuzePin3, INPUT);
 
  pinMode(LeftbuttonPin, INPUT_PULLUP);
  pinMode(RightbuttonPin, INPUT_PULLUP);
   myservo.write(pos); // Neemt de int pos positie aan.
}

void loop() {

  LeftbuttonState = digitalRead(LeftbuttonPin);
  //Serial.println(LeftbuttonState);
  RightbuttonState = digitalRead(RightbuttonPin);
  //Serial.println(RightbuttonState);
  KeuzePin1State = digitalRead(KeuzePin1);
  //Serial.println(KeuzePin1State);
  KeuzePin2State = digitalRead(KeuzePin2);
  //Serial.println(KeuzePin2State);
  KeuzePin3State = digitalRead(KeuzePin3);
  //Serial.println(KeuzePin3State);
  if ((KeuzePin1State == HIGH) && (LeftbuttonState == LOW))
  {
     for (pos = 15; pos <= 60; pos += 1) // is gelijk aan de int pos bij setup
     {
          myservo.write(pos);
    delay(100);
  }
  }   else { 
     if (RightbuttonState == LOW)  {
      for (pos = 60; pos >=15; pos -=1) //Dit gaat goed.
     {
      myservo.write(pos);
    delay(70);
  }
   
     } else  {
    if ((KeuzePin2State == HIGH) && (LeftbuttonState == LOW)) // dit gaat ook goed
    {
      for (pos = 15; pos <= 70; pos += 1)
      {
       myservo.write(pos);
      delay(100);
  }
     }  else {
     
  if (RightbuttonState == LOW)  {
   for (pos = 70; pos >= 15; pos -= 1) //hier verspringt de servo iets en
                                       // gaat dan naar eindstand(15).
     {
      myservo.write(pos);
     delay(70);
 }
  } else {
   
   if (KeuzePin3State == HIGH and LeftbuttonState == LOW)
   //if (LeftbuttonState == LOW)
  {
   for (pos = 15; pos <= 51; pos += 1)
   {
   myservo.write(pos);
    delay(100);
    }
  }    else  {
   
      if (RightbuttonState == LOW) // hier verspringt de servo iets en
                                   // gaat dan naar eindstand(15).
      {
        for (pos = 51; pos >=15; pos -=1)
             {
    myservo.write(pos);
   delay(70);
 }
}
}
}
}
}
  }
}




 
 

VorigeVolgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast