Doel:€250.00
Donaties:€88.00

Per saldo:€-162.00

Steun ons nu!

Laatst bijgewerkt
op 03-06-2025

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Schroefkoppeling voor H0. door Eric B
Vandaag om 22:13:43
Had de NS4903 rangeerlicht? door ruudns
Vandaag om 22:07:06
viessmann 4500 door Kees van der knijff
Vandaag om 21:46:44
Rondom Charlois door hervé
Vandaag om 21:44:08
mDDM, waarom 3 draaistellen? door Edwin2121992
Vandaag om 21:21:33
Die Sauerlandbahn - Tijdperk III door basjuh1981
Vandaag om 20:44:22
De bouw van station Laarbeek H0 door cor_b
Vandaag om 20:42:04
Ervaringen met veilingsites enzo (Marktplaats, Ebay, Catawiki, etc). door bask185
Vandaag om 20:27:24
TAMS PZS-2.2 door Ronald Halma
Vandaag om 20:24:29
Bouw NTM Stationsgebouw Lemmer door orientexpress
Vandaag om 20:19:40
Diorama Oelde Mittelweg Hp door neudalhausenstadbahn
Vandaag om 19:58:42
Eurostar in brand door Arjan6511
Vandaag om 19:29:41
Project seaside Germany door Ronald Halma
Vandaag om 19:26:57
Raadplaatje door grossraumwagen
Vandaag om 19:08:37
Bouw van tijdperk 1 HSM en SS rijtuigen door orientexpress
Vandaag om 19:08:30
Tips voor een natuurgetrouwe modelbaan door GerardvV
Vandaag om 18:58:42
Roco modellen op aliexpress door maartenvdb
Vandaag om 18:30:57
Toon hier je nieuwe (model-) spooraanwinst(en)... door Rob Ellerman
Vandaag om 18:23:28
De overeenkomst tussen een Ovaalramer en een Motorpost. door Kees-Jan
Vandaag om 18:13:22
0n30 diorama: Sedona Verde River Canyon door Hans1963
Vandaag om 17:45:49
1865/68 aanleg kreekrakdam Bergen op Zoom / goes. door Mar-Cas
Vandaag om 17:43:54
Randstadrail viaduct Prins Bernhardlaan door Miniature Holland
Vandaag om 17:25:26
Randstadrail halte Voorburg ‘t Loo door Miniature Holland
Vandaag om 17:19:21
sein decoder Z21 10837 programeren door kar
Vandaag om 16:15:32
Bahnstrecke 5867 door Frank 123
Vandaag om 15:50:54
Da's Daz 2 door Huup
Vandaag om 15:33:01
Z21 Pro Link en Wifi door n-driver
Vandaag om 14:40:38
Duits transport, waar in NL? door grossraumwagen
Vandaag om 14:30:44
Mijn eerste H0-modeltreinbaan in aanbouw door Jelmer
Vandaag om 13:21:35
Korneschans. Een fictief Duits Nederlands grensstation. door Jelmer
Vandaag om 13:13:20
  

Auteur Topic: Arduino, aansturen servo’s voor deuren lokloods werkt niet.  (gelezen 7947 keer)

bask185

  • Offline Offline
  • Berichten: 5105
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #30 Gepost op: 26 May 2021, 13:07:19 »
Zou die potmeter niet tijdelijk zijn om een beetje de feeling van servo's te krijgen? Het lijkt mij, dat als je de bediening onder de knie heb, dat je dan de deuren met een schakelaartje om wilt kunnen zetten of kan toggelen met een knopje ofzo. Maar daarvoor moeten we op Jerry's antwoord wachten.

Bas
Train-Science.com
Train-Science github
It ain't rocket science ;-)

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #31 Gepost op: 26 May 2021, 15:09:05 »
Zeker weten deed ik het ook niet...
Je hebt gelijk, blijkbaar 'snapt' de Arduino dat als je een analogRead doet, dat ook altijd op een analoge pin is en analogRead (0) wordt gecompileerd als analogRead (A0)
Citaat
Ik zou ook adviseren om gewoon A0 te gebruiken. Veel duidelijker.
Ja, mee eens.
El Carrilet
"te dom om te poepen"
MH

MOVisser

  • Offline Offline
  • Berichten: 7386
    • Modelbouw in't algemeen. 3D printen etc..
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #32 Gepost op: 26 May 2021, 15:31:45 »
Start met het maken van een juist schema.
Maak de voedingen naar de servo’s apart van de voeding naar de arduino.
Maak de servo/servo’s pas vast aan de deur/deuren als deze juist is/zijn ingesteld (op de locatie van 0, is de beginstand)
Plaats de potmeters op een vaste plaats evenals de arduino (na uploaden van de sketch.)
Bedenk hoe snel je de servo wil laten draaien, of gewoon met de knop mee bewegend.


