Doel:€250.00
Donaties:€88.00

Per saldo:€-162.00

Steun ons nu!

Laatst bijgewerkt
op 03-06-2025

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Uhlenbrock Iris door Ronald Halma
Vandaag om 19:43:54
Mijn eerste H0-modeltreinbaan in aanbouw door wob
Vandaag om 19:38:40
Bentheimer Eisenbahn, gisteren, vandaag en morgen. door Bertholdowitsch
Vandaag om 19:29:40
24e smalspoormodelbouwdagen 30 en 31 augustus 2025 bij Stoomtrein Katwijk Leiden door Ronald Halma
Vandaag om 19:27:59
Eén leuke of mooie trein/spoor foto van je vakantie. door prutser
Vandaag om 19:25:26
ByPass Junction, een Amerikaanse modelbaan in N door einte
Vandaag om 19:14:30
Am Ende der Strecke, modulebaan op 1 M2 door Frank 123
Vandaag om 18:56:27
Ervaringen met bezorgdiensten (PostNL, DHL, etc) door Klaas Zondervan
Vandaag om 18:54:46
US diorama in H0 door moonlicht
Vandaag om 18:44:41
Station Roodeschool door Torikoos
Vandaag om 18:42:39
Ombouw Hornby LMS Class 2P 4-4-0 naar NS 2100 door Erwin 054
Vandaag om 18:42:16
Nieuwe ruimte voor baan na ca. 30 jaar door ruudns
Vandaag om 18:24:13
Bahnstrecke 5867 door Frank 123
Vandaag om 18:06:32
Mooi weer om buiten te spelen door sncf231e
Vandaag om 16:15:22
Swalbenburg, N modulebaan door NS264
Vandaag om 16:14:55
Esu Loksound - NS Wadloper? door Torikoos
Vandaag om 16:14:38
Onlangs gespot - gefotografeerd, de foto's door RdJ
Vandaag om 15:49:38
Haperende/Gevoelige Sik: wat te doen? door ronaldvd2000
Vandaag om 15:24:54
Bouw van OCCRE G10 in CIWL livrei in spoor 1 door Rob Ellerman
Vandaag om 15:17:11
Modelspoorbaan van Einte door Wim Vink
Vandaag om 15:12:20
Stationsplein Baden Baden door Dion
Vandaag om 15:10:51
Configureren GCA50/GCA50a door cbouwhuis
Vandaag om 15:09:40
Länderbahn en Reichsbahn locomotieven. door puntenglijder
Vandaag om 15:04:57
Minstens 5 jaar geen treinverkeer Groningen-Leer [D] door dennie
Vandaag om 14:47:24
Toon hier je nieuwe (model-) spooraanwinst(en)... door Dion
Vandaag om 14:42:55
De overeenkomst tussen een Ovaalramer en een Motorpost. door Pauldg
Vandaag om 13:10:53
Aanbrengen van (kleine) nummerplaten en dergelijke door Duikeend
Vandaag om 13:07:40
Module vliegveld Jan van Mourik door MOVisser
Vandaag om 12:58:51
Raadplaatje door hervé
Vandaag om 11:26:43
't Boemeltje door RobVille
Vandaag om 10:34:15
  

Auteur Topic: Pulsbreedte via Arduino en transistor  (gelezen 5465 keer)

wimk

  • Offline Offline
  • Berichten: 827
    • kusee.nl
Pulsbreedte via Arduino en transistor
« Gepost op: 29 September 2016, 20:48:08 »
Beste mensen,

Ik zit nogal met mijn handen in het haar, weet niet wat ik fout doe.
Het gaat om een analoge baan. Met een Arduino Mega wil ik een pulsbreedte-signaal opwekken, via een transistor versterken, zodat ik de motor van de trein vanuit de Arduino kan regelen. De schakeling is zoals in het plaatje hieronder weergegeven. De weerstand is 1 kOhm, de transistor is een S8050 (NPN) transistor.


De puls wek ik op met de Arduino op poort 11 met in het Arduino-programma de volgende regel:
  analogWrite(11,100);
