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

Toon hier je nieuwe (model-) spooraanwinst(en)... door Pauldg
Vandaag om 16:03:04
Ronald en Wanda's "Southern Comfort" swamp layout! door Jeronimos
Vandaag om 15:56:35
Bisonkit verdunner door Klaas Zondervan
Vandaag om 15:33:46
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
Stationsplein Baden Baden door Dave.......
Vandaag om 15:03:18
US diorama in H0 door cor_b
Vandaag om 15:01:49
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
Vandaag om 14:30:51
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
Frans/Belgisch H0e baantje door NS264
Vandaag om 14:03:38
Onlangs gespot - gefotografeerd, de foto's door Modellbahnwagen
Vandaag om 13:36:18
Bouw van materieel 40 treinstellen door Rob Ellerman
Vandaag om 13:34:47
NS 8400 van Werps door Gert Arkema
Vandaag om 12:10:55
Een diorama in TT (VEB Schwellenrost) door RK
Vandaag om 12:10:27
Pfarrerwinkel bahn door Wim Vink
Vandaag om 11:55:45
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
Mini baantje `` De visafslag`` door spoorijzer
Vandaag om 09:39:16
3,51° ofzoiets 😉 door Huup
Vandaag om 09:28:35
Vergelijkings-/conversietabel modelverven door Gerard
Vandaag om 09:21:30
De fabriek - Spoor 0 door spoorijzer
Vandaag om 09:05:18
Jouef, Electrotren, Rivarossi en Lima 2024, nieuws van de fabrikant door Arjan6511
Vandaag om 09:04:01
Hengelo in 1981-1982, maar dan anders: Kassenberg in N door Mispoes
Vandaag om 08:16:54
Toon hier je pas gereed gekomen (model-)spoorbouwsels ... door Bob R.
Vandaag om 08:01:28
Bahnstrecke 5867 door frits959
Vandaag om 03:21:09
  

Auteur Topic: Snelheidsregelaar met Arduino Uno en TA8050.  (gelezen 16462 keer)

Klaas Zondervan

  • Offline Offline
  • Berichten: 25269
    • Pagina van klaas
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #30 Gepost op: 26 november 2014, 13:42:45 »
Nog een suggestie: kijk eens naar de schema's van mijn Permaloog systeem, en dan in het bijzonder de HF oscillator. Daarin zit een trimpotmeter om het signaal symmetrisch te maken. Die bleek nodig te zijn omdat bij een directe terugkoppeling van de uitgang naar de -ingang van de opamp de positieve en negatieve pulsen niet precies evenlang waren. Daar gingen de locs op kruipen.

Ik heb dat in hardware gemaakt, maar is softwarematig ook wel te doen. Op de rails krijg je dan een blokvormige wisselspanning. Zolang de pulsen symmetrisch zijn doet de loc niks, maar ga je ze bewust asymmetrisch maken, dan zal hij de ene of de andere kant op rijden.
Wel oppassen met klokankermotoren, die gaan in rook op als je er langdurig een HF wisselspanning op zet (ervaringsfeit), maar gewone motoren met een ijzeren anker hebben daar geen last van.

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #31 Gepost op: 26 november 2014, 15:17:15 »
Ah, dit zou kunnen. Maar dan een vraag van mij. 50Hz en 100Hz zijn geen standaard frequenties op de Arduino. Hiervoor moet je de resolutie al aanpassen (= verkleinen). Ook blijf je spreken van procenten dus ik neem aan dat je in die library de snelheid in procenten op geeft? Als dat zo is zou ik je willen vragen eens te testen zonder die library. Je snijdt jezelf namelijk al in de vingers als je voor een 0-100 bereik kiest ipv 0-255. Helemaal omdat het intern toch gemapt zal worden naar iets dat geen 0-100 bereik heeft. Zo krijg je een aardige onnauwkeurigheid in je stappen. Zo kan dus een aantal stappen groter zijn dan andere, iets dat voor een mooi soepen rijgedrag niet helpt. Wil je dus een lage frequentie gebruiken zou ik eens kijken naar de 123Hz. Hierop zie je LEDverlichting niet meer knipperen en is een dus nog laag te noemen. Vervolgens kan je gewoon rijden met analogWrite() met een waarde tussen 0-255. En ja, 0-100 bereik klinkt lekker makkelijk voor ons als mensen maar ik zou toch proberen te gaan voor wat natuurlijk is voor een Arduino en dat is 8-bit.