Schema van de aansluiting van 1 servo direct op arduino
Geel geeft het signaal naar de servo.  Rood en zwart zijn de voeding.




Schema van de aansluiting van 1 servo direct op arduino
Geel geeft het signaal naar de servo.  Rood en zwart zijn de voeding. 
De sketch leest de waarde van de potmeter blauw en geeft dat door via de gele draad.





Voeding voor 3 servo’s niet doen vanuit de arduino, maar apart.
Aansluiten servo’s  op pin 9, 10 en 11. 
De middelste aansluiting potmeter ( 10.000  Ohm) op A0, A1 en A2.



Werking: Sketch leest af de waarde aan pin A0, A1 en A2.
Draai je de pot. naar links dan is de waarde geheel + (= 5V), geheel naar rechts is – (= 0V).
Daarmee bepaal je de stand van de servo.

PAS OP:  de waarden val1, val2 en val3 zijn 0 in het begin>> servo stelt zich in op de beginstand
(zie ook de eerdere opmerking) dus op stand 0 van de servo zijn of deuren open of deuren dicht.

Schrijf je sketch en upload deze naar de arduino (deze is getest en werkt)

#include <Servo.h>
Servo myservo1;
Servo myservo2;
Servo myservo3;
int potpin1=A0;
int potpin2=A1;
int potpin3=A2;
int val1=0;
int val2=0;
int val3=0;

void setup()
{
myservo1.attach(9);
myservo2.attach(10);
myservo3.attach(11);
}
void loop()
{
val1 = analogRead(potpin1);
val1 = map(val1, 0, 1023, 0, 180);
myservo1.write(val1);
delay(25);
val2 = analogRead(potpin2);
val2 = map(val2, 0, 1023, 0, 180);
myservo2.write(val2);
delay(25);
val3 = analogRead(potpin3);
val3 = map(val3, 0, 1023, 0, 180);
myservo3.write(val3);
delay(25);
}

Ronald Visser

EDIT:
wellicht handig om na het stoppen van het "spel" de potmeters op de 0 stand te zetten.
Om dan de eerst volgende keer weer vanuit de basis stand te starten
« Laatst bewerkt op: 26 May 2021, 15:47:42 door MOVisser »
Je kunt me vinden op diverse treinenbeurzen. Zaterdag 15 november ben ik weer in Houten.

Fritsprt

  • Offline Offline
  • Berichten: 2611
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #33 Gepost op: 26 May 2021, 15:41:55 »
Voor de volledigheid:
Citaat
Voeding voor 3 servo’s niet doen vanuit de arduino, maar apart.

Denk er dan wel aan om de massa's (min, 0V) van de Arduino voeding en de servo voeding met elkaar te verbinden.



Gr. Frits
Groet Frits

MOVisser

  • Offline Offline
  • Berichten: 7386
    • Modelbouw in't algemeen. 3D printen etc..
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #34 Gepost op: 26 May 2021, 15:48:55 »
Is volgens mij niet nodig, maar zou kunnen.
Altijd goed. (y)

Ronald Visser
Je kunt me vinden op diverse treinenbeurzen. Zaterdag 15 november ben ik weer in Houten.

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #35 Gepost op: 26 May 2021, 15:50:35 »
PAS OP:  de waarden val1, val2 en val3 zijn 0 in het begin>> servo stelt zich in op de beginstand
Nee, de beginwaarden van val1, val2 en val3 worden meteen overschreven met de analogRead.

Citaat
Schrijf je sketch en upload deze naar de arduino (deze is getest en werkt)
zet code tussen codetags;
#include <Servo.h>
Servo myservo1;
Servo myservo2;
Servo myservo3;
int potpin1=A0;
int potpin2=A1;
int potpin3=A2;
int val1=0;
int val2=0;
int val3=0;

void setup()
{
myservo1.attach(9);
myservo2.attach(10);
myservo3.attach(11);
}
void loop()
{
val1 = analogRead(potpin1);
val1 = map(val1, 0, 1023, 0, 180);
myservo1.write(val1);
delay(25);
val2 = analogRead(potpin2);
val2 = map(val2, 0, 1023, 0, 180);
myservo2.write(val2);
delay(25);
val3 = analogRead(potpin3);
val3 = map(val3, 0, 1023, 0, 180);
myservo3.write(val3);
delay(25);
}
El Carrilet
"te dom om te poepen"
MH

