Beste leden van dit forum,

Eind 2021 begon ik met de installatie van een MicroSquirt - ECU op mijn Zip brom scooter. Hierdoor werd het mogelijk om ontstekings- tijdstip en vervroeging zelf in te stellen, evenals de duur van de injectie. Mooi puzzelwerk en leerzaam.
Via dit forum kreeg ik eerder al advies over de waarden voor twee condensatoren die in het ontstekingscircuit zijn opgenomen ter bescherming.
De motor loopt mooi, inmiddels 1000 km mee gereden.

Een van de zaken die nu nog niet geregeld wordt door de MS- ECU heeft te maken met de regeling van de stroom voor de benzinepomp, zodat deze bij lagere toerentallen wat minder snel draait. Naar mijn idee deed de originele ECU dat wel. Nu is bij stationair de benzinepomp hoorbaar, en lijkt maar één stand te hebben: voluit. Ik vermoed dat de pomp hierdoor minder lang meegaat. Met de originele ECU hoorde ik de pomp bij stationair niet.

Wat ik zou willen doen is een met een oude Arduino uno die ik heb liggen, een motorcontroller aan laten sturen die een PWM signaal aan de benzinepomp gaat afgeven.
De Input voor de Arduino zou het signaal van de TPS of MAP sensor kunnen zijn, die tussen de 0 en 5 volt leveren.
De output van de Arduino, zou dat een pin kunnen zijn die tussen de 0 en 5 volt afgeeft aan de controller? Waardoor de snelheid van de benzinepomp regelbaar wordt.
Tot mijn schik zijn er kant en klare controllers te koop en degene die ik zag bij Conrad, de Kemo M195 is regelbaar dmv een pot meter, maar ook door een signaal tussen de 0 en 5 volt. Tenminste, wanneer ik het goed begrijp.

Mijn vraag is of jullie dit projekt een haalbare kaart lijkt, en er dingen zijn die ik over het hoofd zie.
(Ik heb het ‘ Arduino Cookbook ‘ geschreven door Michael Margolis, tweede druk, en dat is lekker dik.)
Graag jullie reacties en alvast bedankt!

Je zou zo'n controller kunnen gebruiker, maar een arduino heeft geen echte analoge uitgang, dus daarvoor zou je een PWM uitgang moeten gebruiken, die filteren, en dat aan zo'n controller voeten.

Je kunt ook de motor direct met de arduino aansturen, met één MOSFET en een diode, al dan niet met een echte driver, of een halve brug, bestaande uit een MOSFET driver met 2 MOSFETs, of een complete module, zoals de BTS7960 van Ali of zo.

Het is allemaal een beetje afhankelijk van de stroom die de pomp trekt, maar ik neem aan dat die niet al te groot is.

Dank je Sparky GSX, voor het aangeven van de verschillende manieren waarop ik verder zou kunnen gaan.
Al gezien dat er aardig wat aanbod is van H-bruggen, de BTS7960, in combinatie met code voor de Arduino. Met uitleg!

De eerste mogelijkheid snap ik ten ten dele: gezien dat de Arduino pulsen kan geven waarvan de frequentie en duur regelbaar is.
>>Wat bedoel je met het filteren van deze output, die een controller zoals de Kemo M195 als input voor het te genereren PWM signaal gebruikt? <<

Wat ik eigenlijk ook wil proberen is je laatste mogelijkheid: zelf een circuit met MOSFET's in elkaar zetten. Dat zou dan een halve H kunnen zijn, omdat de pomp maar in 1 richting hoeft te draaien??
De stroomsterkte voor de benzinepomp zal niet hoog liggen, en ga ik binnenkort opmeten.
Ik kijk uit naar je antwoord en laat nog horen hoe het verder is gegaan.

>>Wat bedoel je met het filteren van deze output, die een controller zoals de Kemo M195 als input voor het te genereren PWM signaal gebruikt? <<

