Doel:€250.00
Donaties:€128.00

Per saldo:€-122.00

Steun ons nu!

Laatst bijgewerkt
op 16-04-2024

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
Vandaag om 19:07:11
Stationsplein Baden Baden door Dion
Vandaag om 19:04:45
Pfarrerwinkel bahn door puntenglijder
Vandaag om 19:02:32
US diorama in H0 door puntenglijder
Vandaag om 19:00:28
Bouw van materieel 40 treinstellen door puntenglijder
Vandaag om 18:58:57
Een stukje Odsherreds Jernbane (OHJ) door Simplex
Vandaag om 18:56:16
20 en 21 april MobExpo door renenstimpie
Vandaag om 18:53:42
Bisonkit verdunner door Pauldg
Vandaag om 18:39:40
Ronald en Wanda's "Southern Comfort" swamp layout! door JohnRobertGrunn
Vandaag om 18:31:58
Onlangs gespot - gefotografeerd, de foto's door Marco1044
Vandaag om 18:10:03
LS Models 2024 door 4020 281-4
Vandaag om 18:03:40
Ervaringen met bezorgdiensten (PostNL, DHL, etc) door roco
Vandaag om 17:54:18
Ombouw/Pimpen Bolle neuzen door bollen neus
Vandaag om 17:48:50
"Nederlandse" modellen door basjuh1981
Vandaag om 17:24:52
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door Hans van de Burgt
Vandaag om 17:09:15
Kleine Baan in H0 (≤ 0.5m²) door Jack Black (NS1220)
Vandaag om 17:02:09
Frans/Belgisch H0e baantje door Jack Black (NS1220)
Vandaag om 16:49:52
NS 8400 van Werps door Ivo tB
Vandaag om 16:40:16
Toon hier je nieuwe (model-) spooraanwinst(en)... door Pauldg
Vandaag om 16:03:04
Bouw NS C 8605, BC 6012 en C 6820 door MathynK
Vandaag om 15:28:02
Micromotor inbouwen in fleischmann tandradlok? door Besselspoor
Vandaag om 15:22:30
Oude metalen trafo's gebruiken....... door Benelux795
Vandaag om 14:17:23
Grenzbahnhof Ellrich ( DDR ) in schaal TT door spoorzeven
Vandaag om 14:07:57
Een diorama in TT (VEB Schwellenrost) door RK
Vandaag om 12:10:27
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Modellbahnwagen
Vandaag om 11:40:39
RhB modelbaan in Aanbouw die Scalettabahn Davos-Dürrboden door Hollandserhbfan
Vandaag om 11:26:46
Welke TAMS decoder heb ik? door henk
Vandaag om 11:10:33
BMB-Module: “Corfe Castle Station” door Hans van de Burgt
Vandaag om 10:49:22
EifelBurgenBahn door Reinout van Rees
Vandaag om 10:17:03
25 jaar geleden door Willem1951
Vandaag om 10:07:29
  

Auteur Topic: JCV's (om)bouwdraadje  (gelezen 6770 keer)

JCV

  • Offline Offline
  • Berichten: 223
JCV's (om)bouwdraadje
« Gepost op: 07 juni 2015, 17:31:08 »
JCV's (om)bouwdraadje - deel 1

Beste andere forumgebruikers,
Na een tijdje met Matthijs te hebben gewerkt aan een modelbaan:
http://forum.beneluxspoor.net/index.php?topic=49196.msg790596#msg790596
zijn we allebei los van elkaar gaan werken, waarbij we elkaar wel helpen wanneer nodig. Matthijs ging verder met Slowakije, terwijl ik me ben gaan richten op Zwitserland. Dit kwam mede omdat ik lid werd van de VSZ(zie mijn profiel). Hier waren een aantal modules die wel een opknapbeurt konden gebruiken. Ik ben met één module begonnen.
Naast het opknappen van deze module speel ik met allerlei ideeën, van het zelf bouwen van een module tot een cameratrein tot zelfbouw van materieel. Dit alles naar het Zwitserse voorbeeld, voornamelijk RhB en SchB.