jerrytrein

  • Offline Offline
  • Berichten: 5935
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #36 Gepost op: 26 May 2021, 16:56:05 »
@Sonett Mo Visser en Frits
Ik heb aangesloten als de 3e van mo
Tijdens het vergelijken met Mo zijn schets zie ik wel een aantal verschillen
val zie ik al het verschil in het aangeven van de pinnen,Ao ipv 0

Heb ik een leken vraag
analoog read snap ik lees de pin
write snap ik ook nog
VAL is dat de waarde of zie ik dat verkeerd
Ik probeer het en beetje te doorgronden

Ik denk weer een beetje aan LOTUS van vroeger
kan je niet vergelijken ,maar daar moest je ook op de haakjes tags en komma's letten
En ik begrijp uit het bovenstaande van jullie ,dat als de pot meters niet op 0 staan bij starten de werking anders wordt
klopt dat

bask185

  • Offline Offline
  • Berichten: 5105
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #37 Gepost op: 26 May 2021, 17:10:07 »
val is idd de waarde. analogRead() retourneert een waarde en die waarde wordt in val opgeslagen. Deze waarde ligt ergens tussen de 0 en 1023.

Die map functie schaalt dat om naar 0 tot 90 voor het gebruik voor je servo motors.

Er is trouwens nog een interessant feitje. Het is wel degelijk nodig dat er tenminste 1 delay (of andere manier van timing) in de loop staat. Ik weet van de atmel chips het fijne er niet van, maar bij een analoge meting zijn vaak interrupts betrokken. En als je in je loop continu analogRead te snel aanroept zonder iets van een delay, kan je programma vast lopen. Ik denk dat de kerel van de instructable, daarom kleine delays heeft geplaats tussen de metingen. Een analogRead duurt 100 micro seconde.

Bovendien is het ook een beetje puntloos om zoveel metingen en servo updates te doen per seconde. Als je je potmeters 10x per seconde in leest dan zit je ook wel goed.

Mvg,

Bas
Train-Science.com
Train-Science github
It ain't rocket science ;-)

Fritsprt

  • Offline Offline
  • Berichten: 2611
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #38 Gepost op: 26 May 2021, 17:12:54 »
Ik heb aangesloten als de 3e van mo

Dan gaat je servo nooit draaien. De stuurpuls zweeft immers t.o.v. massa. Je moet altijd de massa's (van de twee voedingen) met elkaar verbinden.

Gr. Frits
Groet Frits

MOVisser

  • Offline Offline
  • Berichten: 7386
    • Modelbouw in't algemeen. 3D printen etc..
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #39 Gepost op: 26 May 2021, 17:30:25 »
Het advies blijft de de beginstand te eerbiedigen.
Dus op 0 eindigen en op 0 starten.
(y) (y)

Dus de servo van te voren in de 0 stand zetten. Dan vastmaken aan de deur.

Er staat A0 en niet Ao  Let dus goed op...

Ja, lees de waarde VAL.    intval1=0 etc.  de integer val1 wordt gedefinieerd en gelijk op een waarde gezet :  0

Mijn ervaring is wat 72sonett zegt. Maar weet Arduino dat ook??
Echter je kan beter fouten voorkomen dan ze mogelijk introduceren.
Dus zet de potmeter aan het eind op de beginstand.
De technici zijn naar huis en de deuren van de loodsen zijn gesloten.

Citaat
"Die map functie schaalt dat om naar 0 tot 90 voor het gebruik voor je servo motors".
nee 0 tot 1023  wordt omgeschaald naar 0 tot 180 (in dit geval in de sketch).

Ronald Visser
« Laatst bewerkt op: 26 May 2021, 17:36:51 door MOVisser »
Je kunt me vinden op diverse treinenbeurzen. Zaterdag 15 november ben ik weer in Houten.

jerrytrein

  • Offline Offline
  • Berichten: 5935
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #40 Gepost op: 26 May 2021, 18:11:37 »
 (y) (y) (y) (y)
Het werkt
Nog een klein ding/vraagje
De pot meters (ze werken anders om als gedacht)
Maar deze werken dus tot ongeveer de helft van de draaing van de potmeter
Kan je dit met VAL  = MAP aanpassen