Op een uitgang van de Arduino pwm doen verschijnen, aan die uitgang een serieweerstand en dan een condensator naar massa. Mits goede dimensionering staat er nu over de condensator een gelijkspanning die evenredig is met het percentage pwm. Die gelijkspanning kan dan aangeboden worden aan het Kemo-blokje. Wel zou het nog kunnen nodig blijken om die regelspanning nog op te krikken met een opamp of zo. Toch allemaal niet zo simpel.

Ook mij lijkt het dan (flink wat) simpeler om de pomp aan te sturen met pwm recht uit de Arduino, de omzetting eerst naar DC en dan terug naar pwm is overbodig, kost enkel nauwkeurigheid en componenten. Zelfs een halve brug is overkill, een enkele mosfet moet de klus kunnen klaren. Wel uitkijken: als (zoals ik verwacht) de pomp met haar ene kant aan de massa ligt, dan moet het grote werk gebeuren door een p-channel fet, die dan zelf door een n-channel fet wordt gestuurd vanuit de Arduino.

Als de stroom klein genoeg is, zeg, 5A of minder, wat ik wel verwacht, is een MOSFET en een diode genoeg.

Kun je eens kijken hoeveel draden er aan die pomp zitten, en vooral of hij, door verbinding met het frame, met één kant aan de - zit, waardoor je verplicht bent de + te schakelen? Als dat zo is, heeft Paulinha_B gelijk, dan heb je een P-channel MOSFET nodig, met wat extra componenten. Allemaal niet dramatisch ingewikkeld, maar het is simpeler als je de - zou kunnen schakelen met een N-channel MOSFET.

Op 5 februari 2023 20:50:17 schreef Vlotternaaldje:
De eerste mogelijkheid snap ik ten ten dele: gezien dat de Arduino pulsen kan geven waarvan de frequentie en duur regelbaar is.
>>Wat bedoel je met het filteren van deze output, die een controller zoals de Kemo M195 als input voor het te genereren PWM signaal gebruikt? <<

Daar bedoelen we dit mee.

Op deze manier maak je van je pwm signaal een analoog signaal. Hier is nog een opamp toegevoegd om het signaal eventueel te versterken. Dat hoeft alleen als je pwm signaal 3.3VDC is, als dat signaal al 5VDC is hoeft dat niet.

Stel dat je een opamp erachter zou zetten, moet dat wel een rail to rail type zijn.

Wat ik eigenlijk ook wil proberen is je laatste mogelijkheid: zelf een circuit met MOSFET's in elkaar zetten. Dat zou dan een halve H kunnen zijn, omdat de pomp maar in 1 richting hoeft te draaien??

Lees dit ook eens door, misschien kun je hier ook iets uithalen.

https://www.circuitsonline.net/artikelen/view/41/3

Wat goed om jullie reacties te krijgen! Het duizelt me nu, begrijp er minder van dan in het begin, en kijk veel naar onder andere de Drone Bot Workshop.
@Sparky GSX: Er zijn twee verbindingen met de benzinepomp en de originele ECU.
Eentje die 12volt geeft en de ander die aarde geeft, of iets 'doet'met het signaal.
In geen geval directe aarde met het frame.
Met de huidige MicroSquirt ECU is de draad voor de activatie van de pomp, met een relais verbonden, en de grote stroom loopt via de accu naar de plus van de pomp en via de min naar het frame.
Ik zou weer op moeten zoeken of de activatie draad er een is die aarde geeft. Ik vermoed van wel. De stroomsterkte van de pomp zal denk ik niet boven de 1 a 1,5 ampere uitkomen.
Bij het aanzetten van het contact, is de pomp ongeveer 3 seconden actief en wacht daarna af.De MS is wat dat betreft hetzelfde als de originele ECU.
Dus: uiteindelijk lijkt de pomp door de aarde in de MS geschakeld te worden.
@Paulinha_B: De weerstand en de condensator effenen de blokken in de PWM pulse? Ik hoop dit nog eens te begrijpen..
@ Lambiek: Dank voor het schema. Klopt het dat door die twee condensatoren de wisselingen in spanning door vertraging van het signaal weggefilterd worden en zo een gelijkstroom ontstaat? En het artikel in de link is erg verhelderend. Het lijkt me een apart vak hoe je allerlei onderdelen tegen piekspanningen kan en moet beveiligen.
>> voorlopig kan ik weer vooruit. Is het raar dat ik het raar vind dat de Arduino uno geen output-pin heeft met een DC range van 0 tot en met 5 volt?

