Waar zijn we nu mee bezig ? Microcontrollers

Gestart door ToThePoint, 13 januari 2012, 10:27:28 AM

conducteur

Eerst m'n eigenbouw voeding afwerken, en dan servo's testen. Erg moeilijk kan dat niet zijn, maar voornamelijk µs delay programmeren lijkt me met mijn 0-kennis van C in flowcode moeilijk (flowcode ondersteund delays van (milli)seconden). Ga eens moeten uitzoeken hoe dat moet. Ik geloof dat je blokjes eigen geschreven C-code kunt invoeren. Wat is het commando dan?
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

PeterC

Citaat van: conducteur op 02 mei 2013, 22:41:02 PM
...en dan servo's testen. Erg moeilijk kan dat niet zijn...

Let op!  Servo's zijn ondertussen al 'vintage' elektronica (de interne sturing is nog steeds dezelfde als die van +30 jaar geleden) en ik vergelijk ze dan ook graag met ervaren vrouwen: ze kunnen verdomd nukkig zijn   ::) ::) ::)

Flowcode: geen enkele ervaring mee...
Groetjes, Peter


eve

Citaat van: conducteur op 02 mei 2013, 22:41:02 PM
Eerst m'n eigenbouw voeding afwerken, en dan servo's testen. Erg moeilijk kan dat niet zijn, maar voornamelijk µs delay programmeren lijkt me met mijn 0-kennis van C in flowcode moeilijk (flowcode ondersteund delays van (milli)seconden). Ga eens moeten uitzoeken hoe dat moet. Ik geloof dat je blokjes eigen geschreven C-code kunt invoeren. Wat is het commando dan?

Ik heb in C (later C++) geprogrammeerd en kan me herinneren dat ms-tijden accuraat meten niet zo simpel was...
Daarom een vraag : heb je echt een resolutie nodig die beter is dan ms ?

Erik

Ik ben maandag terug thuis en zal eens kijken : ik heb nog een volle doos C materiaal. Boeken ed. die ik toch niet meer gebruik. Kiala ?


Geert

Wil je een servo met een µC aansturen dat deze redelijk vloeiend overgaat, dan werk je met tijden met een resolutie van +-10µs. Nog kleiner kan ook maar dan kom je al dicht in de buurt van de instructietijd van de µC.  (als je werkt met de interne RC kring voor de klokfrequentie) je moet eigenlijk optimaal gebruik maken van de interne timers en de interrups. Dan werk je best in assembler (machinetaal) of een programmeertaal die speciaal ontworpen is voor die µC, zoals JAL en HI-TECH C  voor PIC µC.


@Peter: Hoe reageert de servo als je de voedingsspaning op heel de schakeling zet?
en hoe reageert de servo als je over de servo voedingspanning (in jou geval massa) zet?

en bijkomend, onthoud de µC na spanningsuitschakeling te laatste stand van de servo?


daar ben ik wel benieuwd naar.


Ik heb eens naar de HEX code gekeken van je µC program, maar daar geraak ik niet aan uit  :)

Geert

Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

PeterC

Citaat van: Geert op 03 mei 2013, 11:16:19 AM
Hoe reageert de servo als je de voedingsspaning op heel de schakeling zet?

Bij het inschakelen van de voeding hoor ik een beetje gezoem in de servo (geen bruuske bewegingen!).


Citaat van: Geert op 03 mei 2013, 11:16:19 AM
hoe reageert de servo als je over de servo voedingspanning (in jou geval massa) zet?

Daarvoor zou ik de transistor moeten overbruggen, nog niet gedaan.

Citaat van: Geert op 03 mei 2013, 11:16:19 AM
en bijkomend, onthoud de µC na spanningsuitschakeling te laatste stand van de servo?

Ik vermoed van niet: na het uitschakelen van de voeding de servo manueel verdraaid en dan terug voeding aan: servo blijft op de manueel gedraaide positie staan.

