Picture

tøf tøf

glasgrossist, glarmester, og drivhusproducent

Vemmelev

Indlæg: 347

PB  Hjemmeside

sportavle..

Jeg har overvejet at lave den næste sportavle ud fra dette princip. Mine sporskifter skal drives af en servo.

Jeg vil så lave 2 servotestere, som giver en impuls for henholdsvis ret og afvigende på sporskiftet.

På tavlen vil jeg benytte en vippeafbryder, som så afhængigt af stilling, videresender enten impuls fra den ene, eller den anden servotester.

Jeg vil så naturligvis kopiere impulserne fra testerne til alle de andre vippeafbrydere... , og derved de andre sporskifter..

Nogen, der har erfaring med dette?

Jeg ønsker ikke en DCC styret sportavle...

Forslag modtages..

Mvh Steen

 

__________________

...og i tror det ikke kan lade sig gøre at indbygge digitaldekodere i spor z... Iøvrigt ganske vild med modeller, også dem af tog..

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Hej Steen

Jeg anvender ESU servodekodere. De kan nemlig styres såvel via DCC som af alm. kontakter. Jeg anvender så den type vippeomskiftere, der benævnes (ON) - OFF - (ON). De har nemlig fjeder retur til midterstillingen. 

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

tøf tøf

glasgrossist, glarmester, og drivhusproducent

Vemmelev

Indlæg: 347

PB  Hjemmeside

Hej Scott.

 

Jeg kender godt esus dekodere.. På denne sportavle er rundt regnet ca 160 sporskiftere og en god håndfuld englændere. Det bliver en kopi af Korsør ca 1956. Med kun en drejeskive. 

Derfor kan jeg godt se budgettet løbe stærkt med esu..

Den oprindelig plan var Conrads kopi af de blå hoffmann drev. Men jeg kan ikklængere finde dem på deres hjemmeside, hverken den tyske eller danske, hvorfor jeg formoder de enten er ophørt at sælge dem, eller evt er løbet ind i kopi rettigheder. Med de originale hoffmandrev har jeg modtaget et tilbud i omegnen af ca 14.000.-

Servo koster ca 3-4 euro/stk... 

 

__________________

...og i tror det ikke kan lade sig gøre at indbygge digitaldekodere i spor z... Iøvrigt ganske vild med modeller, også dem af tog..

Like 0 kan lide
Top

Picture

Bent_P

Jyllands hovedstad

Indlæg: 1.595

PB

160 drev med esu dekodere koster dig 10000 kroner i dekodere og 3500 i servoer. Med denne kombination, kan du individuelt justere alle servomotorer individuelt. Laver du det med to servotestere og skifter mellem signalerne fra dem, vil dine servoer skifte stilling lynhurtigt og ikke langsomt som med dekodere. Du kan også let risikere at der kommer støj på signalerne fra kontakterne til servoerne, så de står og bevæger sig.

__________________

Hilsen Bent P.

Märklin gennem 40 år, M, K og C-skinner

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Hej Steen

Det var ikke så få!

Så tror jeg, jeg ville kigge på Arduino. Her kan du faktisk relativt simpelt lave sryring til rigtig mange servoer blot med een Arduino Smile

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

tøf tøf

glasgrossist, glarmester, og drivhusproducent

Vemmelev

Indlæg: 347

PB  Hjemmeside

Jeg havde det lidt på fornemmelsen.. Men jeg ved intet om arduino. Jeg har scannet lidt på skjærlunds blog, men jeg synes det virker uoverskueligt..

Jeg starter fra blank... Har du selv høstet erfaringer på arduino?

 

__________________

...og i tror det ikke kan lade sig gøre at indbygge digitaldekodere i spor z... Iøvrigt ganske vild med modeller, også dem af tog..

Like 0 kan lide
Top

Picture

Niels_L

Brande

Indlæg: 17

PB

Hej.

Jeg støtte helt klart Skotts forslag med en arduino, de er nemme at arbejde med.

Jeg har selv tidliger lavet flere skiftespors styringer med dem.

For at komme i gang vil jeg anbefale at få fat i en arduino også ellers begynde at kigge på video tutorials på youtube samt de eksempler som er med i arduino IDE softwaren også kan arduinoes forum være meget hjælpsomt.

Men når du har forstået hvordan du få den til at gøre noget med et input og hvordan en servo styres er det faktisk rigtigt nemt at lave.

Mvh Niels

__________________

Niels Læntver
Brande

Like 0 kan lide
Top

Picture

tøf tøf

glasgrossist, glarmester, og drivhusproducent

Vemmelev

Indlæg: 347

PB  Hjemmeside

Arduino bliver de næste par ugers aften aktivitet... Nogle anbefalinger til leverandør? Jeg var kendskab til rs-online og Vejle RC..

 

__________________

...og i tror det ikke kan lade sig gøre at indbygge digitaldekodere i spor z... Iøvrigt ganske vild med modeller, også dem af tog..

Like 0 kan lide
Top

Picture

Niels_L

Brande

Indlæg: 17

PB

 

tøf tøf skrev:

Arduino bliver de næste par ugers aften aktivitet... Nogle anbefalinger til leverandør? Jeg var kendskab til rs-online og Vejle RC..

 

Desværre kan jeg ikke udtale mig om de to leverandøre, jeg har altid bare købt dem på ebay.

http://www.ebay.com/itm/161403910939

Denne har jeg købt 15 stk fra denne igennem det sidste år og de har alle fungeret men man kan dog godt se at det er en kina klon.

Mvh Niels

__________________

Niels Læntver
Brande

Like 0 kan lide
Top

Picture

condor-9

Odense C

Indlæg: 281

PB

tøf tøf skrev:

Arduino bliver de næste par ugers aften aktivitet... Nogle anbefalinger til leverandør? Jeg var kendskab til rs-online og Vejle RC..

 

http://www.trab.dk/da/ 

 

 

Like 0 kan lide
Top

Picture

Bent_P

Jyllands hovedstad

Indlæg: 1.595

PB

Som sælger de kloner alle og enhver kan købe fra Kina, til 1/5 af prisen?

__________________

Hilsen Bent P.

Märklin gennem 40 år, M, K og C-skinner

Like 0 kan lide
Top

Picture

tøf tøf

glasgrossist, glarmester, og drivhusproducent