De waarde 11 in dit commando is het poortnummer van de Arduino Mega.
De waarde 100 in dit commando kan varieren tussen 0 (geen signaal) en 255 (vol signaal).

Als ik het geheel bouw, en geef de waarde 0 in het analogWrite-commando, dan gaat de trein toch rijden. Bij 255 rijdt hij wel wat harder, maar ook niet heel hard. De transistor wordt erg heet, en als ik wat langer doorga (enkele tientallen seconden), dan brandt deze door, zal daarna in de kapotte situatie altijd geleidend zijn maar ook dan weer voor een deel.

Mijn gedachte is, dat ik het signaal vanuit de Arduino (490 hertz) op de basis van de transistor zet, dat de stroom vanuit Arduino via basis-collector bij een voltage van 5 volt en een weerstand van 1000 ohm dan 5/1000 oftewel 5 milliampere zal zijn, en dat de stroom emittor-collector (bij een versterkingsfactor 100 van de transistor) dan 500 milliampere kan zijn. Het datasheet van de S8050 geeft aan een voltage van 40 (dus in mijn situatie met 12 volt ruim voldoende) bij een stroom van 0.5 Amp (dus ook voldoende; de loc trekt normaal 300 tot 400 milliampere).

Wat doe ik fout? Waarom rijdt de loc ook bij een aansturing met 0 (nul) in de analogWrite van de Arduino? Waarom wordt de transistor zo heet, dat hij bij langer gebruik (een halve minuut) doorbrandt? Wat ik vooral vreemd vindt is het feit dat de loc bij een stuursignaal van nul toch gaat rijden. Zonder puls zou dat niet mogen. Is er doorslag op de transistor, een soort kortsluiting op de transistor? Ik weet het niet meer.

Graag tips of hits hoe ik dit kan oplossen.
Wim K
« Laatst bewerkt op: 31 October 2016, 10:18:44 door Bert van Gelder. Reden: Titel voorzien van hoofdletter (s) »

Dirk J

  • Offline Offline
  • Berichten: 1457
Re: pulsbreedte via arduino en transistor
« Reactie #1 Gepost op: 29 September 2016, 20:59:18 »
Het lijkt erop dat je transistor een beetje opengestuurd wordt door een lekstroompje. Zet eens een weerstand van bijvoorbeeld 1k tussen de basis en de emitter van de tor, dan is dat in ieder geval opgelost.

Klaas Zondervan

  • Offline Offline
  • Berichten: 26711
    • Pagina van klaas
Re: pulsbreedte via arduino en transistor
« Reactie #2 Gepost op: 29 September 2016, 21:34:27 »
Welke uitvoering heb je van de S8050, A, B of C? Het verschil zit in de stroomversterkingsfactor.
Dat hij warm wordt kan komen doordat hij onvoldoende wordt opengestuurd.
Projecten:
Dubbelom
Halte Assel
Geluk, dat is vooraan staan als de overweg gesloten is.

wimk

  • Offline Offline
  • Berichten: 827
    • kusee.nl
Re: pulsbreedte via arduino en transistor
« Reactie #3 Gepost op: 29 September 2016, 21:40:01 »
Ik heb de volgende in china besteld:
https://www.aliexpress.com/item/Free-Shipping-100-Pcs-S8050D-S8050-8050-TO-92-NPN-Transistor/32324646539.html?spm=2114.13010608.0.0.HHzCsI
Volgens mij is dat de D-versie (dus geen A,B,C).
Wat bedoel je met "onvoldoende opgengestuurd", hoe kan ik dat verbeteren? Andere weerstand bij de basis?

@Dirj J:  bedoel je een tweede weerstand tussen Basis en Emitter? Dat veroorzaakt dan toch alleen maar een lekstroom in het Arduino-Basis-Emittor circuit?

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: pulsbreedte via arduino en transistor
« Reactie #4 Gepost op: 29 September 2016, 21:50:57 »
Het principe is OK, maar ik denk dat de transistor niet helemaal opengestuurd wordt door die 1 k weerstand, verlaag die eens (in stappen) naar b.v 470 ohm.