Overigens kan het inderdaad nog zijn dat op de hoge frequentie (dus in de kHz) de loc niet gelijk begint te lopen maar, zoals je al aan gaf, bij 5% ofzo. Maar dit is dan waarschijnlijk door de kleef die de loc heeft in stilstand. Nadat de loc eenmaal in beweging is kan je waarschijnlijk verder terug regelen. Dit was dus de rede dat ik over de hoge PWM frequentie nog een lage software PWM had van 80Hz. Dat was wel op een PIC microcontroller met een 10-bit PWM.

@Klaas, kan jij aangeven op welke frequentie die HF generator werkt bij permaloog?


Timo
Verzonden vanaf mijn desktop met Firefox

Klaas Zondervan

  • Offline Offline
  • Berichten: 25269
    • Pagina van klaas
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #32 Gepost op: 26 november 2014, 15:31:08 »
De Permaloog oscillator loopt op 20kHz. Maar voor de goede orde, die is bij mij niet bedoeld om te rijden, maar om continu spanning op de baan te hebben voor de verlichting. Ik heb die spanning juist moeten symmetreren om te voorkomen dat locs er op gaan rijden.
Wat ik nu aan Max adviseer is dus precies wat ik zelf probeer te vermijden.

Max Roodveldt

  • Offline Offline
  • Berichten: 258
  • 't is maar 'n spelletje...
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #33 Gepost op: 26 november 2014, 15:47:40 »
Ah, dit zou kunnen. Maar dan een vraag van mij. 50Hz en 100Hz zijn geen standaard frequenties op de Arduino. Hiervoor moet je de resolutie al aanpassen (= verkleinen). Ook blijf je spreken van procenten dus ik neem aan dat je in die library de snelheid in procenten op geeft? Als dat zo is zou ik je willen vragen eens te testen zonder die library. Je snijdt jezelf namelijk al in de vingers als je voor een 0-100 bereik kiest ipv 0-255. Helemaal omdat het intern toch gemapt zal worden naar iets dat geen 0-100 bereik heeft. Zo krijg je een aardige onnauwkeurigheid in je stappen. Zo kan dus een aantal stappen groter zijn dan andere, iets dat voor een mooi soepen rijgedrag niet helpt.

In de Arduino gebruik ik stappen 0..255. Die 0..100% zijn inderdaad alleen maar om dat makkelijker klinkt. En omdat overal de arbeidscyclus in %% wordt aangeven. En zo helpen we dus stap voor stap de spraakverwarring de wereld uit. ;D

Citaat
Wil je dus een lage frequentie gebruiken zou ik eens kijken naar de 123Hz. Hierop zie je LEDverlichting niet meer knipperen en is een dus nog laag te noemen. Vervolgens kan je gewoon rijden met analogWrite() met een waarde tussen 0-255. En ja, 0-100 bereik klinkt lekker makkelijk voor ons als mensen maar ik zou toch proberen te gaan voor wat natuurlijk is voor een Arduino en dat is 8-bit.

Kun jij gedachten lezen? ;) Ik zit net te kijken wat de mogelijke vaste waarden zijn: 31 Hz, 62 Hz of 122 Hz. Want dan heb ik inderdaad die library niet meer nodig.

Wat ik nu aan Max adviseer is dus precies wat ik zelf probeer te vermijden.