Vemmelev

Indlæg: 347

PB  Hjemmeside

Hvad er forskellen på uno, Leonardo, mega, og duemilanove

Jeg har også brug for at vide, hvor mange I/O til servo der kan tilsluttes..

__________________

...og i tror det ikke kan lade sig gøre at indbygge digitaldekodere i spor z... Iøvrigt ganske vild med modeller, også dem af tog..

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.104

PB  Blog  Hjemmeside

tøf tøf skrev:
Hvad er forskellen på uno, Leonardo, mega, og duemilanove

Duemilanove er en ældre udgave af Uno, men bortset fra nogle mindre forbedringer er de ens.

Leonardo har en meget større processor og mange flere porte. Til gengæld er den ikke fuldt ud kompatibel med Uno, der sætter standarden for "almindelige" Arduinoer: Programmer skal som regel ændres og tilpasses for at kunne køre på Leonardo, så man kan sjlældent bruge de programeksempler, man finder på nettet, direkte på Leonardo.

Citat:
Jeg har også brug for at vide, hvor mange I/O til servo der kan tilsluttes..

En standard Arduino - det vil normalt sige en Uno - kan trække op til 17 servoer, som det er beskrevet i denne efterhånden klassiske artikel.

Du kan også gøre, som jeg har beskrevet, og bruge TLC5940 boards: De kan hver trække 16 servoer, men du kan koble rigtigt mange på en enkelt Arduino, så via TLC5940 boards vil du kunne styre hundredvis af servoer fra en enkelt Arduino. Min plan er at bruge TLC5940 til såvel servoer som lys i sporskifte-lanternerne, så jeg realistisk kommer til at have 8 servoer og 8 LEDer på hver TLC5940. Ifølge TI kan man maksimalt koble 14 TLC5940 på samme bus, men jeg har læst om mange, der har udfordret denne påstand og i virkelighedens verden har trukket endnu flere.

Men "bare" 14 x 16 servoer = 224 servoer på een Arduino.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

tøf tøf skrev:

Jeg havde det lidt på fornemmelsen.. Men jeg ved intet om arduino. Jeg har scannet lidt på skjærlunds blog, men jeg synes det virker uoverskueligt..

Jeg starter fra blank... Har du selv høstet erfaringer på arduino?

 

Hej Steen

Det fede ved Arduino er, at selvom der virker svært at komme i gang med, hvis ikke, man har programmeret tidligere, så er der utrolig meget godt og simpelt materiale at finde på nettet.

Hvis man 'blot' tager andres færdige småprogrammer (byggeblokke), så kan man let sætte det sammen til nogle avancerede projekter uden at være uddannet programmør - blot man går stille og roligt frem.

Her er ex. et lille klip, hvor en gut har brugt en Arduino til at styre et sporskifte med: Simpel styring af sporskifte

Hvis man så supplere med Lars' udmærkede tutorials, kan man hurtigt komme til at styre mange servoer ved at anvende den nævnte TLC5940 (oprindeligt tiltænkt styring af store leddisplays og LED-tv.

Ellers kan jeg anbefale at kigge på Jeromy Blums udmærkede videoer omkring bl.a. Arduino - De er virkelig let forklarende og gode. Jeg har selv brugt dem til undervisning i Arduino på HTX Smile

Arduino med Blum

 

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

tøf tøf

glasgrossist, glarmester, og drivhusproducent

Vemmelev

Indlæg: 347

PB  Hjemmeside

Hej Lars..

Kan du oplyse hvor jeg evt kan finde netop den beskrivelse du nævner, du er forfatter af..?

Er der mulighed for at se programmet også?

Mvh Steen

 

__________________

...og i tror det ikke kan lade sig gøre at indbygge digitaldekodere i spor z... Iøvrigt ganske vild med modeller, også dem af tog..

Like 0 kan lide
Top

Picture

tøf tøf

glasgrossist, glarmester, og drivhusproducent

Vemmelev

Indlæg: 347

PB  Hjemmeside

Sidst, jeg lavede prg, var i Basic på min gamle C64... 

Efter at have set Blums video er jeg da rigtig tændt.. Synd butikkerne ikke har åbent i morgen, så jeg kunne røde lidt med det, nu sneen har ødelagt min arbejdsdag... 

Mvh Steen.

Til Lars. Har du udviklet et PCB til TI TLC 5940?? 

 

__________________

...og i tror det ikke kan lade sig gøre at indbygge digitaldekodere i spor z... Iøvrigt ganske vild med modeller, også dem af tog..

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Ja, de er virkelig gode hans videoer - Han har efterfølgende udgivet en bog, der tager udgangspunkt i hans videoer om Arduino. Den kan også anbefales!

Ang. pcb, så var dette måske en mulighed: Sparkfun

Kan også købes i dk her: Let-elektronik

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

tøf tøf

glasgrossist, glarmester, og drivhusproducent

Vemmelev

Indlæg: 347

PB  Hjemmeside

Det er SGI dyrt ved let-eleltronik... 

Er denne kompatibel:

http://m.ebay.de/itm/10x-16-Channel-12-Bit-PWM-Servo-Treiber-Modul-I2C-S...

Mvh steen

__________________

...og i tror det ikke kan lade sig gøre at indbygge digitaldekodere i spor z... Iøvrigt ganske vild med modeller, også dem af tog..

Like 0 kan lide
Top

Picture

Bent_P

Jyllands hovedstad

Indlæg: 1.595

PB

72€, så kommer der måske told oveni. Og ingen af de viste kredsløb slukker fors trømmen til servoen, som en ESU swichpilot gør, vilket hindrer servoer der sukker, eller laver hystriske bevægelser. Spørg dig selv om, vor lidt du vil betale og vor mange timer du vil bruge på det, frem for at købe noget der bare virker ud af boksen.

__________________

Hilsen Bent P.

Märklin gennem 40 år, M, K og C-skinner

Like 1 kan lide
Top

Picture

tøf tøf

glasgrossist, glarmester, og drivhusproducent

Vemmelev

Indlæg: 347

PB  Hjemmeside

En arduino koster under 3 euro. De 72 euro er for 10 Shields. Dvs for under 600 euro er der teknik til alle servodrev. Og drev. Det begynder at ligne budgettet for den oprindelige idé med hoffmann kopi drev.