Al die projecten zal ik dus in dit draadje laten zien, waarbij ik nu begin met de op te knappen module:
Hierop zat een kapotte wisselmotor die vervangen moest worden. Na hem eruit gehaald te hadden zag het er zo uit:

Daarna moest er een nieuwe motor worden ingebouwd. Hiervoor vond ik in de Encyclopedie een schakeling. Voor mijn vragen hierover heb ik een draadje geopend: http://forum.beneluxspoor.net/index.php/topic,64323.msg3221561992.html#msg3221561992
Ik ben nu bezig met het verzamelen van de onderdelen voor de printplaat. De volgende update zal dan gaan over een ander project: het materieel van de Schöllenenbahn.

Mvg,

Johan

JCV

  • Offline Offline
  • Berichten: 223
Re: JCV's (om)bouwdraadje
« Reactie #1 Gepost op: 26 augustus 2015, 06:58:03 »
UPDATE INLEIDING:
Na eens goed nagedacht en overlegd te hebben, zijn de plannen compleet veranderd:
Het meeste van wat ik hiervoor schreef ga ik voorlopig niet doen, wel blijf ik bezig met de module opknappen, en sparen voor een camera voor de cameratrein. Dit bericht gaat dan ook niet over de Schöllenenbahn.
Daarentegen ga ik -om ervaring op te doen- een ander lid (van de VSZ) helpen. Hij is bezig met het bouwen van station Visp in H0 (het station voor de verbouwing).

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

JCV's ombouwdraadje - deel 2
De module
Na ongeveer twee weken (met tussenpozen) solderen, is de servo besturing af!
Dit was mijn eerste elektronica zelfbouw project, hopen dat hij werkt (ik laat momenteel testen) (y)

Visp
We hebben besloten om het Faller Car door Arduino te laten besturen, en ook de seinen gaan daarmee bestuurd worden. Nu heb ik een vraag: om de kabels van de servo's niet te lang te maken, verdelen we het FCS over 4 Arduino's. Deze moeten natuurlijk wel eens communiceren. Nu dacht ik slim te zijn door gewoon een digitale pin op de ene Arduino te verbinden met een andere digitale pin op de andere Arduino, en andersom. Maar ik weet eigenlijk niet of dat kan, mag, werkt. Heeft iemand daar ervaring mee, of moet ik een andere manier gaan gebruiken? Over die servo's gesproken, ik vroeg me af, wat is het dat ervoor zorgt dat die kabels niet te lang mogen worden? Is het de PWM, of komt het door de lage spanning van maar 5V?

Groet,
Johan

NTeering

  • Offline Offline
  • Berichten: 1033
    • ARduino Controlled MOdel RAilway
Re: JCV's (om)bouwdraadje
« Reactie #2 Gepost op: 31 augustus 2015, 11:42:52 »
Hallo Johan,