Dat is fraai - aan zulke adviezen heb ik wat... ;D ;D ;D (er ontbreekt op dit forum 'n LOL (schateren) emoticon...)

mvg,

Max.
"And these visions of Johanna are now all that remain" - Bob Dylan (1966)

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #34 Gepost op: 26 november 2014, 15:55:31 »
@Klaas, dat snap ik. Vroeg het me gewoon af  ;D

@Max, is een kleine gave  ;D Maar omdat ik in me glaze bol even niet kon vinden welke lib je gebruikte wist ik niet of die misschien gemapt was op 0-100, want dat zou zonde zijn.  ;D


Timo
Verzonden vanaf mijn desktop met Firefox

Max Roodveldt

  • Offline Offline
  • Berichten: 258
  • 't is maar 'n spelletje...
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #35 Gepost op: 27 november 2014, 14:03:57 »


Nieuw schema - veel eenvoudiger dan dit zal 't niet worden. (tenzij ik de display weglaat...)

/****************************************************************************/

#include <Wire.h> // display libraries
#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"

Adafruit_7segment display = Adafruit_7segment();

#define port1  9 // DL1 TA8050 H-bridge
#define port2 10 // DL2 TA8050 H-bridge

int value; 
int cycle;

bool left  = false;
bool right = false;

/****************************************************************************/

void setup() {
 
  pinMode(port1, OUTPUT);
  pinMode(port2, OUTPUT);
 
  // set PWM frequency timer 1 to 122 Hz
  // base frequency 31250 / 256 = 122 Hz
 
  TCCR1B = TCCR1B & 0b11111000 | 0x04; // set timer 1 divisor 256
   
  analogWrite(port1, 0);
  analogWrite(port2, 0);
   
  display.begin(0x70); // set display
  display.setBrightness(7); // 0..15
   
} // end setup

/****************************************************************************/

void loop() {  // main loop
   
  value = analogRead(0) / 2; // read pot.: 0..511
  cycle = 0;

  // value: 0..249 = left, 250..260 = deadband, 261..511 = right   
   
  if (value < 250) left  = true; else left  = false;
  if (value > 260) right = true; else right = false;

  if (left) { // write duty cycle to PWM port1
    cycle = 255 - value; // duty cycle between 5..255
    analogWrite(port2, 0);
    analogWrite(port1, cycle);
  }
   
  if (right) { // write duty cycle to PWM port2
    cycle = value - 256; // duty cycle between 5..255
    analogWrite(port1, 0);
    analogWrite(port2, cycle);
  }
   
  if (!left && !right) {
    analogWrite(port1, 0);
    analogWrite(port2, 0);
  }

  // cycle: 255 (left) - 0 - 255 (right)
 
  display.println(cycle); // duty cycle to display
  display.writeDisplay();
   
} // end loop

/****************************************************************************/

Aangepaste code - zonder PBM library...

Resultaten van bovenstaande aanpassingen:

Meetopstelling:
•   Voedingsspanning 12 volt DC.
•   PBM frequentie 122 Hz.
•   PBM arbeidscyclus regelbaar in 255 stappen. (0-100%)
•   Rail ovaal.
•   Scoop.
•   HP 35s Calculator.

GE 45:   start bij stap 25, 20 km/h bij stap 100, regelbereik 75 stappen.
GE 44:   start bij stap 30, 20 km/h bij stap   56, regelbereik 26 stappen.
Alco S2: start bij stap 35, 20 km/h bij stap   65, regelbereik 30 stappen.

Conclusie:
eigenlijk is van deze locs alleen de GE 45 echt geschikt om te rangeren. Van de andere 2 is de topsnelheid te hoog en derhalve het lage snelheidsregelgebied te klein. Bij oudere locs is het probleem alleen maar groter omdat vaak de topsnelheid veel hoger is. Een Athearn Hustler - met snaaraandrijving - haalt wel 250 km/h... ;D

De schakeling zelf werkt prima: geen gebrom en/of gefluit; goed regelbaar; stabiel; makkelijk uit te breiden met allerlei toeters en bellen (optrek- en rem-vertraging, start en snelheid instelling,  lichtsluis, stopwatch, enz.).

Het betekent wel dat ik op zoek moet naar locomotieven met een zo laag mogelijke maximale snelheid - of bestaande exemplaren moet ombouwen. En dat ik met aanschaf van "oud" spul heel voorzichtig zal moeten zijn...  8)