Op 6 februari 2023 22:04:46 schreef Vlotternaaldje:
Dank voor het schema. Klopt het dat door die twee condensatoren de wisselingen in spanning door vertraging van het signaal weggefilterd worden en zo een gelijkstroom ontstaat?

Het is de combinatie van de 100k weerstand en de 100nF condensator. Het pwm signaal bestaat uit pulsjes in breedte variërend met een vaste frequentie, het filter zorgt ervoor dat bij een bepaalde puls breedte een bepaalde spanning ontstaat. Dit is wel een beetje in jip en janneke taal uit gelegd.

En het artikel in de link is erg verhelderend. Het lijkt me een apart vak hoe je allerlei onderdelen tegen piekspanningen kan en moet beveiligen.

Eigenlijk komen veel van die beveiligingen iedere keer terug, zelf bekijk ik het signaal op de scoop. Op die manier kom je er achter of het goed werkt en zo niet dan pas je het aan.

Is het raar dat ik het raar vind dat de Arduino uno geen output-pin heeft met een DC range van 0 tot en met 5 volt?

Ja die dingen hebben nu eenmaal geen analoge uitgang en die kun je weer maken met het geposte schema.

Wat goed om jullie reacties te krijgen! Het duizelt me nu, begrijp er minder van dan in het begin,

Mee too.
Volgens mij geeft SparkyGSX aan hoe je zelf direct met een mosfet de pomp kan sturen met een PWM signaal uit de Arduino.

Lambiek geeft een schema om dat PWM signaal om te zetten naar 0 - 5V om een kant een klare driver aan te sturen die een 0 - 5V signaal verwacht.

Met de schakeling van Lambiek moet je dus niet een losse mosfet gaan aansturen.

@Paulinha_B: De weerstand en de condensator effenen de blokken in de PWM pulse? Ik hoop dit nog eens te begrijpen.

De weerstand en condensator waar ik het over had zijn in het schema van @Lambiek R1 en C1. En zoals ik al suggereerde heeft hij er ook een opamp achter getekend, om van 0 - 3,3V= over C1 naar 0-5V= te gaan; de spanningsversterking wordt bepaald door R3 en R2. Let wel, dat is enkel nodig als de controller 3,3V= heeft op zijn pwm-uitgang.

Dat schema is bedoeld om bv. het Kemoregelaartje aan te sturen, dat immers een regelspanning verwacht van 0-5V=.

Met dit alles zeg ik niets nieuws hoor, @Benleentje en @Lambiek stelden al precies hetzelfde.

Allen bedankt voor jullie reacties, en ik laat nog weten of er nog een zetje nodig is, dan wel dat het projekt gelukt is.
Nu eerst onderdelen bestellen en kijken of er een PWM signaal uit de Arduino gehaald kan worden in relatie tot een van de sensoren van de scooter.
Groeten!

We horen het graag!

Ik zie een grote kans dat de grootste uitdaging zal worden om de ingangswaarde te lezen, en er een gepaste pwm-waarde uit af te leiden. Motortoerental zou nog het simpelste kunnen zijn, om te implementeren en om te debuggen.

Sukses gewenst!

[Bericht gewijzigd door Paulinha_B op (20%)]

Er zijn nog wel wat dingen om rekening mee te houden als je onderdelen gaat bestellen:

- de MOSFET moet goed open zijn bij de 5V uitgangsspanning van de Arduino, dus je hebt een logic-level type nodig, tenzij je er nog een MOSFET driver voor zet (de MCP1407 bijvoorbeeld). Het kan wel zonder, mits de stroom niet te groot is en de PWM frequentie niet te hoog. In dit geval zou ik het wel aandurven.

- er moet een diode bij naar de voeding

- een flinke elco over de voeding is wel aan te raden

Kijk e.e.a. even af bij de motorregeling die hier bij de schakelingen staat, maar neem niet zomaar het typenummer van de MOSFET over, dat is geen geschikt logic-level type.

- Een Arduino direct aan de 12V van je scooter is een slecht idee; je zou simpelweg een bestaande USB lader kunnen gebruiken, maar zelfs dan is het wel handig om nog enige beveiliging toe te voegen. Kijk eerst maar of het werkt, en maak het daarna betrouwbaar.

Op 6 februari 2023 22:04:46 schreef Vlotternaaldje:
Klopt het dat door die twee condensatoren de wisselingen in spanning door vertraging van het signaal weggefilterd worden en zo een gelijkstroom ontstaat?

Ik heb nog even een paar scoop plaatjes voor je gemaakt. Het PWM signaal is hier tussen de 0 en 5VDC ( witte lijn ).

Hieronder 0% PWM en ( gele lijn ) 0VDC op de uitgang van de opamp.

Hieronder 10% PWM en +/- 1VDC op de uitgang van de opamp.

Hieronder 50% PWM en +/- 5VDC op de uitgang van de opamp.

En het laatste beeld 100% PWM en 10VDC op de uitgang van de opamp.

De PWM frequentie is hier 1kHz, die had iets hoger gemogen. Maar zo krijg je een beetje een idee hoe het eruit ziet. De waarde van de weerstand en condensator in het schema is 100k en 100nF, maar die waarde hangt wel af van de gebruikte PWM frequentie.

Hier heb je nog wat meer info en de formule om het te berekenen. Het filter in het schema is een laag doorlaat filter.

https://www.digikey.nl/nl/resources/conversion-calculators/conversion-…

Maar... mag ik even zeggen: Volgens mij wil de TS een pomp niet-op-volle-snelheid laten draaien. Dat gaat het makkelijkste met gewoon een PWM signaal en een mosfet. Dat PWM signaal analoog gaan maken lijkt me niet nodig, waarom zou je dat willen??? Om weer een andere module aan te sturen die analoog in wil en daar PWM van kan maken? Daar moet dan m.i. wel een heel goede reden voor zijn om dat dan zo te doen.

Of heb ik iets gemist?

Heel mooi werk, @Lambiek, uw inzet voor deze deelnemer verdient veel respect en bewondering!

Misschien ten overvloede, voor de topicstarter die allicht niet gewend is scoopbeelden te lezen: het gaat hem dus over de gele lijn, dat is de geproduceerde stuurspanning voor het Kemoregelaartje.

In het eerste prentje is de duty-cycle 0%, ttz. de pwm-uitgang is permanent laag, en de stuurspanning is nu 0V=. Noteer met welke stippellijn op het scherm dat overeenkomt.

(tweede prentje eventjes overgeslagen)

In het derde prentje is de duty-cycle 50%, de pwm-uitgang is nu de helft van de tijd hoog en de andere helft laag. De gele lijn staat nu netjes 1 stippellijn hoger.

In het vierde prentje is de duty-cycle 100%, de pwm-uitgang is nu permanent hoog, en de gele lijn is nogmaals 1 stippellijntje hoger gewipt.

Op een andere manier verteld:
als de pwm-uitgang hoog is, dan wordt de condensator C1 opgeladen via de serieweerstand R1. Is daarentegen de pwm-uitgang laag, dan wordt de condensator ontladen via diezelfde weerstand. Daarmee is de spanning over de C een maat voor de verhouding tussen de tijd van laden (="hoog") en de tijd van ontladen (="laag"). Want hoger die verhouding, hoe meer er wordt geladen, en hoe minder er wordt ontladen.