Vergeet ook niet een fly back diode over de motor.

Gebruik anders een ULN2804 als buffer.
El Carrilet
"te dom om te poepen"
MH

wimk

  • Offline Offline
  • Berichten: 827
    • kusee.nl
Re: pulsbreedte via arduino en transistor
« Reactie #5 Gepost op: 29 September 2016, 21:54:53 »
Ik zal eens proberen met een lagere weerstand, de stroom door de Arduinopoort kan immers hoger worden, tot 40 kamp.

Wat is dat, een ULN2804 ?
En hoe sluit je die aan?
« Laatst bewerkt op: 29 September 2016, 21:56:33 door wimk »

Klaas Zondervan

  • Offline Offline
  • Berichten: 26711
    • Pagina van klaas
Re: pulsbreedte via arduino en transistor
« Reactie #6 Gepost op: 29 September 2016, 21:58:48 »
Een D versie dus. Dat was ik bij transistors nog niet tegengekomen. Die heeft minimaal een stroomversterking van 160. Dus als je 500mA in de collector wil hebben dan moet je minstens 3 mA in de basis sturen. En dat is dan nog krap, beter is om het dubbele te sturen om zeker te weten dat de transistor in verzadiging gaat.

Heb je een transistortester (zit vaak op een universeelmeter)? Dan kun je testen wat de werkelijke stroomversterking is.
Ik vind trouwens een transistor voor 0,5A een beetje krap voor deze toepassing. Als je een loc start vanuit stilstand kun je een stroom van 1A verwachten.
Projecten:
Dubbelom
Halte Assel
Geluk, dat is vooraan staan als de overweg gesloten is.

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: pulsbreedte via arduino en transistor
« Reactie #7 Gepost op: 29 September 2016, 22:10:29 »
Citaat
Wat is dat, een ULN2804? En hoe sluit je die aan?
Even googlen...  ::)



Een 8x darlington drivertrap voor (stappen)motoren

met een Imax van 500 mA per buffer, maar je kunt meerdere parallel schakelen.

Sluit de Arduino PWMuitgang 11 aan op ingang 1 van de ULN2804, de overeenkomstige uitgang 18 van de ULN op de motor, andere motoraansluiting en common pin 10 van de ULN op 12 V, massa 9 op massa van de Arduino. Fly back diodes zitten er al in.

Volgens de data sheet kan die 8050 wel 1,5 A hebben, dus daar ligt het niet aan. Anders neem je b.v. een BD135, ook goed voor 1,5 A maar met een piek van 3 A.
« Laatst bewerkt op: 29 September 2016, 22:44:37 door 72sonett »
El Carrilet
"te dom om te poepen"
MH

Dirk J

  • Offline Offline
  • Berichten: 1457
Re: pulsbreedte via arduino en transistor
« Reactie #8 Gepost op: 29 September 2016, 22:53:33 »
bedoel je een tweede weerstand tussen Basis en Emitter? Dat veroorzaakt dan toch alleen maar een lekstroom in het Arduino-Basis-Emittor circuit?

Ik bedoel een weerstand die met een pootje aan de basis hangt, en met het andere pootje aan de emitter. Zo'n weerstand zorgt dat er echt geen stroom loopt door de basis-emitter overgang wanneer deze niet actief aangestuurd wordt. Zonder zo'n weerstand kan de transistor soms toch een klein beetje opengestuurd wordt op momenten dat dat niet de bedoeling is. Als dat gebeurt wordt de transistor namelijk erg warm en krijgt de motor toch wat spanning terwijl hij stil had moeten staan omdat het stuursignaal "0" is. En dat is nu precies wat jij beschrijft.

Vandaar mijn vraag om het even te testen met een weerstand van bijvoorbeeld 1k of 10k tussen de basis en de emitter.


72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: pulsbreedte via arduino en transistor
« Reactie #9 Gepost op: 29 September 2016, 23:19:49 »
Een pull down weerstand...