Wordt vervolgd.

mvg,

Max.

"And these visions of Johanna are now all that remain" - Bob Dylan (1966)

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #36 Gepost op: 27 november 2014, 15:22:02 »
Yep, gelukkig zijn fabrikanten er langzaam ook achter dat de overbrenging omhoog mocht voor lagere topsnelheid en lagere kruipsnelheid.

Nog een vraagje. Hoe heb je die minimale snelheden bepaald? Door steeds de snelheid met een stapje te verhogen tot de loc in beweging komt? Zo ja, dan kan je nog eens testen of de loc daarna misschien nog een stapje omlaag kan zonder tot stilstand te komen.

En wat betreft de code, snelle scan. Probeer in de setup eerst de belangrijke dingen te doen (zorgen dat de motordriver uit is) en dan pas de rest. Ik heb even niet in de Atmega328 opgezocht of de state van de pinnen vast ligt na reset maar ga uit van wel. Maar voor de zekerheid, doe eerst pinMode() en dan gelijk de analogWrite(). Dan pas klok aan gaan passen en andere dingen doen. Zo definieer je zo snel mogelijk je pinnen en trek je ze laag zodat de motordriver niet per ongeluk even aan kan gaan bij het inschakelen.

En nog een klein doorzaagpuntje, de Arduino groep heeft het liefst dat je geen DEFINE gebruikt voor een port aanwijzing maar een const.
#define port1  9 // DL1 TA8050 H-bridge
#define port2 10 // DL2 TA8050 H-bridge
Zou dan worden
const unsigned int PwmDL1 =  9 // DL1 TA8050 H-bridge
const unsigned int PwmDL2 =  10 // DL2 TA8050 H-bridge
Hierbij heb ik ze gelijk logischere namen gegeven (want port1 en port2 zegt echt niets als je de boel uitbreid  ;D) en volgens Arduino gebruik heb ik de const variabele laten beginnen met een hoofdletter (PwmDL1 en PwmDL2). Met een find and replace moet je natuurlijk dit ook doorvoeren in de rest van je programma.

Je gebruikt nu twee booleans voor de richting. Maar ze sluiten elkaar uit dus dat is niet echt nodig. Die zou je dus net zo goed kunnen veranderen in een boolean direction. Sterker nog, je zou het ook gewoon op kunnen nemen in je je speed. Negatief voor links en positief voor rechts. Code kan dan dit worden
void loop() {  // main loop
int speed;

speed = map(analogRead(SpeedKnob), 0, 1023, -255, 255); //map the SpeedKnob value to a speed between -255 (left) and 255 (right)

if(speed <= 5 && speed >=-5){ //5 point deadband around 0
analogWrite(PwmDL1, 0);
analogWrite(PwmDL2, 0);
}
else if(speed < 0){ //so turn left, deadband excluded
analogWrite(PwmDL2, 0);
analogWrite(PwmDL1, -speed);   //analogWrite expects a positive value, double negative is positive again
}
else{ //or it's right
analogWrite(PwmDL1, 0);
analogWrite(PwmDL2, speed);
}

display.println(cycle); // duty cycle to display
display.writeDisplay();
}


Succes verder!

Timo

PS Kleine voetnoot, code is geschreven op basis van de orginele code en niet gecompiled. Er kunnen dus kleine fouten in zitten maar het gaat om de basis.
« Laatst bewerkt op: 27 november 2014, 15:33:29 door Timo »
Verzonden vanaf mijn desktop met Firefox