Hopelijk helpt dit,
PB

NB @rew hierboven: uw opmerking is helemaal correct, reeds eerder werd gesuggereerd om het allemaal veel simpeler te houden. Maar de topicstarter was zelf met dat regelaartje komen aandragen, en @Lambiek heeft straf zijn best gedaan om te beschrijven hoe het gevraagde kan bereikt worden met dat regelaartje.

@topicstarter:

Is het raar dat ik het raar vind dat de Arduino uno geen output-pin heeft met een DC range van 0 tot en met 5 volt?

"raar" is een relatief begrip ;) maar zo'n analoge uitgang is niet zo dikwijls nodig of nuttig. De meeste DC-belastingen laten zich prima aansturen met PWM, en dus is het simpeler en overzichtelijker en beter beheersbaar om met de controller PWM te produceren, en die met slechts een of twee mosfets aan de belasting aan te bieden. Hoe simpeler hoe betrouwbaarder!

Op 7 februari 2023 16:25:47 schreef rew:
Maar... mag ik even zeggen: Volgens mij wil de TS een pomp niet-op-volle-snelheid laten draaien. Dat gaat het makkelijkste met gewoon een PWM signaal en een mosfet.

Natuurlijk mag je dat zeggen rew. :)

en ik ben met je eens dat een mosfet aansturen met pwm het makkelijkste is, het zij met of zonder driver.

Maar de TS toont interesse over de werking om van een pwm signaal een analoog signaal te maken, dus vandaar wat meer uitleg. :)

Ter illustratie heb ik twee schetsen gekrabbeld van rechtstreekse PWM-aansturing: links het idee zoals @Sparky vertelde, waarbij de pomp tussen de plus en de regeling komt; rechts mijn alternatief, met een extra FET, zoals nodig als de pomp met haar ene kant aan de massa=chassis verbonden is.

Het is natuurlijk iets minder leesbaar dan het mooie tekenwerk van @Lambiek, vraag gerust verduidelijking!

De TS had reeds vastgesteld dat de pomp 2 draden heeft en elektrisch niet aan het frame zit, dus de low-side MOSFET (linker schema) kan gewoon toegepast worden.

Als je een Arduino met 5V uitgang gebruikt (de standaard Uno etc.), is die hele opamp niet nodig. Ik zou die weerstand dan wel wat kleiner maken dan 100k, want de Kemo regelaar kan wel een wat lagere ingangsimpedantie hebben (een pull-down weerstand of zo). De huidige 100k en 100nF geven een kantelfrequentie van 15Hz, dat is best wel laag, maar nog steeds meer dan snel genoeg voor de toepassing natuurlijk. Als je de condensator 10uF maakt mag de weerstand 1k zijn voor dezelfde frequentie, en heb je geen last van een eventuele pull-down weerstand in de regelaar.

Ik vind een MOSFET aan de microcontroller ook netter, maar het is wel iets lastiger betrouwbaar te maken dan die Kemo regelaar met 2 extra componentjes aan een Arduino.

Wat je ook zou kunnen doen, is zo'n regelaar gebruiken, vast ingesteld voor een lage snelheid, en met een apart signaal de regelaar naar 100% sturen als dat nodig is, als je één of ander bruikbaar signaal van de microsquirt of ergens anders vandaan kunt halen. Je stuurt de pomp dan niet continue variabel aan, maar op 2 standen. Het voordeel daarvan is dat je de hele Arduino niet nodig hebt, wat het een stuk eenvoudiger en betrouwbaarder zou maken.

Wat je ook zou kunnen doen, is zo'n regelaar gebruiken, vast ingesteld voor een lage snelheid, en met een apart signaal de regelaar naar 100% sturen als dat nodig is, als je één of ander bruikbaar signaal van de microsquirt of ergens anders vandaan kunt halen. Je stuurt de pomp dan niet continue variabel aan, maar op 2 standen.