Eerst over de kabellengte. Dat valt reuze mee. Hoe lang is lang?
Op mijn testbaan (http://forum.beneluxspoor.net/index.php/topic,63567.0.html) heb ik kabels tot 80 cm. in gebruik tussen de Arduino en de servo. Dat geeft geen enkel probleem.

Communicatie tussen twee Arduino's zou wel kunnen door twee pinnen te verbinden. De een als INPUT pin en de ander als OUTPUT pin. Voor  tweerichtingsverkeer moet je dan twee verbindingen maken.
Vervolgens moet je nog wel software schrijven om deze pinnen met elkaar te laten praten.
Daarom is het veel beter om daarvoor het I2C protocol te gebruiken.
Daarbij verbind je ook twee Arduino's met drie draadjes (A4, A5 en Gnd).
Voor de communicatie is er een aparte library beschikbaar. De Wire-library.
De ene Arduino fungeert daarbij als Master en de ander als Slave.

Google even op 'Arduino I2C' en je vindt een hoop informatie.
B.v:
https://www.arduino.cc/en/Tutorial/MasterWriter
en
https://www.arduino.cc/en/Tutorial/MasterReader

Succes,

Nico

JCV

  • Offline Offline
  • Berichten: 223
Re: JCV's (om)bouwdraadje
« Reactie #3 Gepost op: 05 september 2015, 20:39:10 »
Hallo Nico,
Bedankt voor het antwoord.
Lang zou maximaal 2/2.5 meter worden, maar dat hebben we al opgelost door meerdere Arduino boards te gebruiken. Om een Arduino te besparen, hebben we een kabel nodig van max 1.5 meter (volgens mijn schattingen). Maar mooi dat 80 cm geen problemen geeft.

Precies zoals jij het beschrijft, had ik het uitgedacht. Als de ene Arduino pin xx HIGH maakt, merkt de andere Arduino dat (DigitalRead) en gaat er weer dingen mee doen.
I2C kan ook, maar maakt dat de code niet weer véél te gecompliceerd?
Maar ik zal er sowieso naar kijken, want vroeg geleerd is oud gedaan, nietwaar?  ;D

Groet,
Johan

NTeering

  • Offline Offline
  • Berichten: 1033
    • ARduino Controlled MOdel RAilway
Re: JCV's (om)bouwdraadje
« Reactie #4 Gepost op: 05 september 2015, 23:28:11 »
Hallo Johan,

Het ligt er natuurlijk een beetje aan wat je wilt communiceren, maar je moet voortdurend ergens in de main loop die pin aftesten.
Als je alleen een signaal wil geven om de ander andere Arduino iets te laten doen zou het nog kunnen. Een 1 bits communicatie dus.
Maar als je echt data wil versturen van de een naar de ander wordt het een ander verhaal.
In de twee voorbeelden die ik gaf zie je hoe eenvoudig I2C werkt.
De slave voert een event procedure uit als er een bericht binnenkomt. Daar hoef je dus zelf niks extra's voor te programmeren.
Het wordt alleen maar eenvoudiger denk ik met I2C. Je hoeft er zelf bijna niks voor te doen; het kost maar een paar regels extra code en de communicatie werkt geheid. Bovendien stuur je dan byte(s) over wat natuurlijk direct veel meer mogelijkheden geeft. Je kunt dan ook aangeven wat de andere Arduino dan moet doen en niet alleen maar dat hij iets moet doen.
Als je zelf wat gaat programmeren betekent dat ook een boel troubleshooting als het niet wil werken zoals bedoelt.

Nico

JCV

  • Offline Offline
  • Berichten: 223
Re: JCV's (om)bouwdraadje
« Reactie #5 Gepost op: 06 september 2015, 09:25:25 »
Hallo Nico,
Mijn enige doel is dat de een iets gaat doen als de ander ook iets doet. Een 1 bits communicatie dus. Loont het dan nog steeds om I2C te gebruiken?


Groet,
Johan

NTeering

  • Offline Offline
  • Berichten: 1033
    • ARduino Controlled MOdel RAilway
Re: JCV's (om)bouwdraadje
« Reactie #6 Gepost op: 06 september 2015, 12:11:40 »
Hallo Johan,

Als je niet meer nodig hebt dan 1 bit is dat voldoende en heb je geen I2C nodig.
Maar met I2C ben je wel flexibeler.
Ik weet niet hoeveel programmeerervaring je hebt. Niet zo veel denk ik want kennelijk zie je er tegen op om I2C te gebruiken.
Je kunt beginnen met je 1 bits communicatie en later, als je ervaring en daarmee ook je wensen toenemen, er I2C inbouwen.
De keus is aan jou.

Succes,

Nico

JCV

  • Offline Offline
  • Berichten: 223
Re: JCV's (om)bouwdraadje
« Reactie #7 Gepost op: 13 september 2015, 14:09:52 »
Duidelijk. Bedankt voor het advies.

Weet jij dan ook een manier om de standen van de servo's uit te kunnen lezen? ??? Ik zat te denken aan een display (http://www.hobbyelectronica.nl/product/128x64-oled-blauw-i2c/) en dan de servo in de juiste positie zetten met een potmeter, en de stand van de servo printen op het display. Dit display werkt met I2C dus dan leer ik daar mee 'werken'. Of is Servo.read en naar de Serial Monitor sturen handiger?

Groet,
Johan

NTeering

  • Offline Offline
  • Berichten: 1033
    • ARduino Controlled MOdel RAilway
Re: JCV's (om)bouwdraadje
« Reactie #8 Gepost op: 13 september 2015, 14:51:51 »
Hallo Johan,

Servo.read() leest de laatste waarde waarmee de servo is gezet middels servo.write(hoek)
Als je dat dus gebruikt weet je de hoek al en is servo.read niet meer nodig.
Als je de servo aanstuurt middels een andere methode is servo.read() dus onbruikbaar.
Ik weet niet hoe je de potmeter wilt gebruiken om de servo te sturen maar een methode waarbij servo.write gebruikt wordt vindt je hier:
http://www.instructables.com/id/ArduinoServoPotentiometer/

De hoek die is ingesteld kun je vervolgens naar het display sturen of de serial monitor. Voor de monitor(heel simpel) moet de Arduino wel aan de PC hangen.
Met een display heb je dus meer vrijheid, maar is veel complexer. Kan zowel met I2C als SPI. Voor libraries and demo-code zie https://github.com/adafruit/Adafruit_SSD1306
Bedenk wel dat als de servo mogelijk verdraait is door bv. een servo.attach, je niet meer de juiste hoek weet; servo.read is dan ook onbetrouwbaar.

Wel een duur display overigens.
Je kunt 'm ook in China halen:
http://nl.aliexpress.com/item/New-0-96-I2C-IIC-Serial-128X64-OLED-LCD-LED-Display-Module-For-Arduino-55785/32357566914.html?ws_ab_test=201407_5,201444_6,201409_3
Wel 3-6 weken wachten.

Nico
« Laatst bewerkt op: 13 september 2015, 17:07:57 door NTeering »

JCV

  • Offline Offline
  • Berichten: 223
Re: JCV's (om)bouwdraadje
« Reactie #9 Gepost op: 13 september 2015, 19:15:10 »
Hoi Nico,
Wat ik dus wil doen is het volgende:
Om de wissels aan te sturen gebruiken we servo's, die de Arduino aanstuurt. Hiervoor moeten we de precieze standen weten, zodat ik deze goed kan programmeren. Om die standen te weten te komen had ik bedacht dat je een Arduino een potmeter laat 'lezen', en de waarde dan mapt naar een positie voor een servo:
map(val, 0, 1023, 0, 179)
En dan de stand aan de servo geeft, én weergeeft in de Serial Monitor of op het display. Dus zoiets ongeveer:
servo.wissel1
int pot = 0;
int val
#include <Wire.h>
void setup()
{
    Wire.begin
    wissel1.attach(6);
}
void loop()
{
    AnalogRead(pot, val);
    map(val, 0, 1023, 0, 179)
    Servo.write(val)
    Wire.write(val)
}
Maar ik weet niet of het goed is, of het dus werkt.

En dat display is misschien wel duur, maar ik heb wel de garantie dat ik hem ook echt krijg (zie WebWinkel Keurmerk) en dat ik niet opgelicht wordt. Ik heb het ook snel in huis.

Groet,
Johan

NTeering

  • Offline Offline
  • Berichten: 1033
    • ARduino Controlled MOdel RAilway
Re: JCV's (om)bouwdraadje
« Reactie #10 Gepost op: 13 september 2015, 20:16:21 »
Johan,

Je wilt de standen weten omdat dat de twee hoeken zijn waartussen de servo heen en weer gaat?
Dan kun je die twee standen in de code opnemen voor de servo aansturing. Klopt dat?
Oftewel: de servo moet 'getuned' worden.
Dat kan ook simpeler. Momenteel ben ik juist bezig met een programmaatje hiervoor.
Dat vraagt eerst een pinnummer waar de te tunen servo aanhangt. Daarbij worden de twee hoeken op 75 (LOW) en 105 (HIGH) graden gezet, 15 graden om de 90 dus.
Vervolgens kun je, in de serial monitor door op + en - te drukken de waarde van LOW met één graad verhogen of verlagen.
Met 'C' wissel je van de ene hoek naar de ander.
Met 'S' sla je de waardes op in het EEPROM en kun je een nieuw pinnummer opgeven.
In de monitor ziet dat er zo uit:



De invoer gebeurt in het bovenste deel en zie je dus niet terug in de monitor
De beta versie is als volgt:

#include <EEPROM.h>
#include <Servo.h>

struct servoItem
{
  byte angle;
  byte setpoint;
  byte Langle;
  byte Hangle;
  Servo pin;
};
servoItem Servos;
int pin;
boolean Valid;
String inString = "";
byte Command;
char CmdLH;
char Cmd;
unsigned long previousMillis;
boolean LED13state = true;

//========================= Setup ===============
void setup() {
 // initialize serial communication:
 Serial.begin(9600);
 // initialize the LED pin as an output:
 pinMode(LED_BUILTIN,OUTPUT);
 digitalWrite (LED_BUILTIN,LOW);
}
//========================= Loop ================
void loop()
{
GetPin();          //Ask for pin

do
{
  Cmd = GetCmd();
  switch (Cmd)
  {
  case 'S':    // Save settings
    EEPROM.write(100+2*pin,Servos.Langle);
    EEPROM.write(101+2*pin,Servos.Hangle);
    Servos.pin.detach();
    Serial.print("\nAngles saved for pin ");
    Serial.println(pin);
    break;
   
  case '?':
    Serial.println("9       = set servo to 90 degrees");
    Serial.println("+ or -  = increment or decrement selected angle");
    Serial.println("C       = change selected angle");
    Serial.println("S       = store current angles");
    break;
   
  case '9':    //Angle to 90 degrees
    Servos.angle=90;
    break;
   
  case '+':    //Increment angle
    if (CmdLH == 'H')
    {
      Servos.Hangle++;
      Servos.angle=Servos.Hangle;
    }
    else if (CmdLH == 'L' && Servos.Langle < Servos.Hangle-5)
    {
      Servos.Langle++;
      Servos.angle=Servos.Langle;
    }
    else Serial.println("LOW angle may not higher then HIGH angle -5");
    break;
   
  case '-':    //Decrement angle
    if (CmdLH == 'L')
    {
      Servos.Langle--;
      Servos.angle=Servos.Langle;
    }
    else if (CmdLH == 'H' && Servos.Hangle > Servos.Langle+5)
    {
      Servos.Hangle--;
      Servos.angle=Servos.Hangle;
    }
    else Serial.println("HIGH angle may not be lower then LOW angle +5");
    break;
   
  case 'C':
      if (CmdLH == 'L') CmdLH='H'; else CmdLH ='L';
      if (CmdLH == 'L')
      {
        Serial.println("Angle changed to LOW");
        Servos.angle=Servos.Langle;
      }
      if (CmdLH == 'H')
      {
        Serial.println("Angle changed to HIGH");
        Servos.angle=Servos.Hangle;
      }
      break;
     
   default:
   Serial.println ("Invalid input!!");
  }
  // Set Servo
  if (Servos.setpoint != Servos.angle) SetAngle();
 
 } while (Cmd != 'S');
} // end loop

//------------------------- SetAngle ----------
void SetAngle()
 {
    while (Servos.angle > Servos.setpoint)
    {
      Servos.setpoint++;
      Servos.pin.write(Servos.setpoint);  // Set Servo to new angle
      delay (30);
    }
    while (Servos.angle < Servos.setpoint)
    {
      Servos.setpoint--;
      Servos.pin.write(Servos.setpoint);  // Set Servo to new angle
      delay (30);
    }   
    Serial.print("Servo set to angle: ");
    Serial.print(Servos.angle);
    Serial.print(", LOW angle: ");
    Serial.print(Servos.Langle);
    Serial.print(", HIGH angle: ");
    Serial.println(Servos.Hangle);
    Servos.setpoint = Servos.angle;

  }
//------------------------- GetCmd ------------
char GetCmd()
{
    if (CmdLH =='L') Serial.print("\nPlease specify action for angle LOW");
    if (CmdLH =='H') Serial.print("\nPlease specify action for angle HIGH");
    Serial.println(" (9/+/-/C/S/?)");
    FlushWait();
    Command = Serial.read();
    if (Command == 's') Command = 'S';
    if (Command == 'c') Command = 'C';
//    if (Command == '9' || Command == '+' || Command == '-' || Command == 'S' || Command == 'C' || Command == '?') Valid=true;
  return Command;
}
//------------------------- FlushWait --------
void FlushWait()
{
  while(Serial.available())    //Empty inputbuffer
  {
    Serial.read();
  }
  while (!Serial.available())   //Wait for new input
  {
 //   Flash();
    delay (100);
  }
}
//------------------------- GetPin ------------
void GetPin()
{
Valid = false;
while (!Valid)
{
  Serial.println("\nPlease specify pin number");
  Serial.println("For A0 to A5 specify 14 to 19 !");
  FlushWait();
  while (Serial.available() > 0)
  {
    int inChar = Serial.read(); 
    if (isDigit(inChar))
    {
      // convert the incoming byte to a char
      // and add it to the string:
      inString += (char)inChar;
    }
    if (inChar == '\n')
    {
      pin=inString.toInt();
      Serial.print("The current pin number is ");
      Valid=true;
      if (pin>2 && pin<13) Serial.println(pin);
      if (pin==14) Serial.println("A0");
      if (pin==15) Serial.println("A1");
      if (pin==16) Serial.println("A2");
      if (pin==17) Serial.println("A3");
      if (pin==18) Serial.println("A4");
      if (pin==19) Serial.println("A5");
      if (pin<3 || pin==13 || pin>19)
      {
        Serial.println("invalid");
        Valid=false;
      }
      inString = "";
    } 
  }
}
pinMode(pin, OUTPUT);
Serial.println("Pin OK");
Servos.pin.attach (pin);
Servos.Langle=EEPROM.read(100+2*pin);
Servos.Hangle=EEPROM.read(101+2*pin);
if (Servos.Langle==255) Servos.Langle = 75;
if (Servos.Hangle==255) Servos.Hangle = 105;
Servos.angle=Servos.Langle;
Servos.setpoint=Servos.Langle+1;
SetAngle();
Serial.println("Angle set to LOW angle");
Serial.print("Current values for servo on this pin are LOW ");
Serial.print(Servos.Langle);
Serial.print(" and HIGH ");
Serial.println(Servos.Hangle);
CmdLH='L';
}
//------------------------------------------------ Flash LED --------
void Flash()
{
  unsigned long currentMillis = millis();
  digitalWrite(LED_BUILTIN, LED13state);
  if (currentMillis - previousMillis >= 200)
  {
    LED13state = !(LED13state);
    previousMillis = currentMillis;
  }
}

Voor de aansturing zelf kijk even op mijn draadje:
http://forum.beneluxspoor.net/index.php?topic=63567.0

Op de site van Ruud Boer vind je ook sketchjes voor de servo-aansturing middels DCC. Dat heb ik ook gebruikt.
https://rudysmodelrailway.wordpress.com/software/

In jouw programma zit een fout. De Potpin kan nooit pin 0 zijn, maar is pin A0 (=pin 14). Zie step 2 in het verhaal.
Het is ook niet servo.wissel1 maar servo wissel1. Dus zonder punt ertussen. En sluit iedere regel af met ; (puntkomma) !!!
Als je het invoert in de Arduino IDE en compileert zie je vanzelf wat de syntax fouten zijn.

Op Aliexpress is het zeker veilig kopen. Het kan alleen lang duren. Ik heb er al heel veel gekocht, het is allemaal heel goedkoop.
Als er iets niet klopt kun je een 'dispute' openen.
Dat heb ik twee keer gedaan.
Bij mijn eerste Arduino ontbrak de reset switch. Na een dispute hierover kreeg ik de bijna de helft van het bedrag retour. Die Arduino is gewoon bruikbaar en dient nu als loconet terugmelder.
Toen een Arduino mini wel erg lang weg bleef ook een dispuut geopend. Ze gingen het meteen uitzoeken en merkten dat het ding ergens 'lost in the warehouse' was. Ze hebben meteen een andere gestuurd.

Nico
« Laatst bewerkt op: 14 september 2015, 10:40:01 door NTeering »

JCV

  • Offline Offline
  • Berichten: 223
Re: JCV's (om)bouwdraadje
« Reactie #11 Gepost op: 13 september 2015, 20:50:10 »
Johan,

Je wilt de standen weten omdat dat de twee hoeken zijn waartussen de servo heen en weer gaat?
Dan kun je die twee standen in de code opnemen voor de servo aansturing. Klopt dat?
Oftewel: de servo moet 'getuned' worden.
Inderdaad. Klopt.

Dat kan ook simpeler. Momenteel ben ik juist bezig met een programmaatje hiervoor.
Dat vraagt eerst een pinnummer waar de te tunen servo aanhangt. Daarbij worden de twee hoeken op 75 (LOW) en 105 (HIGH) graden gezet, 15 graden om de 90 dus.
Vervolgens kun je, in de serial monitor door op + en - te drukken de waarde van LOW met één graad verhogen of verlagen.
Met 'C' wissel je van de ene hoek naar de ander.
Met 'S' sla je de waardes op in het EEPROM en kun je een nieuw pinnummer opgeven.
...
Deze code moet je dan dus gewoon op de Arduino laden, en dan servo's eraan en gaan met de banaan (hij moet natuurlijk wel aan de computer hangen), toch? Het klinkt erg handig. Is de code af? Want dan gaan we hem als we een Arduino hebben hem gewoon gebruiken.

Het klopt dat er wat fouten in zitten, ik heb hem 'even' in elkaar geflanst, maar een ding snap ik niet:
Volgens deze Amerikaan:
laat maar, ik heb het verkeerd onthouden...

Hmm, ervaringen, altijd interessant. Fijn dat Aliexpress toch te vertrouwen is, in tegenstelling tot Miniinthebox.com, waar ik eerst terecht kwam: 99 van de 100 reviews was: Ik ben opgelicht, ze zijn niet te vertrouwen, bestel hier niks, dit zijn dieven, enz. Dus sindsdien ben ik gaan letten op keurmerken, en HobbyElctronica heeft er een, dus was ik over. Maar ik zal er nog eens over na denken of ik de gok wil wagen met Aliexpress.

Groet,
Johan

NTeering

  • Offline Offline
  • Berichten: 1033
    • ARduino Controlled MOdel RAilway
Re: JCV's (om)bouwdraadje
« Reactie #12 Gepost op: 13 september 2015, 22:34:55 »
Johan,

Het programmaatje werkt inderdaad.
1) Arduino IDE installeren
2) Knip en plak de code naar bv SetServo.ino
3) Open dit bestand in de IDE
4) Selecteer bij 'hulpmiddellen' het juiste board en com-poort
5) Upload het naar de Arduino via de USB kabel
6) sluit een servo aan op een pin (3 t/m 12 of A0 t/m A5)
7) start de monitor