De Stoker

  • Offline Offline
  • Berichten: 783
  • H0 - TC - Digirails - KL 8.2 1920-1950
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #37 Gepost op: 27 november 2014, 15:31:17 »
Leuk topic, deze ga ik eens doorlezen, in afwachting op de levering van mijn Arduino's

Max Roodveldt

  • Offline Offline
  • Berichten: 258
  • 't is maar 'n spelletje...
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #38 Gepost op: 27 november 2014, 15:46:06 »
Nog een vraagje. Hoe heb je die minimale snelheden bepaald? Door steeds de snelheid met een stapje te verhogen tot de loc in beweging komt? Zo ja, dan kan je nog eens testen of de loc daarna misschien nog een stapje omlaag kan zonder tot stilstand te komen.

Inderdaad. Precies zo... ;) Dat werkt 't best.

Je opmerkingen inzake m'n code zal ik ter harte nemen - met uitzondering van links en rechts. :)
Ik vind soms verschillende waarden voor links en rechts rijden en die worden dan verschillend ingesteld zodat de rijsnelheid gelijk wordt.
Dan krijg ik iets als speedLeft en speedRight... 8)

In ieder geval hartelijk dank voor je bijdrage. (y)

Nu kunnen de toeters en bellen weer terug in de schakeling en de code.

mvg,

Max.
« Laatst bewerkt op: 27 november 2014, 17:33:45 door Max Roodveldt »
"And these visions of Johanna are now all that remain" - Bob Dylan (1966)

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #39 Gepost op: 27 november 2014, 17:28:48 »
Hoi Max,

Ik was al weer vergeten dat je wilt rijden met een schakelaar  ;D Maar dan nog zou het wel handig kunnen zijn om speed gewoon tussen -255 - 255 te gebruiken en er alleen voor links en rechts een andere waarde in zetten. Dus aan de hand van de schakelaar speed = speedLeft of speed = speedRight waarbij speedLeft dus een negatief getal is. Je hebt dan altijd genoeg aan het schrijven naar één variable om de snelheid en richting in te stellen.

Ow, en als je nog eens een keer een kort if else statement hebt kan je hem inkorten

if( a == b){
  c = HIGH;
}
else{
  c = LOW;
}
kan je verkorten tot
(a == b ? c = HIGH : c = LOW);
of
c = (a == b ? HIGH : LOW);

Gebruik je dit voor complexe statements wordt het wel een zooitje  ;D Maar vooral als je één var aan wilt passen aan de hand van een statement is het lekker kort en overzichtelijk.


Timo[/code]
« Laatst bewerkt op: 27 november 2014, 17:32:08 door Timo »
Verzonden vanaf mijn desktop met Firefox

Max Roodveldt

  • Offline Offline
  • Berichten: 258
  • 't is maar 'n spelletje...
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #40 Gepost op: 27 november 2014, 17:45:24 »
Timo,

't bestaan van die ingekorte statements is me bekend, maar ik moet eerlijk zeggen dat ik ze zo weinig mogelijk gebruik.
Vooral omdat ik maanden later soms moeite heb m'n eigen schrijfsels terug te lezen.
Vandaag schrijf ik wat voor m'n Arduino, morgen misschien weer iets in Javascript of C/C++.
Als ik dan te kort schrijf of geen commentaar genoeg hebt aangebracht zie ik door de bomen 't bos niet meer.
M'n korte termijn geheugen is ook niet meer wat 't geweest is...  ;D

Max.
"And these visions of Johanna are now all that remain" - Bob Dylan (1966)

Max Roodveldt

  • Offline Offline
  • Berichten: 258
  • 't is maar 'n spelletje...
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #41 Gepost op: 20 december 2014, 15:11:30 »


Na een paar weken rondjes rijden, meten en knutselen: een PBM regelaar tbv rangeren – en veel eenvoudiger dan dit zal ’t niet worden…  8)

Een kleine toelichting:

•   P1 – regelt de snelheid.
•   P2 – begrenst de maximale snelheid.
•   S – bepaald de rijrichting.

Afhankelijk van de geladen software zijn er verschillende mogelijkheden. Zo kan de rijrichtingsschakelaar worden weggelaten: dan wordt met P1 zowel de snelheid als de rijrichting bepaald (stop in de middenstand). En als de maximum snelheidsbegrenzing niet nodig is kan P2 er ook uit.

De getekende schakelaar is ’n drie standen exemplaar maar met ’n twee standen werkt ’t ook.

Voeding: het werkt prima met een – oude – laptop voeding van 12 volt. Als een voeding met een hogere spanning wordt gebruikt is het aan te bevelen de getekende spanningsregelaar toe te passen – wel is waar zou de Arduino Uno bestand zijn tegen een spanning van max. 20 volt maar je weet maar nooit…  ;)

Opmerkingen:

In de software staat de PBM frequentie ingesteld op 31 kHz. Dit is een in de Arduino ingebouwde standaard frequentie. Andere standaard opties zijn 4 kHz, 488 Hz, 122 Hz en 30 Hz. Alternatieve frequenties zijn (bij gebruik van een bibliotheek) mogelijk maar gaven niet ’t gewenste resultaat – met name in het regelbereik. Het grootste bezwaar tegen frequenties onder de 20 kHz is het geluid: variërend van hoorbaar fluiten tot brommen.

In alternatieve schema’s waarin de TA 8050 wordt gebruikt ontbreken de twee weerstanden R1 en R2. Weglaten kan leiden tot een onbepaald gedrag bij het opstarten of resetten van de Arduino, dwz de loc rijdt even op topsnelheid in willekeurige richting weg. Ietwat slordig…  :D

In plaats van een Arduino Uno kunnen ook andere Arduino’s gebruikt worden. Een goed alternatief lijkt de Arduino Pro Mini 5v. In dat geval zal de spanningsregelaar hoe dan ook moeten worden gebruikt. Het wachten is op de postbode…  (y)

Hier de Arduino sketch voor de uitvoering zonder schakelaar en maximum snelheid begrenzer:

/*****************************************************************************
  kale versie met potmeter: links - stop - rechts
*****************************************************************************/

const int PwmDl1 =  9;                           // Dl1 TA8050 H-bridge left
const int PwmDl2 = 10;                           // Dl2 TA8050 H-bridge right

bool left  = false;
bool right = false;

/****************************************************************************/

void setup() {                     // set PWM frequency timer 1 to 31,25 kHz.
  TCCR1B = TCCR1B & 0b11111000 | 0x01;
}

/****************************************************************************/

void loop() {
   
  int value = analogRead(0) / 2;                // read potentiometer: 0..511
  int cycle = 0;
  delay(100);

  // value: 0..249 = left, 250..260 = deadband, 261..511 = right   
   
  if (value < 250) left  = true; else left  = false;
  if (value > 260) right = true; else right = false;

  if (left) {                               // write duty cycle to PWM PwmDL1
    cycle = 255 - value;                    // duty cycle between 5..255
    analogWrite(PwmDl2, 0);
    analogWrite(PwmDl1, cycle);
  }
   
  if (right) {                              // write duty cycle to PWM PwmDL2
    cycle = value - 256;                    // duty cycle between 5..255
    analogWrite(PwmDl1, 0);
    analogWrite(PwmDl2, cycle);
  }
   
  if (!left && !right) {
    analogWrite(PwmDl1, 0);
    analogWrite(PwmDl2, 0);
  }
}

/****************************************************************************/

Wordt vervolgd…

Mvg

Max.
"And these visions of Johanna are now all that remain" - Bob Dylan (1966)

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #42 Gepost op: 20 december 2014, 15:49:16 »
De getekende schakelaar is ’n drie standen exemplaar maar met ’n twee standen werkt ’t ook.
Een aan-uit schakelaar moet ook werken en heb je maar één input nodig. NIet dat dit slecht is maar puur als aanvulling.

