Doel:€250.00
Donaties:€130.00

Per saldo:€-120.00

Steun ons nu!

Laatst bijgewerkt
op 24-04-2024

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Raadplaatje door Modellbahnwagen
Vandaag om 15:21:54
Piko lok digitaal rijdt direct weg door Ronald Halma
Vandaag om 15:20:34
Ervaringen met veilingsites enzo (Marktplaats, Ebay, Catawiki, etc). door bask185
Vandaag om 15:09:09
Al mijn goede ideeën... door bask185
Vandaag om 14:52:20
Station Roodeschool door Ronald Halma
Vandaag om 14:40:57
Toon hier je pas gereed gekomen (model-)spoorbouwsels ... door Hans Reints
Vandaag om 14:34:08
NS 6000 (in schaal 0) door FritsT
Vandaag om 14:24:44
Gewoon wat busfoto's door mass am see
Vandaag om 14:19:56
BMB-Module: “Corfe Castle Station” door Hans van de Burgt
Vandaag om 14:14:55
Onlangs gespot - gefotografeerd, de foto's door mass am see
Vandaag om 14:07:41
18 t/m 21 april Intermodellbau '24 Dortmund door Ronald Halma
Vandaag om 13:47:16
Aachenau West door wob
Vandaag om 13:21:18
Modelbaan schaal H0 niet geheel sluiten in pc prog door MartinRT
Vandaag om 13:20:45
Frans/Belgisch H0e baantje door NS264
Vandaag om 12:57:17
hoe diep is de kuil van een 23 meter draaischijf door AlbertG
Vandaag om 12:10:11
US diorama in H0 door Wim Vink
Vandaag om 11:20:49
2nd Dutch US Convention, DRU Ulft NL 6/7 april 2024 door RBlok
Vandaag om 10:23:55
20 en 21 april MobExpo door Ronald Halma
Vandaag om 10:14:31
19 Toen door spoorzeven
Vandaag om 10:12:46
Cranicher Altbahn door Eric v C
Vandaag om 10:09:34
Pfarrerwinkel bahn door Eric v C
Vandaag om 09:59:38
Bruikbare etsplaten voor NS4000 en NS4700 tenders, en NS slijptrein? door 3dbuildr
Vandaag om 09:55:45
Ijzeren Rijn: militair transport door ijzeren rijn
Vandaag om 09:45:09
Kleine Baan in H0 (≤ 0.5m²) door spoorijzer
Vandaag om 09:35:37
Hengelo in 1981-1982, maar dan anders: Kassenberg in N door spoorijzer
Vandaag om 09:33:32
Bouw van postrijtuig P 7911-7920 (plan C) van FRIE door MathynK
24 april 2024, 23:15:58
Mijn eerste H0-modeltreinbaan in aanbouw door Frank 123
24 april 2024, 22:51:27
Der QuadratSchädel (Bemo br 624/634) door T.Spat
24 april 2024, 22:37:28
Ice 3 (22784) front/ sluit schakelt niet om door Bram.A
24 april 2024, 22:25:19
Bouwtekeningen Hembrug en/of Strausbrug door Erik01
24 april 2024, 21:31:41
  

Auteur Topic: De CanBus komt naar Kranenberg, Arduino's en de CanBus  (gelezen 60362 keer)

bask185

  • Offline Offline
  • Berichten: 4064
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #165 Gepost op: 15 juli 2023, 11:28:06 »
Waarom is myServo eigenlijk een pointer?
Train-Science.com
Train-Science github
It ain't rocket science ;-)

meino

  • Offline Offline
  • Berichten: 2105
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #166 Gepost op: 15 juli 2023, 13:04:47 »
Dag Bas

Ik geloof dat we daar al eens eerder een discussie over hebben gehad. Laat ik het houden op programmeerstijl en voorkeur.
Ik houd er van om met New objecten te maken. Dat heeft er mee te maken dat ik op die manier een onderscheid probeer te houden tussen primitieven zoals int, long etc en objecten, Verder kun je in een functie aanroep (in C en C++) alleen primitieven (int, long, pointers, etc) doorgeven maar niet een object. Dus wil je een object aan een functie doorgeven zal dat altijd in de vorm van een pointer moeten. Dus prefereer ik om zo vaak mogelijk met pointers te werken.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

reinderlf

  • Traintastic!
  • Offline Offline
  • Berichten: 59
    • traintastic.org
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #167 Gepost op: 15 juli 2023, 19:06:59 »
Hoi Meino,

Ook objecten die op de stack gemaakt zijn kun je ook doorgeven, dat kan op verschillende manieren in C++:

Object op de stack:
Object object;
1. Als referentie: void functie(Object& object); aanroepen als functie(object);
2. Als const referentie: void functie(const Object& object); aanroepen als functie(object);
3. Als pointer: void functie(Object* object); aanroepen als functie(&object);
4. Als const pointer: void functie(const Object* object); aanroepen als functie(&object);
5. Als kopie: void functie(Object object); aanroepen als functie(object);
6. Via move (r-value reference): void functie(Object&& object); aanroepen als functie(std::move(object));
Voor objecten die het hele programma leven is het handiger om ze als global (of static binnen een class) te declareren, groot voordeel is dat je tijdens het compileren weet of het in het geheugen past van de microcontroller.
Het nadeel van heap allocaties (via new) is dat je pas tijdens het draaien van je code weet of er genoeg geheugen is. De wat kleinere microcontrollers hebben vaak geen MMU (memory management unit), hier moet de compiler dan wat mee doen.

Een reference heeft over het algemeen de voorkeur t.o.v. een pointer, het voordeel van een reference is dat deze altijd geldig is :) Een pointer daarin tegen kan NULL zijn. (Wat dan wel weer handig kan zijn als de parameter optioneel is :))