Der er til en forening, og der blev oprindeligt lavet et budget for anlæggelsen af Korsør banegård, og med alle elementer i budgettet, vil det tage 4-6 år med kontigentpenge at etablere. Vi er ca 16 medlemmer. Men der er også andre udgifter til der eksisterende anlæg undervejs. Så hvis vi pludselig laver en udgift der er ca 2,8 gange højere end budgettet, bliver det laange udsigter inden Korsør bliver kørende.

Sponsorer? Det er næsten umuligt i vores kommune..

Samtidig får jeg udvidet min horisont med arduino.

Hjælp til dette kan muligvis blive nødvendigt..

Mvh Steen

Skott: er de nævnte PBC kompatible? De nævner noget med I2C?

__________________

...og i tror det ikke kan lade sig gøre at indbygge digitaldekodere i spor z... Iøvrigt ganske vild med modeller, også dem af tog..

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.104

PB  Blog  Hjemmeside

Da' Steen.

tøf tøf skrev:
Til Lars. Har du udviklet et PCB til TI TLC 5940??

Nej, jeg bruger dette færdige fra Sparkfun: Fåes adskillige steder i Danmark, og er det primære udviklingsmål for andre udviklere af drivere etc.

Jeg er så heldig at kunne indkøbe dem erhvervsmæssigt, og så er de ikke ret dyre.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

HP 16

IT

Sjælland

Moderator

Indlæg: 249

PB

Hej Steen

 

Prøv at læse denne artikel på vores klubs hjemmeside (3modul) begået af Poul Erik...

http://www.3modul.dk/joomla256/index.php/tips-og-tricks/179-servo-sporsk...

Her styres 16 servoer/sporskifter af en RP2.

Måske det var noget du kan bruge...

 

 

Mvh

Kristian

__________________  Kører 3-skinne via Sprog II (DCC) med Rocrail.Forbillede: Hjørring Privatbaner og Nordjyske Jernbaner.Epoke: fra dengang til nu.Medlem af Slæbeskoen.dk
Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Hej Steen

Ja, det er jo samme chip som på Sparkfuns print - blot i en anden 'pakke'. Men som der nævnes andetsteds, ville det nok være en god ide at modificere printene, så +Vcc eller GND afbrydes og er styrbare fra Arduinoen - Når du når så langt, så servoerne ikke trækker strøm, når de ikke er aktiveret - Hvilket jo vil sige 99% af tiden - Også relativt simpelt indgreb.

Men jeg tror, jeg ville starte med at bestille en enkelt Arduino og et TLC5940 print hos Let Elektronik og så komme i gang med at 'lege' med miljøet - Det kan let tage noget tid. Når du så først er kommet så langt, at du kan styre flere servoer over TLC'en - så bestil flere. Jeg ved dog, at Let Elektronik er til at tale med, når du skal købe mange af samme type, så prøv evt. dette. (De kan dog ikke konkurrere med Kinapriser - Men så har du til gengæld 2 års garanti...).

I2C er en seriel datastandard - så du kan sende data mellem enheder vha. 21 ledere (Dog skal min. GND også med, så referencen er på plads). Her er lidt om hvordan, det fungerer på Arduino: I2C

Og en lille tutorial video omkring Arduino I2C

Det fungerer reelt sådan her:

Så man kan altså kommunikere mellem flere Arduinoer vha. I2C, men de andre enheder kan også være små sensorer, accelerometre er meget populære at anvende I2C til.

Men når vi kører digitalt på vore modeljernbaner bruger vi også seriel datakommunikation gennem skinnerne - Det er dog en anden datastandard, der benyttes her.

 

Håber, det hjalp lidt på forståelsen Smile

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

tøf tøf

glasgrossist, glarmester, og drivhusproducent

Vemmelev

Indlæg: 347

PB  Hjemmeside

Hej Scott.

 

Tak for uddybning.

Jeg har via dba.dk købt 2 arduino uno , og påtænker at bestille alle 10 tlc5940 via eBay.de.

Måske som du nævner, den første hos let elektronik.

Vi har i forvejen en afbryder (ringetryk) på sportavlerne, således at både ringetryk, og ringetryk for sporskiftet skal benyttes samtidigt af hensyn til ikke at lave fejl.

Jeg forestiller mig, jeg kan benytte sikkerhedsringetrykket som tilslutning af strøm til servo delen..

Mvh Steen

 

__________________

...og i tror det ikke kan lade sig gøre at indbygge digitaldekodere i spor z... Iøvrigt ganske vild med modeller, også dem af tog..

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Hej Steen

 

Velbekom. Jeg tror som godt, du kan benytte omtalte ringetryk. Men som du måske har set, er der ved Sparkfuns board seksten 3-polede stik, hvor hver af dem har betegnelsen:

  • SCLK
  • VCC og
  • GND

VCC og GND er fælles forbindelser for alle stik og fungerer som forsyning til servoerne, mens SCLK er individuelle forbindelser, der i bund og grund 'fortæller' servoen, hvilken position den skal bevæge sig hen til.

Derfor skal du på printet afbryde enten VCC eller GND inden, forbindelsen når ned til alle stikkene sådan, at når du trykker på dit ringetryk, har alle servoer strøm, når ringetrykket holdes nede.

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

BlackChart

Skanderborg

Indlæg: 87

PB

Denne er kompatibel med TLC5940.

http://www.trab.dk/breakout/64-16-kanals-12bit-pwm-servo-driver.html

Kan ikke helt blive klog på forum reglerne, om denne overtræder reglerne - hvis den gør må i sige til, så sletter jeg den gerne igen.

__________________

Mvh.
Morten Trab

Trab.dk - Din Arduino Leverandør
http://www.trab.dk

Like 0 kan lide
Top

Picture

tøf tøf

glasgrossist, glarmester, og drivhusproducent

Vemmelev

Indlæg: 347

PB  Hjemmeside

Hej Morten.. Har sendt dig en PM.. 

 

Mvh steen

__________________

...og i tror det ikke kan lade sig gøre at indbygge digitaldekodere i spor z... Iøvrigt ganske vild med modeller, også dem af tog..

Like 0 kan lide
Top

Picture

PoulErik

IT

Indlæg: 3

PB

HP 16 skrev:

Hej Steen

 