analogWrite() wil overigens een waarde van 0..255 voor een duty cycle van 0%..100%. Als je doet analogWrite(11,100);heb je dus maar een duty cycle van 100/255 = 39%.

Zie https://www.arduino.cc/en/Tutorial/PWM.
El Carrilet
"te dom om te poepen"
MH

wimk

  • Offline Offline
  • Berichten: 827
    • kusee.nl
Re: pulsbreedte via arduino en transistor
« Reactie #10 Gepost op: 30 September 2016, 07:47:33 »
Dat  bij anlogWrite een waarde van 100 de trein langzaam rijdt weet ik, dat is nou ook juist de bedoeling.
Maar als 72sonett even in mijn eerste vraag leest, dan is te lezen:
Citaat
en geef de waarde 0 in het analogWrite-commando, dan gaat de trein toch rijden
En dat is nou juist mijn vraag. Bij een waarde nul rijdt de trein toch. In mijn beleving is 0/255 gelijk aan nul, en zou de trein stil moeten blijven staan. Een tweede punt is, dat na ca. 30 seconden de transistor zo heet geworden is, dat deze doorbrandt.


Ik ga de komende tijd drie adviezen van jullie opvolgen:
1. Ik ga het advies van DirkJ opvolgen, en er een extra weerstand bij plaatsen tussen basis en emitter.
2. Ik ga het advies van Klaas opvolgen en een sterkere transistor erin plaatsen die meer dan 0.5 amp aankan.
3. Ik ben inderdaad vergeten een terugloopdiode over de motor te zetten. Dat zou een piekspanning kunnen veroorzaken die het doorbranden versterkt. Diode komt er dus ook bij.

Het resultaat kan even een weekje duren, maar ik zal hier in deze post mijn bevindingen weergeven.

Harm

  • Offline Offline
  • Berichten: 16
Re: pulsbreedte via arduino en transistor
« Reactie #11 Gepost op: 30 September 2016, 08:39:16 »
Het voorstel van 72sonnet om een ULN driver te nemen lijkt me voor deze toepassing prima, die is bedoeld om door logica aangestuurd te worden. Neem dan wel de ULN2803 (ipv UNL2804), de '03 is specifiek voor TTL ingangsspanningen bedoeld.

Voor een losse transistor zou ik een Darlington in een vermogensbehuizing gebruiken. Die stuur je makkelijker open met een kleine stroom en kan zijn warmte goed kwijt.


dickkoning

  • Offline Offline
  • Berichten: 140
Re: pulsbreedte via arduino en transistor
« Reactie #12 Gepost op: 30 September 2016, 10:21:15 »
Hoi

het kan eenvoudiger
bestel een simpele H brug motordriver op bv ebay of alieexpress

Voor een klein vermogen zoiets: http://www.ebay.com/itm/H-bridge-Stepper-Motor-Dual-DC-Motor-Driver-Controller-Board-L9110S-For-Arduino-/161308004962?hash=item258eb4d262:g:OaMAAOSwXeJXdeF9

ben je voor 0,99 euro klaar

Dick

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 2083
    • El Carrilet
Re: pulsbreedte via arduino en transistor
« Reactie #13 Gepost op: 30 September 2016, 11:57:16 »
Dat is wel de eenvoudigste hardware oplossing en de loc kan dan ook achteruit rijden.

Dit is voor $1.67 een ULN2003 board inclusief stappenmotortje (die je niet hoeft te gebruiken):



Achteruit rijden kan ook als je aan wimk's oorspronkelijke schema een omschakelrelais toevoegt op een 2e Arduino pin:



El Carrilet
"te dom om te poepen"
MH

Klaas Zondervan

  • Offline Offline
  • Berichten: 26711
    • Pagina van klaas
Re: pulsbreedte via arduino en transistor
« Reactie #14 Gepost op: 30 September 2016, 12:21:52 »
Vriendelijk verzoek: als je vragen hebt naar aanleiding van dit draadje, die vragen dan hier stellen en niet via PB.
Projecten:
Dubbelom
Halte Assel
Geluk, dat is vooraan staan als de overweg gesloten is.