En de voeding van de NANO gaat nu via een usb
Als ik een voeding gebruik ,moet ik dan de VIN gebruiken en de ground (mijn gedachte Volt IN gang
« Laatst bewerkt op: 26 May 2021, 18:13:55 door jerrytrein »

bask185

  • Offline Offline
  • Berichten: 5105
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #41 Gepost op: 26 May 2021, 18:17:12 »

nee 0 tot 1023  wordt omgeschaald naar 0 tot 180 (in dit geval in de sketch
wellus* want Jerry heeft als eis gesteld dat de motors maar 90 graden hoeven te draaien. Vandaar de 90  :P

Als je wilt dat ze andersom werken kan je de 0 en de 90 omwisselen in de map functie. Dus
Val = map( val, 0, 1023, 90, 0 ) ;

Ben iig blij dat het werkt   (y)

Bas
Train-Science.com
Train-Science github
It ain't rocket science ;-)

MOVisser

  • Offline Offline
  • Berichten: 7386
    • Modelbouw in't algemeen. 3D printen etc..
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #42 Gepost op: 26 May 2021, 18:42:03 »
Het werkt.  (y)
Ik sluit af.

Ronald Visser
Je kunt me vinden op diverse treinenbeurzen. Zaterdag 15 november ben ik weer in Houten.

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: Arduino, aansturen servo’s voor deuren lokloods werkt.
« Reactie #43 Gepost op: 26 May 2021, 18:47:15 »
(y) (y) (y) (y)
Het werkt
Dat is mooi!
Citaat
Nog een klein ding/vraagje. De potmeters (ze werken andersom als gedacht)
Dan kun je de + en - aansluitingen van de potmeter omwisselen.

Citaat
Maar deze werken dus tot ongeveer de helft van de draaing van de potmeter
Dat zou niet moeten.

Citaat
En de voeding van de NANO gaat nu via een usb. Als ik een voeding gebruik, moet ik dan de VIN gebruiken en de ground (mijn gedachte Volt IN gang

Op Vin sluit je 12 V= aan, de 5 V wordt dan een uitgang.
USB geeft 5 V, kun je aansluiten op de 5 V van de Arduino (dat wordt dan een ingang). De 5 V (als uitgang) van de Arduino moet je niet gebruiken voor de servo's, die trekken te veel stroom met kans op defecte spanningsregelaar in de Arduino of inzakken van de 5V spanning waardoor de Arduino uitvalt of reset.

De variabele 'Val' is niet nodig.
Als je ergens komma's of haakjes e.d. vergeet, krijg je vanzelf een compileerfout.
Citaat
... als de potmeters niet op 0 staan bij starten de werking anders wordt
Nee, de werking blijft precies hetzelfde. Bij inschakelen draaien de servo's/deuren naar de stand die de potmeters aangeven, of dat 0 (nul) is of wat anders maakt niet uit.

Nog een keer de code, met logische nummers;
#include <Servo.h>
Servo myservo1;
Servo myservo2;
Servo myservo3;

const int potpin1 = A1;   // analoge 'IN' pinnen om potmeters in te lezen
const int potpin2 = A2;
const int potpin3 = A3;

const int servopin1 = 11; // digitale 'OUT' pinnen voor servo's
const int servopin2 = 12;
const int servopin3 = 13;

// -------------------
void setup() {
  pinMode(potpin1,INPUT);  // maak potmeterpinnen invoer
  pinMode(potpin2,INPUT);
  pinMode(potpin3,INPUT);
 
  pinMode(servopin1,OUTPUT); // maak servopinnen uitvoer
  pinMode(servopin2,OUTPUT);
  pinMode(servopin3,OUTPUT);
 
  myservo1.attach(servopin1); // koppel servo's aan I/O pinnen
  myservo2.attach(servopin2);
  myservo3.attach(servopin3);
}
// ------------------
void loop() {
 
// in één regel per servo;
//   lees potmeterwaarde 0..1023,
//   verschaal naar hoek 0..90 graden (je kunt van die 90 ook een constante maken),
//   stuur hoek naar servo

  // voor servo 1
  myservo1.write(map(analogRead(potpin1),0,1023,0,90));
  delay (50);              // omdat bask185 het zegt

  // voor servo 2
  myservo2.write(map(analogRead(potpin2),0,1023,0,90));
  delay(50);

  // voor servo 3
  myservo3.write(map(analogRead(potpin3),0,1023,0,90));
  delay(50);
}
« Laatst bewerkt op: 27 May 2021, 18:14:37 door 72sonett »
El Carrilet
"te dom om te poepen"
MH

jerrytrein

  • Offline Offline
  • Berichten: 5935
Re: Arduino, aansturen servo’s voor deuren lokloods werkt niet.
« Reactie #44 Gepost op: 26 May 2021, 20:24:30 »
Dus een lader van 9 of 12 volt als voeding kan op de VIN en gnd worden aangesloten