Dat klinkt helemaal niet slecht! Het zou misschien voor de topicstarter - die in de elektronica nog haar/zijn weg zoekt, blijkbaar - ook overzichtelijker en beheersbaarder kunnen zijn.

Misschien nog simpeler om dan in plaats van die regelaar een simpele serieweerstand te plaatsen; en deze, als de nood zich aandient, te overbruggen met een relais. Wel eventjes experimenteren met de waarde van de serieweerstand.

Op 7 februari 2023 17:19:29 schreef Paulinha_B:
Misschien nog simpeler om dan in plaats van die regelaar een simpele serieweerstand te plaatsen;....

Sorry, maar dat is in mijn ogen knoeiwerk. Je gaat ook veel te veel vermogen verstoken op die manier.

Wat Sparky zegt kan ook goed, bij stationair bijvoorbeeld 25% pwm uitsturen en zodra je gas geeft 100% pwm. Is een kwestie van uit proberen voor de TS.

Hehe... in mijn ogen is een scooter sowieso knoeiwerk, een verhaal van "ik wil wel maar ik kan niet", tweetaktmotorkes en veel kabaal en vieze dampen van verbrande olie... Maar daar gaat het niet echt over, natuurlijk, en ja, ik weet ook wel dat er ook viertaktscooters bestaan, dat is inderdaad al wat minder bedroevend.

Maar ik blijf erbij dat een supersimpele config voor deze topicstarter wel eens aantrekkelijk zou kunnen zijn, wegens (nog) niet toe aan pwm en andere hogeschooltoestanden die wij oudgedienden vanzelfsprekend vinden. Daar is ook niets verkeerds aan.

Het wegstoken van vermogen is nog het minste punt van allemaal: als eenmaal de motor draait is er voldoende electrisch vermogen beschikbaar. Of dat dan wordt weggestookt in de pomp of in een serieweerstand is helemaal bijkomstig.

En jawel, een basisinstelling van 25%, of hoeveel dan ook, dat is inderdaad uit te experimenteren. En een "tweede trap" naar 100% als de nood zich aandient. Maar HOE men die 25% realiseert is eigenlijk bijkomstig, en ik blijf erbij dat het voor deze topicstarter beter te simpel kan zijn dan te ingewikkeld.

[ enne, als ge me de woordenklieverij niet kwalijk neemt: 100% PWM is geen PWM, he, er is immer geen puls meer waarvan de breedte kan worden gemoduleerd... ]

@vlotternaaldje.
Al eens in Tuner Studio gekeken of de microsquirt zelf dit signaal niet kan genereren ?
Je bent niet de enige die z'n brandstofpomp wil regelen.

Op 7 februari 2023 17:42:53 schreef Paulinha_B:
Hehe... in mijn ogen is een scooter sowieso knoeiwerk,....

Dat ben ik niet met je eens, je kunt er veel van leren. Als jongen van 12 bouwde ik mijn eigen crosbommers al, was een mooie tijd.

.., wegens (nog) niet toe aan pwm en andere hogeschooltoestanden die wij oudgedienden vanzelfsprekend vinden.

Wat is er hogeschool aan pwm?

Of dat dan wordt weggestookt in de pomp of in een serieweerstand is helemaal bijkomstig.

Ik kijk daar toch iets anders naar.

enne, als ge me de woordenklieverij niet kwalijk neemt: 100% PWM is geen PWM, he, er is immer geen puls meer waarvan de breedte kan worden gemoduleerd...

Dat is een waarheid als een koe, daar kan ik niets tegen inbrengen. :)

Laten we het dan op 99% houden. ;)

Laten we het dan op 99% houden. ;)

Warme grijns - en graag akkoord. Over de rest zal ik ook niet voortdoen, we lijken elkaar aardig te begrijpen - en daar gaat het toch maar om. Bovenal hoop ik dat de topicstarter vooruit komt met al die inbreng, en ons op de hoogte houdt.

[Bericht gewijzigd door Paulinha_B op (26%)]