Het opslaan van de waardes in het EEPROM is nuttig bij de aansturing van de servo's via DCC.
Je kunt de waardes dan weer teruglezen.
Als je daar nog niks aan hebt, kun je gewoon de gevonden waardes noteren.
Wel op 'S' drukken om een volgende pin te selecteren.
Iedere ingave moet worden afgesloten met <enter>.

Dat display aan de gang krijgen lijkt me nog best ingewikkeld. Zou er dus nog maar even niet aan beginnen.

Aliexpress is zelf geen winkel maar een site waar leveranciers hun spullen aanbieden. Bestellen en betalen gebeurt wel via AliExpress.
Bestel voor maximaal €22,- per leverancier, anders gaat de douane zich ermee bemoeien.
En als je iets besteld hebt voor een paar euro en het gaat toch mis, is de schade beperkt.

Nico
« Laatst bewerkt op: 13 september 2015, 22:47:07 door NTeering »

JCV

  • Offline Offline
  • Berichten: 223
Re: JCV's (om)bouwdraadje
« Reactie #13 Gepost op: 17 november 2015, 20:14:11 »
Helpdesk! Iemand?

Help is zeker nodig. Paar weken geleden een Arduino Micro besteld en ook ontvangen. De zondag daarop op de club geprobeerd te programmeren, maar het ging niet. Toen thuis nog eens geprobeerd, ook hier lukte het niet.  :-\ Op de club was het op een computer die op XP draait, thuis een op Ubuntu Linux. Op de club krijgen we de foutmelding: "avrdude: butterfly_recv(): programmer is not responding Probleem bij uploaden naar het board. Zie (link naar Troubleshooting page van Arduino) voor suggesties."
Hier thuis zijn de USB-poorten niet geactiveerd, waardoor ik de COM-port niet in kan stellen via Tools -> Serial Ports. Ik heb de Troubleshooting page op de Arduino website al door gelezen, maar het lijkt er niet op dat daar het probleem, en dus ook de oplossing staat. Als ik de Micro stroom geef, gaat er een blauwe LED branden aan de onderzijde, en aan de bovenzijde gaat een groene LED knipperen. Wat ik dus denk is dat er wel een bootloader op staat. De TX en RX LEDs knipperen niet als hij aangesloten is op de computer. Ik zou niet weten wat te doen, iemand anders wel? ???
Overigens ga ik anders naar het Arduino forum.

Groet,

Johan

NTeering

  • Offline Offline
  • Berichten: 1033
    • ARduino Controlled MOdel RAilway
Re: JCV's (om)bouwdraadje
« Reactie #14 Gepost op: 17 november 2015, 23:04:29 »
Hallo Johan,

Had je dit draadje al gevonden:
http://forum.beneluxspoor.net/index.php?topic=66902.0

Welke Arduino heb je? Doorgaans gebruiken we een Arduino UNO R3; deze heeft geen blauwe led aan de onderkant.
Welke programmer gebruik je? Maak een screendump (Hulpmiddelen --> programmer)
Al eens een andere programmer geprobeerd?
Heb je op de club wel de juiste USB-seriël drivers geïnstalleerd?
Wat bedoel je met USB-poorten niet geactiveerd? Zonder COM-poort gaat het natuurlijk nooit lukken.
Windows XP is wel erg oud. Geen PC met Windows 7 of nieuwer?
Gaat het compileren wel goed? Welk programma probeer je? Begin eerst met het voorbeeld programmaatje Blink.

Nico