In alternatieve schema’s waarin de TA 8050 wordt gebruikt ontbreken de twee weerstanden R1 en R2. Weglaten kan leiden tot een onbepaald gedrag bij het opstarten of resetten van de Arduino, dwz de loc rijdt even op topsnelheid in willekeurige richting weg. Ietwat slordig…  :D
Denk dat het inderdaad een goed idee is. Maar iets wat hiermee te maken heeft en ik mis in je code is netjes een pinMode() configuratie in setup().  ;)

In plaats van een Arduino Uno kunnen ook andere Arduino’s gebruikt worden. Een goed alternatief lijkt de Arduino Pro Mini 5v. In dat geval zal de spanningsregelaar hoe dan ook moeten worden gebruikt.
Nee hoor ;D De Arduino Pro Mini is prima te gebruiken zonder voltage regulator. De term 5v wijst alleen op de interne spanning van het Arduino bordje. Je hebt hem ook op 3,3V en deze loopt op 8Mhz (sneller dan dat is instabiel op 3,3V). Maar de Arduino Pro Mini is gewoon voorzien van een spanningsregulator  ;D

Wat betreft de code, mooi simpel voorbeeldje. Maar ontbreekt eigenlijk de nette pinMode() declaratie. Ook heeft de input van de potmeter geen mooie toegankelijke naam gekregen  ;) En de if, if, if constructie kan je vervangen door een if, else if, else if constructie. Voor hier niet echt van toepassing maar scheelt de Arduino weer checks :p

Ook prima schema. Denk er inderdaad aan dat je na een 78xx niet een grote condensator aansluit maar inderdaad zoals jij hebt gedaan ervoor (de 10uF).


Veel plezier met knutselen!

Timo
Verzonden vanaf mijn desktop met Firefox

Max Roodveldt

  • Offline Offline
  • Berichten: 258
  • 't is maar 'n spelletje...
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #43 Gepost op: 20 december 2014, 16:11:33 »
Wat betreft de code, mooi simpel voorbeeldje. Maar ontbreekt eigenlijk de nette pinMode() declaratie.

en dat terwijl ik in de Arduino handleiding lees dat dat voor een eenvoudige analogWrite niet nodig is...  ;D

Citaat
Ook heeft de input van de potmeter geen mooie toegankelijke naam gekregen  ;)

daar heb je volkomen gelijk in - vergeten... (iets met m'n korte termijn geheugen...)  :)

Citaat

En de if, if, if constructie kan je vervangen door een if, else if, else if constructie. Voor hier niet echt van toepassing maar scheelt de Arduino weer checks :p

dat komt omdat ik deze constructie nodig heb voor nog aan te brengen toeters en bellen - ik weet 't: zwak excuus...  ;D

Citaat
Veel plezier met knutselen!

hartelijk dank en hetzelfde...  (y)

mvg,

Max
"And these visions of Johanna are now all that remain" - Bob Dylan (1966)

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Snelheidsregelaar met Arduino Uno en TA8050.
« Reactie #44 Gepost op: 20 december 2014, 16:18:15 »
en dat terwijl ik in de Arduino handleiding lees dat dat voor een eenvoudige analogWrite niet nodig is...  ;D
pinMode is inderdaad niet nodig voor analogWrite() maar wel best practice. Ook zorgt dit ervoor dat de pin gelijk laag getrokken wordt bij het opstarten en niet pas in de eerste keer dat de loop doorlopen wordt. Maar aangezien de bootloader toch even tijd inneemt met opstarten zijn de pull downs net zo makkelijk.

Dat komt omdat ik deze constructie nodig heb voor nog aan te brengen toeters en bellen - ik weet 't: zwak excuus...  ;D
Ga je een situatie maken waarin left en right tegelijk true zijn?  ;D


Timo
Verzonden vanaf mijn desktop met Firefox