Mocht je nog vragen hebben, let me know :)

Reinder

p.s. Het is niet betweterig bedoeld ;) Puur een stukje kennisdeling :)
« Laatst bewerkt op: 15 juli 2023, 19:15:19 door reinderlf »

meino

  • Offline Offline
  • Berichten: 2105
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #168 Gepost op: 15 juli 2023, 19:58:07 »
Dag Reinder

Bedankt voor je kennis. Ik moet eerlijk zijn, ik kom nog uit de old school (K&R) C tijd en houd zaken zo simpel mogelijk. Zoals het gezegde luidt "C provides all the rope to hang your self", daarom heb ik een hekel aan het gebruik van exotische constructies. Dus houdt ik het simpel en geef objecten als pointer door. Daarom was ik ook een grote fan van Java toen dat begin jaren 90 beschikbaar kwam, omdat dit sterk gestandaardiseerd was (objecten altijd by reference). Voor de liefhebbers raad ik de Obfuscated C competition aan

Groet Meino
« Laatst bewerkt op: 15 juli 2023, 20:00:26 door meino »
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

bask185

  • Offline Offline
  • Berichten: 4064
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #169 Gepost op: 17 juli 2023, 20:59:47 »
Ik geloof dat we daar al eens eerder een discussie over hebben gehad
Nou je het zegt.. begint bij mij ook een belletje rinkelen. Straal vergeten  :-X No further questions  :P
Train-Science.com
Train-Science github
It ain't rocket science ;-)

Reinout van Rees

  • Team forummoderators
  • Offline Offline
  • Berichten: 7402
  • Forummoderator
    • Persoonlijke website + weblog
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #170 Gepost op: 15 augustus 2023, 22:54:26 »
Wat voorbeeldcode is altijd handig, bedankt.
Wat me opviel is dat je de servopin voor/na de beweging aan/uit zet, tenminste als ik goed genoeg keek. Dat werkt bij jou in de praktijk goed, kennelijk? Ik laat bij mij de pin continu actief, ik dacht dat dat bij servo's de bedoeling was. Bij mij gaat het om twee wissels, dat is misschien ook wat anders dan een seinpaal omdat een wissel echt netjes in positie gehouden moet worden?

(Over een paar maanden ga ik denk ik weer eens wat klussen, ik heb de arduino's al 7 jaar niet meer aangeraakt... Met te lange draden jitteren ze af en toe een beetje. Vandaar dat ik ook wat aan pin aan/uit zit te denken. Beter probleem v/d lengte bij de bron oplossen, maar goed :) )

Reinout
Bouw v/d EifelBurgenBahn (h0, zijlijn in de Eifel)
Eifelgeschiedenis (verhalen en video's over de Eifelburgenbahn)

bask185

  • Offline Offline
  • Berichten: 4064
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #171 Gepost op: 16 augustus 2023, 09:25:44 »
Citaat
Dat werkt bij jou in de praktijk goed
Niet alleen bij Meino. Voor wissels is het vrij gebruikelijk om de servo's af te schakelen. Ik had het probleem dat ze of niet ver genoeg doordrukten of ze drukten te ver door en gingen brommen (met risico op doorbranden). En uiteraard iets van een verend iets gebruiken. Als een servo uit staat, heeft hij zoveel wrijving dat ze bij onze wissels wel willen blijven staan.

Citaat
et te lange draden jitteren ze af en toe een beetje
Als je ze uit zet en er komt een trein voorbij, dan zal je zien dat ze heel ver gaan uitzwiepen. Dat kan je idd door kortere kabels oplossen. Meino hier gebruikt shielded kabels maar ik weet niet welke. Ik heb volgens mij ook ergens gelezen dat je om je kabels aluminium folie kan wikkelen. Een pull-up weerstand van een niet te hoge waarden zoals 4k7 dicht op de servo motor lost ook veel op. Die zorgt er ook voor dat de servo niet dat kleine schokje geeft wanneer je de spanning er op zet.

[offtopic]
Ik heb hiervoor een servoSweep class geklopt die de servo langzaam beweegt, die optioneel een punstuk relais kan aansturen halverwege de slag en die gebruik kan maken EEPROM om de standen inleerbaar te maken en hij kan ook onthouden wat de servo stand is. Met die pull-up weerstand in plek, blijft de servo gewoon op zijn plek bij opstarten en hij weet dan ook waar hij is.
[/offtopic]

Mvg,

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

meino

  • Offline Offline
  • Berichten: 2105
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #172 Gepost op: 16 augustus 2023, 11:02:04 »
Ja ik schakel de servo's af als ze de eindstand bereikt hebben. Dit om jitter en brom te voorkomen. Wat ik wel doe, is dat een servo die in een eindstand staaat, periodiek (zeg na 10-30sec) even actief maak en opnieuw naar de geldende eindstand zet. Mocht een servo toch iets van plaats zijn veranderd dan wordt dat daardoor gecorrigeerd.
Verder had ik met een paar servo's problemen door lange signaal kabels die pulsjes oppikten. Die draden heb ik vervangen door afgeschermd signaaldraad. Hierna geen problemen meer gehad.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

Reinout van Rees

  • Team forummoderators
  • Offline Offline
  • Berichten: 7402
  • Forummoderator
    • Persoonlijke website + weblog
Re: De CanBus komt naar Kranenberg, Arduino's en de CanBus
« Reactie #173 Gepost op: 16 augustus 2023, 16:19:51 »
Bedankt voor de tips  (y)

Reinout
Bouw v/d EifelBurgenBahn (h0, zijlijn in de Eifel)
Eifelgeschiedenis (verhalen en video's over de Eifelburgenbahn)