Prøv at læse denne artikel på vores klubs hjemmeside (3modul) begået af Poul Erik...

http://www.3modul.dk/joomla256/index.php/tips-og-tricks/179-servo-sporsk...

Her styres 16 servoer/sporskifter af en RP2.

Måske det var noget du kan bruge...

 

 

Mvh

Kristian

Jeg har skrevet den artikkel Kristan henviser til. Løsningen anvender ikke ringetryk, men i stedet et web interface hvor jeg kan styre skifterne enten ved hjælp af mus eller en trykfølsom skærm. I artiklen anvender jeg en AdaFruit Servo Driver der kan kontrollere 16 servoer. Disse kan "stakkes" så det totale antal servoer, der kan styres via løsningen i min artikkel, er 256.

Servo Driveren er drevet fra an Raspberry P (via I2C)i. Denne (Pi'en) kører Linux og kan derved nemt programmeres til næsten hvad som helst. Den har et antal ind- og udgange, men ikke nok til at der er mulighed for at styre 160 servoer via ringetryk. Derfor valgte jeg at lave et program der via Apache udstiller en html side, hvorfra jeg kontrollerer servoerne.

 

__________________

Poul Erik


3 skinne digital - 3modul.dk

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.104

PB  Blog  Hjemmeside

Da' Poul Erik.

PoulErik skrev:
Servo Driveren er drevet fra an Raspberry P (via I2C)i. Denne (Pi'en) kører Linux og kan derved nemt programmeres til næsten hvad som helst. Den har et antal ind- og udgange, men ikke nok til at der er mulighed for at styre 160 servoer via ringetryk. Derfor valgte jeg at lave et program der via Apache udstiller en html side, hvorfra jeg kontrollerer servoerne.

Raspberry Pi er en dejlig ting at have i værktøjskassen. Man kan lave mange fine programmer med f.eks. Python programmeringssproget.

Men uanset om du bruger Raspberry Pi eller Arduino, skal der laves julelege for at kunne drive input og output i den størrelsesorden, vi her taler om: Begge systemer kan faktisk godt kontrollere det, men man skal have en form for matrix styring, da man aldrig vil finde en enkelt computer med interface til f.eks. 160 ringetryk. Det svarer jo på mange måder til at aflæse alle tasterne på et computertastatur, og det findes der naturligvis løsninger til.

I min optik er den bedste løsning at bruge en Arduino til low-level hardware interface, og så koble den op mod en Raspberry Pi, hvor man kan lave den overordnede programmering. Det er overordentligt nemt at lave en hardware-styring på en Arduino, og så forbinde Arduinoen til en Raspberry Pi med et USB kabel. Og ved at bruge USB får man adgang til en masse billig hardware, hvor man kan koble et nærmest ubegrænset antal Arduinoer til en Raspberry Pi.

På sidste års Unge Forskere havde min søn et projekt med, hvor han havde programmeret en Raspberry Pi i Python til at kontrollere og aflæse to Arduinoer og en Microduino - alt gennem USB. Via en WiFi dongle havde han så lavet et interface til en mobiltelefon, så man fra mobiltelefonen gennem Raspberry'en kunne styre og aflæse alle Arduinoerne. Det var overraskende nemt at få til at fungere.

 

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

DCC

Indlæg: 359

PB

Det lyder da meget spændende med Raspberry Pi og Arduino, men hvordan ( måske har jeg ikke læst ordentlig efter) får en DCC central ( med tilhørende program TC , windigipet, itrain osv. ) fået fortalt til Raspberry Pi / Arduino at der skal skiftes?

__________________

 

/Brian Ottens

----------------------------------------------------------------------------

Traincontroller Gold -Smarthand - Trainprogrammer:  Version 9, 

Lenz LZV200 , Lenz 23150 USB-Interface (Windows10), Lenz tilbagemeldere samt LDT  RS-8 tilbagemeldere
LH101, LH01

Peco Spor kode 75

 

www.mdmjk.dk

www.karensvej7.dk

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.104

PB  Blog  Hjemmeside

Da' Brian.

DCC skrev:
Det lyder da meget spændende med Raspberry Pi og Arduino, men hvordan ( måske har jeg ikke læst ordentlig efter) får en DCC central ( med tilhørende program TC , windigipet, itrain osv. ) fået fortalt til Raspberry Pi / Arduino at der skal skiftes?

Nu er det vel ikke nogen naturlov, at det er det, man vil?

Man kunne jo godt bruge kombo'en til at lave en sportavle med trykknapper, hvor man ikke skifter de enkelte skifter, men i stedet sætter sporveje som i den rigtige verden?

Bortset fra det er det enkelt: Der findes en million opskrifter på at få en Arduino til at læse DCC, og den kan så via USB sende DCC kommandoerne videre til en Raspberry, der kan reagere intelligent på dem. Du kan også lave et DCC interface direkte til din Raspberry, men her er opskrifterne ikke så mange, og løsningen - sjovt nok - heller ikke lige så god.

Det sidste skyldes, at din Raspberry sandsynligvis kører Linux, og Linux i normaludgaven (incl. Raspberry) er ikke noget realtime operativsystem. Man løber derfor risikoen for at miste kommandoer, og det er ikke så godt i et system som vores. Arduino har slet ikke noget OS, så den kører nærmest per definition realtime, og er derfor mere velegnet til at lave en DCC læser, der kan virke som buffer og sende kommandoerne videre til Raspberry, når den er klar.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

DCC

Indlæg: 359

PB

Nej du har ret idet ikke er nogen naturlov, det er bare mit behov der lige skinner igennem Smile

__________________

 

/Brian Ottens

----------------------------------------------------------------------------

Traincontroller Gold -Smarthand - Trainprogrammer:  Version 9, 

Lenz LZV200 , Lenz 23150 USB-Interface (Windows10), Lenz tilbagemeldere samt LDT  RS-8 tilbagemeldere
LH101, LH01

Peco Spor kode 75

 

www.mdmjk.dk

www.karensvej7.dk

Like 0 kan lide
Top

Picture

Lars LCS

Indlæg: 10

PB

Hej

Jeg har med stor interesse læst denne tråd, og Lars Skælunds indlæg om ”Lys styrring med Arduino”, og har længe tænkt på at ville bruge en Arduino til at styre mine sporskifter, sportavle og signaler.

Nu er jeg komme i gang, og er begyndt at lære at programmer sådan en fætterJ (har læst bogen fra Arduino startsættet).

Jeg har også købt et par TLC 5940, så jeg har udgang nok da til de servoer som jeg vil bruge som sporskiftedrev.

Planen er 31 servoer, samt led som viser position.

Endvidere har jeg har valgt at bruge analog indgang, så jeg er sikker på at have indgang nok. Her er et eksempel, se nederet på siden.

Har lave en forsøgsopstilling med 2 servoer og nogle knapper.

Se programmet her:

#include "Tlc5940.h"
#include "tlc_servos.h"
 const int buttonPin = 0;     // the number of the pushbutton pin
 
 const int BUTTON1 = 1;
 const int BUTTON2 = 2;
 const int BUTTON3 = 3;
 const int BUTTON4 = 4;
 const int BUTTON5 = 5;

 const int BUTTON1LOW  = 925;
 const int BUTTON1HIGH = 940;
 const int BUTTON2LOW  = 850;
 const int BUTTON2HIGH = 860;
 const int BUTTON3LOW  = 780;
 const int BUTTON3HIGH = 795;
 const int BUTTON4LOW  = 725;
 const int BUTTON4HIGH = 740;
 const int BUTTON5LOW  = 675;
 const int BUTTON5HIGH = 690;

// Variables will change:
 int ledState = HIGH;         // the current state of the output pin
 int buttonState;             // the current reading from the input pin
 int lastButtonState = LOW;   // the previous reading from the input pin
 long lastDebounceTime = 0;  // the last time the output pin was toggled
 long debounceDelay = 50;    // the debounce time; increase if the output flickers

void setup() {
 pinMode(buttonPin, INPUT);
 tlc_initServos();  // Note: this will drop the PWM freqency down to 50Hz.
  tlc_setServo(0,45);
  tlc_setServo(1,45);
Serial.begin(9600);
 }

void loop() {
 // read the state of the switch into a local variable:
 int reading = analogRead(buttonPin);
 int tmpButtonState = LOW;             // the current reading from the input pin

if(reading>BUTTON5LOW && reading<BUTTON5HIGH){
     //Read switch 5
     tmpButtonState = BUTTON5;
   }else if(reading>BUTTON4LOW && reading<BUTTON4HIGH){
     //Read switch 4
     tmpButtonState = BUTTON4;
   }else if(reading>BUTTON3LOW && reading<BUTTON3HIGH){
     //Read switch 3
     tmpButtonState = BUTTON3;
   }else if(reading>BUTTON2LOW && reading<BUTTON2HIGH){
     //Read switch 2
     tmpButtonState = BUTTON2;
   }else if(reading>BUTTON1LOW && reading<BUTTON1HIGH){
     //Read switch 1
     tmpButtonState = BUTTON1;
   }else{
     //No button is pressed;
     tmpButtonState = LOW;
   }


// check to see if you just pressed the button
 // (i.e. the input went from LOW to a buttonState),  and you've waited
 // long enough since the last press to ignore any noise:

 

// If the switch changed, due to noise or pressing:
 if (tmpButtonState != lastButtonState) {
 // reset the debouncing timer
 lastDebounceTime = millis();
 }

if ((millis() - lastDebounceTime) > debounceDelay) {
 // whatever the reading is at, it's been there for longer
 // than the debounce delay, so take it as the actual current state:
 buttonState = tmpButtonState;
 Serial.println(buttonState);
 }

// save the reading.  Next time through the loop,
 // it'll be the lastButtonState:
 lastButtonState = tmpButtonState;

// set the LED using the state of the button
 switch(buttonState){
 case BUTTON1:
   tlc_setServo(0, 90);
   Tlc.update();
    delay(5);
 break;
 case BUTTON2:
   tlc_setServo(0, 0);
   Tlc.update();
    delay(5);
 break;
 case BUTTON3:
   for (int angle = 0; angle < 90; angle++) {
    tlc_setServo(1, angle);
    Tlc.update();
    delay(20);
  }
 break;
 case BUTTON4:
   for (int angle = 90; angle >= 0; angle--) {
    tlc_setServo(1, angle);
    Tlc.update();
    delay(20);
  }
 break;
 case BUTTON5:
   tlc_setServo(0, 45);
   tlc_setServo(1, 45);
    Tlc.update();
    delay(5);
 break;
 }
}

Det der driller mig lidt er at jeg gerne vil kunne styre hastigheden på servoen, så det bliver realistisk når sporskiftet ”skifter”.

Nederest i programmet hvor de forskellige ”case” er kan man se hvilken code, jeg har brugt for at styre servoen.

BUTTON1:

 tlc_setServo(0, 90);
   Tlc.update();
    delay(5);

Her skifter servoen fra hvor den står, hen til 90 grader, men jeg kan ikke styre hastigheden den skifter med.

Har prøvet at ændre på delay, men det ændre ikke hastigheden, kun pausen inde programmet forsætter.

 

BUTTON3:

 tlc_setServo(0, 90);
   Tlc.update();
    delay(5);

Her kan jeg styre hastigheden at servoen skifter med, ved at ændre på delay.

 

Et problem her er at servoen skifter fra 0 grader til 90 grader, også hvis man vælger samme position igen, så drejer den hurtig tilbage til 0 grader og at køre frem til de 90 grader.

Desuden gør den bevægelsen 2 gang, når jeg skifter position, den ene side til den anden!

 

Kan nogen hjælpe med at finpudse programmet, så man kan styre hastigheden som servoen skifter med, og så den kun til den ”nye” position man vælger?

 

Min plan er kun at have en knap pr. sporskifte.

Dvs. man trykke på sporskifteknappen så drejer servoen, og hvis man så trykker på knappen igen, drejer servoen så tilbage igen.

 

Det er lykkes mig at få det til at virke med digital indgang, men da arduinoen max. har 14 digitale indgang og man bruger en del af dem, når TCL 5940 er tilsluttet duer det ikke.

Jeg har ikke kunne finde nogle program eksempler på nettet, og man kan programmer med ”en knap” og analog indgang, så mit spørgsmål kan det overlade sig gøre?

Med venlig hilsen

Lars LCS

Like 0 kan lide
Top

Picture

PoulErik

IT

Indlæg: 3

PB

Lars LCS skrev:

Det der driller mig lidt er at jeg gerne vil kunne styre hastigheden på servoen, så det bliver realistisk når sporskiftet ”skifter”.

I min Rasp. Pi løsning havde jeg samme problemstilling. Det løste jeg ved at dele bevægelsen op.

Hvis servoen skal bevage sig fra pos A til B. Delte jeg den op i:

pos A,

delay,

Pos A + 1,

delay,

Pos A + 2

osv intil Pos A + x = pos B

 

__________________

Poul Erik


3 skinne digital - 3modul.dk

Like 0 kan lide
Top

Picture

Lars LCS

Indlæg: 10

PB

Den løsning havde jeg ikke tænke på, den er smart nok Smile

Men i min test opstilling skal servoen dreje 30 grader.

Så bliver det hurtig til mange linjer i programmet, når man har 31 sevorer.

Nå jeg må prøve mig lidt mere frem, og se om der kommer en løsning Smile

Mvh

Lars LCS

Like 0 kan lide
Top

Picture

BlackChart

Skanderborg

Indlæg: 87

PB

Google Arduino While Loop:

 

var = 0;
while(var < 200){
  // do something repetitive 200 times
  var++;
}

__________________

Mvh.
Morten Trab

Trab.dk - Din Arduino Leverandør
http://www.trab.dk

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Hej Lars

du har reelt kun brug for een funktion, der drejer dine servoer. Du kalder så funktionen med parametrene nummer og position, så drejer den rette servo Smile

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

Lars LCS

Indlæg: 10

PB

Hej Skott

 

Tak for dit svar, det lyder smart og jeg kan godt se fidusen i det.

Men desværre er jeg ikke så dygtig til at programmere endnu, så jeg lige kan trylle disse ting ind i mit program.

Kunne jeg lokke dig til evt. at komme med et eksempel, som jeg kunne prøve at flette ind i mit program!

 

Mvh

Lars

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.104

PB  Blog  Hjemmeside

Da' Lars.

Der er ikke noget galt med dit program - det opfører sig korrekt, selv om det klart nok ikke opfører sig, som du forventer. Smile

Først lidt generelt om TLC5940 og den tilhørende Arduino driver: TLCen gemmer kun én indstilling pr. udgang. Driveren kan gemme potentielle indstillinger for dig, og så overføre dem alle i et hug: Når du kalder tlc_setServo(), skriver du ikke direkte til TLCen. Den værdi, du angiver, bliver gemt i driveren og bliver først overført, når du kalder Tlc.update(). På den måde kan man overføre mange indstillinger synkront, så man ikke får flimmer i billedet - TLCen er jo oprindeligt skabt som LED driver til fladskærms-TV.

Det forklarer lidt af den mystiske opførsel, du synes at finde.

Button1: Du kalder først tlc_setServo(0,90) - det betyder, at du beder udgang 0 skifte til 90°. Det sker dog ikke med det samme - det sker, når du kalder Tlc.update(), men så sker det også. At du har sat en forsinkelse ind bagefter er ligegyldigt - servoen har flyttet sig på det tidspunkt.

Button2: Her sætter du servoen til 0° - ellers er funktionen den samme som for Button1.

Button3: Her har du fat i noget af det rigtige. Du har lavet en tæller, der tæller heltal fra 0 til 89 - det bruger du efterfølgende til at flytte servoen én grad ad gangen, indtil den når op på 89°. Din delay() funktion forsinker optællingen, så du på den måde kan styre servoens hastighed. Servoen vil altid starte ved 0° og flytte sig mere eller mindre langsomt op til 89° - der har du jo bestemt gennem din tæller.

Button4: Her tæller du til gengæld ned fra 90 til 0 - hvis du har brugt Button3 forinden, vil det betyde, at servoen først flytter fra 89° til 90° (dvs. den forkerte vej) og så begynder at flytte tilbage til 0°. Det havde nok været bedre at lade tælleren i Button3 tælle helt op til 90.

Button5: Her sætter du begge servoer tilbage til 45° - i et hug: De to kald til tlc_setServo() bliver først udført, når du kalder Tlc.update(). Det efterfølgende delay() er igen uden betydning (og virkning).

Du får aflæst dine knapper korrekt - men du skal være opmærksom på, at den løsning, du bruger, kun er velegnet til nogle få - 5-10 måske - knapper. Vil du have flere på en enkelt analog-indgang, skal du have så små forskelle i dine modstande, at de bliver meget følsomme overfor støj, og det er der jo en hel del af på en modelbane. Den "rigtige" løsning, hvis du vil have mange knapper til en sporplan, er at bruge et eksternt kredsløb - ofte sammen med en diode-matrix. Det vil give dig mulighed for at læse mange knapper gennem nogle få digitalporte - det er f.eks. den måde et almindeligt PC tastatur er lavet på.

Men hvad er så den rigtige løsning på dit problem? Den findes desværre nok ikke. Opgaven kan løses på mange måder, men den "rigtige" måde afhænger meget af dine ønsker.

Din nuværende måde at aflæse knapperne på kan f.eks. ikke aflæse, hvis man trykker på to knapper på samme tid.

Og den simple måde, du sætter forsinkelse på servoens bevægelse med Button3/4, betyder også, at hele dit program er dødt, mens servoen bevæger sig: Du trykker på en knap og sætter en servo i gang - og så kan du ellers ikke gøre mere, før servoen er færdig med sin bevægelse. Det er måske også godt nok - og det er helt sikkert godt nok til en begynder; men skal det bruges til en "rigtig" bane, er det nok ikke den mest praktiske løsning.

Men du er godt i gang: Leg videre og lær noget mere - så skal det nok ende med, at du får en rigtig god løsning.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Ole Vedel

Indlæg: 1.157

PB  Blog  Hjemmeside

Er der en kendt løsning på at kun sende signaler til servo ved ændring af position.

På de servoer jeg har monteret nu, via Uhlenbrock eller Esu dekoder er der et CV der gør at der kun sendes til Servo ved ændring.

Hvis dette ikke er slået til, står alle servoer og snakker / bevæger sig lidt ved støj, som ud/indkobling af andet udstyr, på samme strømforsynning.

Jeg tænker på at bruge servoer til afkoblings ramper. Når der trykkes på en tast går Servo til den ene yderstilling, og når tasten slippes, retur til den anden yderstilling.

mvh. Ole Vedel

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.104

PB  Blog  Hjemmeside

Da' Steen.

tøf tøf skrev:
Kan du oplyse hvor jeg evt kan finde netop den beskrivelse du nævner, du er forfatter af..?

Jeg fik vist aldrig svaret på dette spørgsmål, men - de ligger naturligvis her på Sporskiftet. Smile

Du finder dem i min blogoversigt.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

je

Egå

Indlæg: 129

PB

Lars Skjærlund skrev:

Du får aflæst dine knapper korrekt - men du skal være opmærksom på, at den løsning, du bruger, kun er velegnet til nogle få - 5-10 måske - knapper. Vil du have flere på en enkelt analog-indgang, skal du have så små forskelle i dine modstande, at de bliver meget følsomme overfor støj, og det er der jo en hel del af på en modelbane. Den "rigtige" løsning, hvis du vil have mange knapper til en sporplan, er at bruge et eksternt kredsløb - ofte sammen med en diode-matrix. Det vil give dig mulighed for at læse mange knapper gennem nogle få digitalporte - det er f.eks. den måde et almindeligt PC tastatur er lavet på.

Men hvad er så den rigtige løsning på dit problem? Den findes desværre nok ikke. Opgaven kan løses på mange måder, men den "rigtige" måde afhænger meget af dine ønsker.

Din nuværende måde at aflæse knapperne på kan f.eks. ikke aflæse, hvis man trykker på to knapper på samme tid.

Prøv at kaste et blik på dette Arduino-bibliotek:

http://playground.arduino.cc/Code/Keypad

Den kræver i nyeste version ikke dioder, og kan aflæse flere taster samtidigt. Jeg har selv brugt det til en lille sportavle (pot. under udvikling), med 24 knapper sat op i en 4x6 matrix.

/Jan

Like 0 kan lide
Top

Picture

Lars Skjærlund

Rødovre

Webmaster

Indlæg: 4.104

PB  Blog  Hjemmeside

Da' Jan.

je skrev:
Prøv at kaste et blik på dette Arduino-bibliotek:

Jep - det er en god løsning og det næste skridt i retning mod noget rigtigt brugbart.

Det bruger dog stadig en del ben på Arduinoen, så man kunne i stedet bruge et SX1509 board som dette fra Sparkfun - her kan man tilslutte 64 knapper og skal alligevel kun bruge to ben på Arduinoen.

__________________

MVH
Lars

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Lars LCS skrev:

Hej Skott

Tak for dit svar, det lyder smart og jeg kan godt se fidusen i det.

Men desværre er jeg ikke så dygtig til at programmere endnu, så jeg lige kan trylle disse ting ind i mit program.

Kunne jeg lokke dig til evt. at komme med et eksempel, som jeg kunne prøve at flette ind i mit program!

Hej Lars

Jeg har lige prøvet at lave et simpelt program til styring af servoer vha. funktionskald. Det skal dog lige siges, det er ikke testet, samt at funktionerne fra TLC5940 ikke er implementeret, men det tror jeg godt, kan findes i Lars' udmærkede guide. Jeg har taget udgangspunkt i det sketch, der ligger i Arduinos eksempler for servo:

#include <Servo.h> 

 

Servo myservo;  // create servo object to control a servo 

                // twelve servo objects can be created on most boards

 

#define POS_1_LEFT 20

#define POS_1_RIGHT 153

#define POS_2_LEFT 37

#define POS_2_RIGHT 142

 

unsigned char Tast_1=0;

unsigned char Tast_2=0;

unsigned char servo1_L=0;

unsigned char servo2_L=0;

 

// for det antal taster og servoer, der skal bruges.

 

void MoveToPos(char servonr, int pos); 

void setup() 

  pinMode(Tast_1, INPUT);

  pinMode(Tast_2, INPUT); // gentages for alle knapper - evt. som matrice?

 myservo.attach(9);  // attaches the servo on pin 9 to the servo object 

 

void loop() 

  if (digitalRead(Tast_1))

    {

      if(servo1_L==0)

        {

          MoveToPos(1, POS_1_LEFT);  

          servo1_L=1;

        }

      else 

        {

          MoveToPos(1, POS_1_RIGHT); 

          servo1_L=0;

        }

    } 

  else if (digitalRead(Tast_2))

    {

      if(servo2_L==0)

        {

          servo2_L=1;

          MoveToPos(2, POS_2_LEFT);  

        }

      else 

        {

          servo2_L=0;

          MoveToPos(2, POS_2_RIGHT);  

        }

    // Fortsætter med resterende taster

   }

 

void MoveToPos(char servonr, int pos)

{

  // opsæt TLC5940 til den rette servoadresse vha. servonr.

    myservo.write(pos);              // tell servo to go to position in variable 'pos' 

    delay(15);                       // waits 15ms for the servo to reach the position 

}

Først inkluderes bibliotektet servo.h, der muliggør brugen af de funktioner, der hedder myservo... Herefter definerer jeg nogle positioner, hvor servoerne ex skal køre imellem, så POS_1_LEFT og POS_1_RIGHT er altså de 2 yderpositioner for de servo 1, tilsvarende gøres for alle andre servoer. Så kan man let gå ind og ændre disse værdier, kompilere programmet igen og så indstille servoerne på denne måde - Det er selvfølgelig smartere, at man kan indtille dette vha. 2 taster, så man ikke skal ændre i SW hver gang, men regner med, det er på læringsniveau, vi arbejder nu? Smile

Så opretter jeg en række variable. og definerer pin 2 og 3 på Arduinoen som indgang. Jeg aflæser så knapperne een af gangen. Hvis en knap er påvirket, undersøges det, om servoen står mod venstre. Gør den det, flyttes den mod højre - ellers venstre. Det samme gøres for de resterende taster.

Er der mange servoer, der skal styres => mange knapper, vil man ofte forbinde knapperne i en matrice, da man herved kan spare en del indgange.

Håber, det kan bruges til lidt forståelse Smile

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

Bent_P

Jyllands hovedstad

Indlæg: 1.595

PB

Vor sætter du hastighed på servo?

__________________

Hilsen Bent P.

Märklin gennem 40 år, M, K og C-skinner

Like 0 kan lide
Top

Picture

je

Egå

Indlæg: 129

PB

Lars Skjærlund skrev:

Da' Jan.

je skrev:
Prøv at kaste et blik på dette Arduino-bibliotek:
 

Jep - det er en god løsning og det næste skridt i retning mod noget rigtigt brugbart.

Det bruger dog stadig en del ben på Arduinoen, så man kunne i stedet bruge et SX1509 board som dette fra Sparkfun - her kan man tilslutte 64 knapper og skal alligevel kun bruge to ben på Arduinoen.

Det er jo hele tiden et spørgsmål og til- og fravalg.

Ved at indskyde et ekstra kort og så endda via I2C, kræver det mere kodning. Nu er det i tilfældet her et spørgsmål om at hjælpe en nybegynder ud i programmering, så jeg vil vælge KISS-metoden.

/Jan

 

Like 0 kan lide
Top

Picture

Lars LCS

Indlæg: 10

PB

Hej

Ja, jeg er nybegynder og det programmering jeg kan, er fra div. eksempler og nettet.

Næsten hver gang jeg skal ”flette” 2 smarte ting sammen, så ender jeg med nogen fejlmeldinger når jeg vil kompilere programmet Sad , men det lære man også noget af Wink

 

Min ”drøm” er at nå frem til et mini sikringsanlæg, med følgende muligheder:

En sporskifteknap pr. sporskifte + en ”sikkerhedsknap” som skal trykkes ned samtidig med sporskifteknappen.

Vise sporskifternes position med led.

Kunne stille togveje, hvor alle sporskifter bliver indstillet i togvejen.

Udpegning af togvejen på sportavlen, med led.

”Låsning” af togvejen, så man ikke kan dreje sporskifterne i togvejen før den er opløst / annulleret.

Styrring af led til signalerne.

 

Ja, det er mange ting, men det skal komme i ”små step” efterhånden som jeg får styr på programmeringen.

Til input, har jeg droppet idéen om analog input, og bestilt en SX1509 som Lars Skjærlund har foreslået.

Jan’s metode lyder også god, og ikke mindst lidt nemmer mht. programmering, men forhåbentlig skal man bare ”knække” kode til SX1509 en gang!

@ Skott: Mange tak for programmet og ikke mindst forklaringen, det ser ud til at det er vejen frem. Jeg prøver at få programmet til at virke med TLC5940’en, så skal I nok af en tilbage melding.

@ Lars Skjærlund: Tak for forklaringen om analog input og servoernes mystiske bevægelser som jeg ”selv” var skyld i.

 

Mvh

Lars LCS

 

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Hej Bent

Servoer er jo ikke altid så hurige, men det er delay()-funktionen, der styrer den. Det er dog lidt forskelligt fra servo til servo, hvor langt ned, man kan sætte delayet. Det må man prøve sig lidt frem med.

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Hej Lars

Velbekom. Håber, det kommer til at virke for dig. Glæder mig til at høre om dine erfaringer Smile

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Picture

Lars LCS

Indlæg: 10

PB

Hej Skott og andre.

Jeg har at leget med dit program, uden at ændre noget til TLC5940.

Men servoen køre bare helt vildt frem og tilbage, uden jeg kan gøre noget med knapperne Puzzled

Servoen er sat til på ”udgang” 9, knapperne er på udgang 1 og 2, knapperne er testet i et andet program hvor de virker.

Jeg har også prøvet at implementere TLC5940 i programmet, dog uden held.

Programmet ser sådan her ud:

 

#include "Tlc5940.h"
#include "tlc_servos.h"
#define POS_1_LEFT 20
#define POS_1_RIGHT 153
#define POS_2_LEFT 37
#define POS_2_RIGHT 142
 
unsigned char Tast_1=0;
unsigned char Tast_2=0;
unsigned char servo1_L=0;
unsigned char servo2_L=0;
 
// for det antal taster og servoer, der skal bruges.
 
void MoveToPos(char servonr, int pos);
void setup()
{
  pinMode(Tast_1, INPUT);
  pinMode(Tast_2, INPUT); // gentages for alle knapper - evt. som matrice?
  tlc_initServos();  // Note: this will drop the PWM freqency down to 50Hz.
  }
 
void loop()
{
  if (digitalRead(Tast_1))
    {
      if(servo1_L==0)
        {
          MoveToPos(1, POS_1_LEFT); 
          servo1_L=1;
        }
      else
        {
          MoveToPos(1, POS_1_RIGHT);
          servo1_L=0;
        }
    }
  else if (digitalRead(Tast_2))
    {
      if(servo2_L==0)
        {
          servo2_L=1;
          MoveToPos(2, POS_2_LEFT); 
        }
      else
        {
          servo2_L=0;
          MoveToPos(2, POS_2_RIGHT); 
        }
    // Fortsætter med resterende taster
   }
}
 
void MoveToPos(char servonr, int pos)
{
  // opsæt TLC5940 til den rette servoadresse vha. servonr.
    tlc_setServo0 = servo1;
    tlc_setServo1 = servo2;
    // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position

 

Her er de fejlkoder som kommer, når jeg vil kompilere programmet:

error: 'tlc_setServo0' was not declared in this scope

error: 'servo1' was not declared in this scope

error: 'tlc_setServo1' was not declared in this scope

error: 'servo2' was not declared in this scope

Jeg kan godt se der mangler noget, men kan ikke finde ud af hvad det er, og de rigtige koder!

Men jeg prøver mig også frem i blinde, da jeg ikke har kunne finde noget på nettet der ligner den opstilling (input og TLC5940).

 

Mvh

Lars LCS

 

Like 0 kan lide
Top

Picture

Skott

Ingeniør

Indlæg: 1.918

PB

Hej Lars

Jeg havde ikke lige headerfilen, så jeg har ikke lige kunnet verificere programmet.

Men prøv at kigge her - Det kan måske hjælpe dig videre:

http://tronixstuff.com/2013/10/21/tutorial-arduino-tlc5940-led-driver-ic/

 

__________________

Med venlig hilsen

Skott

Like 0 kan lide
Top

Kommentarvisning

Vælg din foretrukne kommentarvisning og klik på "Gem indstillinger" for at aktivere dit valg.