Citaat van: Geert op 03 mei 2013, 11:16:19 AM
Ik heb eens naar de HEX code gekeken van je µC program, maar daar geraak ik niet aan uit  :)

:) :) :)

Je moet wel eens goed zoeken op de site van Sven Brandt, maar alles is er te vinden.  Zelf de source in ASM:
http://www.digital-bahn.de/develop/source.htm
Gedaan met warm water uitvinden  ;).

Groetjes, Peter


eve

Ik geef Geert 100% gelijk.
Er is een verschil tussen tijd nauwkeurig meten en het sturen van een puls...
Dit laatste kan veel korter zijn.

Erik

Geert

ASM codes gevonden, het is uit zulke codes dat ik leren programmeren heb en nog steeds bijleer. :)

bedankt,

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

Sattrickske

Ben net van forum verhuisd en zie net dit topic.
Voor diegenen die het interesseert, ik heb al m'n C-rail wissels uitgerust met goedkope servo motoren, deze zijn veel betrouwbaarder dan de originele solenoide aandrijvingen.  Met één PIC 16F628 stuur ik 8 servos aan.  Ik laat de wissels in een vloeiende beweging (ong. 1.5 à 2 seconden) overgaan.  Ik gebruik hiervoor voornamelijk timer interrupts.
Hieronder het zelfgemaakte printje dat ik gebruik om m'n servos aan te sturen (links op de foto):

PeterC

#383
Ondertussen al de weg gevonden  ;)


En zitten 'priemelen' met SMD'kes.  Ik pas  :o :o :o

Projectbeschrijving?  We hebben hier nogal graag 'uitgebreide beschrijvingen' (lees broncodes  ;) ).

Groetjes, Peter


Sattrickske

Kan je ook met gewone componenten hoor!
Elektronisch schema:


De bron code in C wou ik als bijlage toevoegen, maar 'k krijg steeds volgende melding:
"De uploadmap zit vol. Probeer een kleiner bestand te uploaden en/of stel de beheerder op de hoogte."

Hoe kan ik bestanden opladen (het C bestandje is 8Kb)?

PeterC

Groetjes, Peter


Sattrickske


PeterC

Patrick,

Je schema een grondig bekeken: de voeding van de servo's is gemeenschappelijk met die van je PIC: wat met van die 'nukkige' servo's die enorme bokkesprongen maken als ze hun puls en spanning gelijktijdig krijgen?

We zijn met een paar mensen (op dit forum) voorstander van 'voeding-van-de-servo-via-transistor-schakelen'.  Graag jou ervaringen/mening.

Groetjes, Peter


Sattrickske

Die worden meteen door de PIC terug op hun plaats gebracht...
Elke positiewissel wordt in de EEPROM opgeslagen en bij het opstarten van de hele handel gaan de servos effe alle kanten uit.  Maar de PIC brengt ze meteen terug naar hun vorige toestand.  Dat heeft meteen als voordeel dat je baan altijd terug in de toestand komt te staan als wanneer je de stroom uitgeschakeld hebt.

Dat servos effe wild springen kan bij mij niet echt kwaad omdat mijn servos niet sterk genoeg zijn om m'n wissels te beschadigen als te ver zouden draaien.

De oplossing met transistoren heb ik ook effe aan gedacht, maar ik vond ze overkill en bovendien het kost je minstens een I/O poort op je µC.

Hieronder een foto van m'n servo constructie:

De alu houder wordt met 2-comp epoxy op de wissel gelijmd.  Zo zitten ze nu al een dik jaar op m'n baan zonder problemen te geven.

PeterC

Citaat van: Sattrickske op 03 mei 2013, 23:24:25 PM
...Dat servos effe wild springen kan bij mij niet echt kwaad omdat mijn servos niet sterk genoeg zijn om m'n wissels te beschadigen als te ver zouden draaien...

Maar om deurtjes aan te sturen...

Groetjes, Peter