L298n motor controller pwm kapot?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • bnwgraaf
  • Registratie: Oktober 2008
  • Laatst online: 23:44
Ik heb een l298n motor controller voor de aandrijving van een robot chassis. Deze wordt gekoppeld aan een Arduino Uno controller.

Ik krijg het echter niet voor elkaar en vraag me af of de l298n misschien kapot is.

Er zitten twee jumpers op de en1 en en2 aansluitingen. Als die er op zitten, kun je de motoren laten draaien, maar ze draaien dan allebei volle kracht.
Maar wanneer ik de jumpers verwijder, zou ik ook de snelheid moeten kunnen regelen via pwm.
In dat geval krijg ik echter maar één van de twee motoren aan de praat.
Wissel ik de en1 en en2 kabels om, dan draait de andere motor, waardoor ik vermoed dat de l298n regelaar defect is.... Nu zijn ze niet zo duur alleen vroeg ik me af of dit op één of andere manier is na te meten of zo....

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:17

Septillion

Moderator Wonen & Mobiliteit
Opzich kan je gewoon een DMM tussen de motor polen hangen. Dan gewoon aansturen met 100% en -100% en je zou op je DMM ongeveer de voedingsspanning moeten zien (en zelfde negatief indien -100%). Dit zou met jumper moeten als je alleen INx gebruikt. Denk dus dat je eens moet aangeven hoe je de boel aansluit (en aan wat) + software.

Jumper kan er ook af en dan moet je de ENx lijn ook aansluiten. Dit is overigens de makkelijkste manier van aansturen, dan zet je de PWM op de ENx ingang. Voor de INx ingangen gebruik je dan gewoon een niet-PWM uitgang. Dit heeft twee voordelen: je hebt maar een enkele PWM pin nodig per motor en je laat de motor in "free running" ipv "motor break" tijdens het lage deel van je PWM (= efficiënter).

Overigens, het valt tussen de regels wel te lezen maar je hebt een L298n module. Dat bevat extra zaken en is dus wel zo handig te melden ;)

Acties:
  • 0 Henk 'm!

  • bnwgraaf
  • Registratie: Oktober 2008
  • Laatst online: 23:44
Dank je voor je antwoord. Het gaat inderdaad om een complete L298n module.

Ik heb de jumpers van de ENx lijnen af gehaald en de module als volgt aangesloten op een Arduino Uno (via sensor board V5).

Afbeeldingslocatie: https://tweakers.net/i/X8jQJdCkHmvB5dTpfk1uF2-dqUc=/800x/filters:strip_exif()/f/image/LPEJNT4KcGJwcak8CqeCCYRs.png?f=fotoalbum_large

Ik heb er een 3S LiPo aan gekoppeld en de jumper voor de 5V regulator laten zitten, zodat ik ook de 5V aansluiting kan gebruiken om mijn Uno mee te voeden,

Even beperkt tot de motor functie, heb ik de volgende test code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const int motLen = 5;
const int motL1 = 6;
const int motL2 = 7;

const int motR1 = 8;
const int motR2 = 9;
const int motRen = 10;

void setup() 
{
  pinMode(motLen, OUTPUT);
  pinMode(motL1, OUTPUT);
  pinMode(motL2, OUTPUT);
  pinMode(motR1, OUTPUT);
  pinMode(motR2, OUTPUT);
  pinMode(motRen, OUTPUT);

  analogWrite(motLen, 75);
  analogWrite(motRen, 75);

  delay(2000);
}

void loop() 
{
  Drive();

  delay(1000);

  Stop();

  delay(1000)
}

void Drive()
{
  digitalWrite(motL1, LOW);
  digitalWrite(motL2, HIGH);
  digitalWrite(motR1, LOW);
  digitalWrite(motR2, HIGH);
}

void Stop()
{
  digitalWrite(motL1, LOW);
  digitalWrite(motL2, LOW);
  digitalWrite(motR1, LOW);
  digitalWrite(motR2, LOW);
}

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:17

Septillion

Moderator Wonen & Mobiliteit
Late reactie... Tipje, doe even een @Septillion de volgende keer, dan krijg ik een melding.
bnwgraaf schreef op woensdag 2 december 2020 @ 18:05:
Ik heb er een 3S LiPo aan gekoppeld en de jumper voor de 5V regulator laten zitten, zodat ik ook de 5V aansluiting kan gebruiken om mijn Uno mee te voeden,
En waar sluit je deze aan? Let wel op dat er ook op de module maar een simpele lineaire spanningsregelaar zit. Ofwel, niet te veel aan de 5V lijn hangen, anders krijgt hij het heeeeeel warm.
Even beperkt tot de motor functie, heb ik de volgende test code:
En? Werkt het dan?

Acties:
  • 0 Henk 'm!

  • bnwgraaf
  • Registratie: Oktober 2008
  • Laatst online: 23:44
@Septillion goede tip, dank je!
[...]
Let wel op dat er ook op de module maar een simpele lineaire spanningsregelaar zit. Ofwel, niet te veel aan de 5V lijn hangen, anders krijgt hij het heeeeeel warm.
[...]
Okay, nu hangt er nauwelijks nog iets aan, maar het is dus verstandig om een aparte voeding naar de Uno aan te gaan leggen. Ik kan met een goede spanningsregelaar toch nog wel dezelfde LiPo accu gebruiken? Bij mijn elektrozwever verzorgt dezelfde accu ook de energie voor zowel de RC elektronica, als de aandrijving.
En? Werkt het dan?
Nee, als ik deze start, dan wordt maar één van beide motoren aangedreven. Draai ik het hele rijtje kabeltjes om, dan wordt de andere motor aangedreven.
Haal ik de beide Enable aansluitingen weg (en verwijder ook het bijbehorende stukje code), dan draaien beide motoren (maar natuurlijk op volle snelheid).
Ik ben bang dat er een defect zit in één van de Enable aansluitingen van de L298N module. Het is een nieuw printje, ik heb het nog niet eerder werkend gehad en het probleem is al gelijk vanaf het begin.

Ze zijn niet heel duur, dus ik heb alvast een nieuwe besteld, maar was wel benieuwd of hij echt defect is, of dat ik iets verkeerd doe.

Ik heb nu overigens de twee Enable aansluitingen beide op een "PWM" digitale pin van de Uno gezet. Is dit ook noodzakelijk, of kan ik daar een willekeurige digitale pin voor gebruiken?

Nog een ander vraagje daarover.
Je stelt de snelheid van de motoren in met bijvoorbeeld:
code:
1
analogWrite(En1, 75);

Waarbij En1 dan één van de "Enable" ingangen van de L298N is.

Deze ingangen worden aangesloten op een digitale pin van de Uno. Nu hebben we het hier over PWM, dus we meten de pulsbreedte en daarmee bepalen we welke snelheid ingesteld moet worden.
Maar waarom gebruiken we in de code dan toch "analogWrite"?

Tijdens het zoeken via Google kwam ik over analoge en digitale pinnen ook een stukje uitleg hierover van jou tegen! :)

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:17

Septillion

Moderator Wonen & Mobiliteit
bnwgraaf schreef op vrijdag 4 december 2020 @ 08:52:
@Septillion goede tip, dank je!
[...]

Okay, nu hangt er nauwelijks nog iets aan, maar het is dus verstandig om een aparte voeding naar de Uno aan te gaan leggen. Ik kan met een goede spanningsregelaar toch nog wel dezelfde LiPo accu gebruiken? Bij mijn elektrozwever verzorgt dezelfde accu ook de energie voor zowel de RC elektronica, als de aandrijving.
De accu kan dat zeker. Maar het hangt er vooral aan wat je nog meer aan de Arduino wilt hangen. Is het alleen de Arduino met een paar ledjes? Prima. Komt er al een display bij moet je misschien al switchen. Spreken we over servo's? Maak je borst dan maar nat :+

Maar de belangrijke vraag heb je nog gemist ;)
En waar sluit je deze aan?
Nee, als ik deze start, dan wordt maar één van beide motoren aangedreven. Draai ik het hele rijtje kabeltjes om, dan wordt de andere motor aangedreven.
Als je de (stuur)bedrading kunt omdraaien en dan werkt de andere helft dan is de L298 niet stuk. Neem aan dat je de motoren laat zitten. Ofwel, dan werkt de andere kant van de module? Dan rest mij de vraag, is dit echt de volledige code of een snippet? Want begin te vermoeden dat je misschien de Servo library hebt geladen...
Haal ik de beide Enable aansluitingen weg [...]
Enable altijd aansluiten. Dus of naar de Arduino of de jumper.
Ik heb nu overigens de twee Enable aansluitingen beide op een "PWM" digitale pin van de Uno gezet. Is dit ook noodzakelijk, of kan ik daar een willekeurige digitale pin voor gebruiken?
Zoals ik al zei, je wilt juist de PWM naar de Enable lijnen. Maar voor de andere mag je elke willekeurige (digital) pin pakken.
Nog een ander vraagje daarover.
Je stelt de snelheid van de motoren in met bijvoorbeeld:
code:
1
analogWrite(En1, 75);

Waarbij En1 dan één van de "Enable" ingangen van de L298N is.

Deze ingangen worden aangesloten op een digitale pin van de Uno. Nu hebben we het hier over PWM, dus we meten de pulsbreedte en daarmee bepalen we welke snelheid ingesteld moet worden.
Maar waarom gebruiken we in de code dan toch "analogWrite"?
Tja, tijdens het ontwikkelen van Wiring, de voorloper van Arduino, werd gedacht dat dit duidelijker was. Eerste gebruik was natuurlijk ook vooral voor een ledje en dan lijkt het analoog. Zo werd "voorkomen" dat PWM uitgelegd moest worden. Maar de meeste zien dit tegenwoordig als een jammere keuze. Zeker omdat newbies dan vaak echt analoog verwachten en er voltage controlled dingen mee proberen te sturen enz. Dus ik had de functie ook liever gezien als pwmWrite().
Tijdens het zoeken via Google kwam ik over analoge en digitale pinnen ook een stukje uitleg hierover van jou tegen! :)
Ha, grappig 8)

Acties:
  • 0 Henk 'm!

  • bnwgraaf
  • Registratie: Oktober 2008
  • Laatst online: 23:44
Septillion schreef op vrijdag 4 december 2020 @ 09:20:
[...]
De accu kan dat zeker. Maar het hangt er vooral aan wat je nog meer aan de Arduino wilt hangen.
Ik hou het in mijn achterhoofd als mijn projectje groter gaat worden. Hoewel ik best wel wat dingen weet over elektronica en modelbouw, heb ik hier best nog genoeg te leren. Maar dat is ook één van de redenen dat ik hier mee bezig ben! ;)
Maar de belangrijke vraag heb je nog gemist ;)
Ik heb de huidige opstelling als volgt aangesloten (waarbij de sensor shield de voeding krijgt via de Uno):
Afbeeldingslocatie: https://tweakers.net/i/-JopBBZXLqEePtLMdBu1845AiAo=/800x/filters:strip_exif()/f/image/I9Y1EalHu4Pn5JvwoJCXe4fN.png?f=fotoalbum_large
Als je de (stuur)bedrading kunt omdraaien en dan werkt de andere helft dan is de L298 niet stuk. Neem aan dat je de motoren laat zitten. Ofwel, dan werkt de andere kant van de module?
Als ik alleen de stuurdraden omwissel (Dus de groene en gele draad in bovenstaande afbeelding) dan gaat inderdaad de andere motor draaien, maar ik hoor een soort zoemende tuut-tuut-tuut toon (ik weet het even niet anders te omschrijven :+ ), ook als de motor via de Stop() in de code is uitgeschakeld. Dat geluid heb ik niet met de stuurdraden in de andere volgorde.
Als ik de stuurdraden samen met de 4 andere motor draden omdraai, dan gaat ook de andere motor draaien en dan zonder die zoemende tuut-tuut- toon.
Ik vermoed toch dat de L298 kapot is.
Dan rest mij de vraag, is dit echt de volledige code of een snippet? Want begin te vermoeden dat je misschien de Servo library hebt geladen...
Dit is inderdaad de volledige code die ik nu heb. Er worden dus geen extra libraries geladen of zo, ik wilde me puur concentreren op de motor aandrijving om andere variabelen weg te nemen.
Enable altijd aansluiten. Dus of naar de Arduino of de jumper.
Heb ik aangesloten naar de PWM pins (jumper heb ik de eerste keer gebruikt, zonder de Enable aansluitingen. Dan draaien beide wielen op volle kracht. Het lijkt dus in één van de Enable circuit delen te zitten.
Tja, tijdens het ontwikkelen van Wiring, de voorloper van Arduino, werd gedacht dat dit duidelijker was. Eerste gebruik was natuurlijk ook vooral voor een ledje en dan lijkt het analoog. Zo werd "voorkomen" dat PWM uitgelegd moest worden. Maar de meeste zien dit tegenwoordig als een jammere keuze. Zeker omdat newbies dan vaak echt analoog verwachten en er voltage controlled dingen mee proberen te sturen enz. Dus ik had de functie ook liever gezien als pwmWrite().
Okay, nu is het me duidelijk, dank je!

Ik vermoed dat ik maar even moet wachhte op mijn nieuwe L298 printje.
Kan ik ondertussen ook de batterij aansluiting vast beter doen en er een beveiliging voor te lage accu spanning op zetten (want LiPo).

Super bedankt voor je uitgebreide hulp!

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:17

Septillion

Moderator Wonen & Mobiliteit
bnwgraaf schreef op vrijdag 4 december 2020 @ 14:32:
Ik heb de huidige opstelling als volgt aangesloten (waarbij de sensor shield de voeding krijgt via de Uno):
[Afbeelding]
Ah, en dat kan niet ;) De barrel jack kan je alleen voeden met >7V. Deze spanning gaat namelijk nog door de spanningsregelaar die ook spanning dropt. Daarnaast heeft de afschakeling van de USB spanning >7V nodig. Wil je direct 5V voeden aan de Uno moet je de USB of de Vcc/5V aansluitingen gebruiken. Indien je de laatste gebruikt niet tegelijk de USB aan je PC hangen, dat druk je mogelijk stroom terug je PC in en dan is het aan je moederbord hoe leuk hij dit vind (lees: spanning afschakelt of stuk gaat).

Andere optie is om gewoon de accu aan te sluiten op de barrel jack.


En het blijft steeds een beetje lastig te zien hoe je het telkens hebt aangesloten. Met de stuurdraden bedoel ik EnA, EnB, In1, In2, In3 en In4. EnA, In1 en In2 voor motorA, de andere zijn dezelfde functie voor motorB. Dus laat de motoren eens zitten en gebruik even simpel programma voor één motor:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const byte MotorEn = 5;
const byte MotorIns[] {6, 7};

void setup(){
  pinMode(MotorEn, OUTPUT);
  pinMode(MotorIns[0], OUTPUT);
  pinMode(MotorIns[1], OUTPUT);
    
  digitalWrite(MotorIns[0], HIGH);
  digitalWrite(MotorIns[1], LOW);
}

void loop() {
  //drive
  analogWrite(MotorEn, 75);

  delay(1000);

  analogWite(MotorEn, 0);

  delay(1000)
}


En sluit deze eens op op de sturing van motorA en daarna op die van motorB. Draait de respectievelijke motor dan? Negeer de andere motor.

Ik vermoed dat de L298 prima is maar dat het komt door twee dingen in jou programma:
  1. Je laat de PWM op de enable waardoor deze in stop wisselt tussen motor break en free run
  2. Je gebruikt pin 5 en pin 10 voor de PWM. Pin 5 en pin 6 werken op de Uno standaard op 980Hz waar de rest op 490Hz werken.
Dit is inderdaad de volledige code die ik nu heb. Er worden dus geen extra libraries geladen of zo, ik wilde me puur concentreren op de motor aandrijving om andere variabelen weg te nemen.
Heel goed, heb het vaak anders gezien. Als mensen snippets posten kan je soms eeuwen zoeken namelijk.

Acties:
  • 0 Henk 'm!

  • bnwgraaf
  • Registratie: Oktober 2008
  • Laatst online: 23:44
@Septillion
Tnx voor je hulp!
Ik heb eerst eens de voeding van de accu rechtstreeks op de barrel jack aangesloten en dat bleek gelijk het probleem op te lossen!
Ik heb nooit beseft dat er eigenlijk een hogere spanning dan 5V op moest staan. Ik heb best veel gespeeld met esp8266 printjes en die sloot ik aan op de micro usb aansluiting. Maar die zit niet op de Uno en het leek me op dat moment het makkelijkst om de jack te gebruiken.
Maar het is wel zo makkelijk om de accu direct te kunnen gebruiken.

Wel viel me op, dat het karretje een lichte afwijking heeft en dat bij nameten van de motor aansluitingen (naar de motor toe) er een licht verschil in spanning zat. Komt dat door het verschil van de 980Hz en 489Hz pinnen?

Is het beter om dan pin 5 en 6 te vermijden?
Ik heb nog een aantal ir sensortjes besteld om te gebruiken met de encoder schijfjes. Worden die ook gebruikt om eventuele snelheidsverschillen tussen links en rechts automatisch te compenseren?

Overigens is dit geen officiële Arduino Uno printje maar een Chinese kloon. Wellicht zit daar ook nog wat verschil in.

Bedankt in ieder geval voor je duidelijke en snelle hulp! Het probleem lijkt gevonden en ik heb er al weer veel van geleerd; iets wat zoals gezegd één van de doelen van dit hobby projectje is!
Ik kan verder gaan experimenteren (en heb binnenkort een reserve L298N board :P )

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:17

Septillion

Moderator Wonen & Mobiliteit
@bnwgraaf Top! Zei toch dat het een belangrijke vraag was :+

Bij mij komen ook bijna alle Arduino's uit China, niets mis mee. Zelf gebruik ik meestal Pro Mini, klein, goedkoop, passen in een breadboard en ook zo in een prinstdesign.

Afwijking zou door de verschillende PWM frequenties kunnen komen maar zou ook gewoon kunnen komen door hoe soepel de motoren lopen. Je zou de motoren dus eens op uitgangen met dezelfde frequentie kunnen hangen (kan dus ook juist 5 en 6 zijn). Pinnen 5 en 6 ontwijken hoeft dus op zich niet. Alleen als je een andere PWM frequentie wilt moet je 5 en 6 vermijden. Als je met de frequentie van die pinnen gaat spelen breng je millis() door de war, de andere hebben dat niet.

En ik weet niet hoe je "de spanning" gemeten hebt? Want dat is niet zomaar met een multimeter te meten. Zelfs met de meeste True RMS meters niet daar de meeste officieel maar tot 400Hz gaan.

En niets gaat automatisch natuurlijk :+ Maar als je op beide willen encoders gaat gebruiken (wat al een uitdaging op zich is ;)) dan zou je die informatie natuurlijk kunnen gebruiken om de motoren bij te regelen. Maar dit zal je dan zelf moeten maken of een library vinden die dit al voor je doet.

Acties:
  • 0 Henk 'm!

  • bnwgraaf
  • Registratie: Oktober 2008
  • Laatst online: 23:44
Septillion schreef op zaterdag 5 december 2020 @ 10:08:
@bnwgraaf Top! Zei toch dat het een belangrijke vraag was :+
Ja dat is ook zo, ik moet toch de volgende keer iets beter lezen!
Het laat ook maar weer de kracht van een forum zien. Dank voor je inspanningen en hulp, ik heb er een hoop van geleerd en hoewel ik best een brede technische kennis heb, heb ik op dit gebied nog veel te leren. En zonder jouw hulp had ik, als ik eindelijk het nieuwe printje uit China heb ontvangen, ontdekt dat het nog steeds niet zou hebben gewerkt! :+
Maar ik vind het wel erg leuk om hier mee bezig te zijn. Je kunt heel mooi steeds kleine stukjes uitpuzzelen en dat weer combineren.
Mijn uiteindelijke doel is om nog eens een hexapod te maken. Ik heb vanuit mijn werk een uitgebreide 3D cad ervaring en dan wil ik het mechanische deel in de computer uitwerken. Maar dat is nog heel veel leertijd weg van nu! :D
Zelf gebruik ik meestal Pro Mini, klein, goedkoop, passen in een breadboard en ook zo in een prinstdesign.
Goed om te horen. Zeker voor hobby projecten scheelt het ook wel erg veel geld!
Ik heb er ook nog een Mrga bij besteld, zodat ik nog wat meer aansluitingen en opslag heb om mee te spelen.
Ik heb er nog geen ervaring mee hoe er mee te werken, maar volgens mij moet ik ook eens een breadboard bestellen. Heb jij daarbij nog tips om op te letten? Ik heb er nog nooit mee gewerkt.
Je zou de motoren dus eens op uitgangen met dezelfde frequentie kunnen hangen (kan dus ook juist 5 en 6 zijn).
Ik heb beide En aansluitingen nu op pin 10 en 11 zitten en de kleine afwijking die er nu nog is voorlopig even gecorrigeerd door de waarde van één van beide een klein beetje te verhogen.
En ik weet niet hoe je "de spanning" gemeten hebt?
Ik heb gewoon de motor draden losgekoppeld en gemeten op de uitgangen van de L298N print. Het zijn DC motoren dus die spanning kan ik toch gewoon meten?
Ik realiseerde me ook dat dit mogelijk/vermoedelijk 6V motoren zijn, dus ik moet het "gas" sowieso niet vol open zetten!
Maar als je op beide willen encoders gaat gebruiken (wat al een uitdaging op zich is ;)) dan zou je die informatie natuurlijk kunnen gebruiken om de motoren bij te regelen. Maar dit zal je dan zelf moeten maken of een library vinden die dit al voor je doet.
Klinkt als een mooie uitdaging voor later dus!
Ik ben nu eerst met de basis dingen bezig van het opbouwen, aansluiten en rijden en ik heb een begin gemaakt aan een HC-SR04 die ondertussen met een servo al rond kan kijken.

Nogmaals hartelijk dank voor al je hulp!

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:17

Septillion

Moderator Wonen & Mobiliteit
bnwgraaf schreef op zaterdag 5 december 2020 @ 12:00:
Mijn uiteindelijke doel is om nog eens een hexapod te maken. Ik heb vanuit mijn werk een uitgebreide 3D cad ervaring en dan wil ik het mechanische deel in de computer uitwerken. Maar dat is nog heel veel leertijd weg van nu! :D
Dat is wel cool! Bij mij staat juist nog steeds op de wensenlijst om eens wat met 3D CAD te doen. Wel eens een tutorial Fusio ofzo gedaan maar het dan echt toepassen op een eigen project vind ik lastig.
Goed om te horen. Zeker voor hobby projecten scheelt het ook wel erg veel geld!
Ik heb er ook nog een Mrga bij besteld, zodat ik nog wat meer aansluitingen en opslag heb om mee te spelen.
Mega heb ik nooit zo nuttig gevonden. Tenzij je echt code maakt alsof het voor een full size i7 is (tekst neemt bijvoorbeeld snel veel ruimte in) ben ik nooit aan de limieten van een Uno / Pro Mini gekomen. En zonder printplaat is een project met meer aansluitingen dan een Uno / Pro Mini al een nachtmerrie.
Ik heb er nog geen ervaring mee hoe er mee te werken, maar volgens mij moet ik ook eens een breadboard bestellen. Heb jij daarbij nog tips om op te letten? Ik heb er nog nooit mee gewerkt.
Mja, blijft haat liefde verhouding. Handig om wat te hebben maar als je circuit wat complexer wordt dan zeg 15 componenten dan is de betrouwbaarheid an een breadboard wel minder. Kan ik het vaak sneller even op een printje solderen dan in een breadboard bouwen. Dat gezegd hebbende is er wel veel verschil tussen breadboards. Maar waar je nu gegarandeerd een goed breadboard kunt halen, geen idee.
Ik heb beide En aansluitingen nu op pin 10 en 11 zitten en de kleine afwijking die er nu nog is voorlopig even gecorrigeerd door de waarde van één van beide een klein beetje te verhogen.
Denk dat je dat wel houdt zolang je gewoon feedbackloze sturing gebruikt.
Ik heb gewoon de motor draden losgekoppeld en gemeten op de uitgangen van de L298N print. Het zijn DC motoren dus die spanning kan ik toch gewoon meten?
Ik realiseerde me ook dat dit mogelijk/vermoedelijk 6V motoren zijn, dus ik moet het "gas" sowieso niet vol open zetten!
Nope, een L298n is alleen een H-brug (voor link/rechtsom) en stroomversterking (zodat je motorstromen aan kunt). Maar het uitgangssignaal blijft PWM :) En dat is geen probleem als de rating van je motor lager is, gewoon geen vol gas geven. Zijn eigenlijk maar twee dingen die de spanning van een motor limiteren, temperatuur en snelheid (voor de lagers). Die kan je beide gewoon drukken met PWM.
Klinkt als een mooie uitdaging voor later dus!
Ik ben nu eerst met de basis dingen bezig van het opbouwen, aansluiten en rijden en ik heb een begin gemaakt aan een HC-SR04 die ondertussen met een servo al rond kan kijken.
Ah, pas op voor servo valkuilen. Vooral, servo lijkt klein maar zijn behoorlijke stroomvreters ;)

Acties:
  • 0 Henk 'm!

  • bnwgraaf
  • Registratie: Oktober 2008
  • Laatst online: 23:44
Septillion schreef op maandag 7 december 2020 @ 08:34:
[...]
Dat is wel cool! Bij mij staat juist nog steeds op de wensenlijst om eens wat met 3D CAD te doen. Wel eens een tutorial Fusio ofzo gedaan maar het dan echt toepassen op een eigen project vind ik lastig.
[...]
Ik heb ruim twaalf jaar consultancy en trainingen gegeven in Autodesk Inventor en Fusion 360.
Beide mooie pakketten en Fusion is voor hobby gebruik nog gratis ook en wordt veel gebruikt in combinatie met CNC frezen en 3D printen. Je moet de basis door hebben maar daarna is het wel erg leuk om mee te werken.
Mega heb ik nooit zo nuttig gevonden. Tenzij je echt code maakt alsof het voor een full size i7 is (tekst neemt bijvoorbeeld snel veel ruimte in) ben ik nooit aan de limieten van een Uno / Pro Mini gekomen. En zonder printplaat is een project met meer aansluitingen dan een Uno / Pro Mini al een nachtmerrie.
Ik heb nog totaal geen ervaring hoe ver ik kom met het gebruik van de beschikbare opslagruimte en het aantal beschikbare aansluitingen, maar omdat bestellingen uit China best lang duren en ik met de vrije dagen die voor de deur staan lekker met deze hobby aan de gang wil, wilde ik een paar extra componenten en uitbreidingsmogelijkheden achter de hand hebben.
Nope, een L298n is alleen een H-brug (voor link/rechtsom) en stroomversterking (zodat je motorstromen aan kunt). Maar het uitgangssignaal blijft PWM :) En dat is geen probleem als de rating van je motor lager is, gewoon geen vol gas geven. Zijn eigenlijk maar twee dingen die de spanning van een motor limiteren, temperatuur en snelheid (voor de lagers). Die kan je beide gewoon drukken met PWM.
Okay, dat is interessant!
Ah, pas op voor servo valkuilen. Vooral, servo lijkt klein maar zijn behoorlijke stroomvreters ;)
Okay, goed om te weten.
Is het beter/mogelijk om de servo's apart te voeden en alleen het signaal op de Arduino aan te sluiten?

Oh, ik zie net dat er op het sensor board al is voorzien in een mogelijkheid om een aparte voeding voor de servo's te gebruiken. Dan moet ik de spanning van de LiPo alleen terugbrengen naar 5V:
The VCC pins associated with D0-D13 are controlled by the SEL jumper.

SEL jumper installed = The Arduino 5V power is connected to these pins as well. This mode facilitates using digital sensors and other low power I/O.

SEL jumper removed = The Arduino 5V power is removed and the power for the pins must be supplied by a separate power supply connected to the 2-pos screw terminal. This is commonly used when servo motors are being driven so that they can be powered from a separate power supply since they exceed the current capability of the built-in 5V and the servo motors create too much electrical noise back into the Arduino electrical system.

2-Pos Screw Terminal

GND = Ground for separate power supplySensor Shield V5 - Power
VCC = Positive voltage from separate power supply. Typically 5-6V for servos, but can be other voltage as required by the system.

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:17

Septillion

Moderator Wonen & Mobiliteit
Mja, ik moet gewoon eens het goede project ervoor hebben om te beginnen :)

En servo's "extern" voeden kan, zolang je maar een common GND hebt. Om de servo's aan te sluiten kan je dan een (beefy) DCDC voor pakken. Hoe zwaar deze met zijn ligt er aan welke servo's, hoe snel ze moeten bewegen, onder welke last en hoeveel tegelijk. Deze kan je dan inderdaad aansluiten op je sensor shield.

  • bnwgraaf
  • Registratie: Oktober 2008
  • Laatst online: 23:44
@Septillion
Ondertussen de motoren aangesloten en ook de servo en ultrasoon sensor en weer deed maar één van beide motoren...
Je had al een keer iets gezegd dat dat met de servo te maken kom hebben.
Nu heb ik ondertussen begrepen dat het een conflict was doordat zowel de motor aansturing als ook de servo gebruik probeerden te maken van dezelfde timer.
Ik heb de code voor de servo nu aangepast en gebruik gemaakt van de servotimer2 library en nu werkt het!

Ik wacht nu nog op diverse sensoren uit China. Ik dacht gisteren een paar time-of-flight sensoren binnen gekregen te hebben, maar dat had ik verkeerd besteld en bleken ambient light and proximity sensoren te zijn.... Eens kijken of ik daar nog iets leuks mee kan doen...

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 23:17

Septillion

Moderator Wonen & Mobiliteit
bnwgraaf schreef op donderdag 10 december 2020 @ 18:30:
Ik heb de code voor de servo nu aangepast en gebruik gemaakt van de servotimer2 library en nu werkt het!
Gewoon terug switchen en rekening houden met wat er in de Servo reference staat:
On boards other than the Mega, use of the library disables analogWrite() (PWM) functionality on pins 9 and 10, whether or not there is a Servo on those pins.
8)

Voor wat achtergrond info, de Uno( / Nano / Pro Mini) heeft 3 timers en elke timer stuurt twee PWM pinnen aan (in hardware). Zie voor wat meer info de PWM Cheatsheet.
Ik wacht nu nog op diverse sensoren uit China. Ik dacht gisteren een paar time-of-flight sensoren binnen gekregen te hebben, maar dat had ik verkeerd besteld en bleken ambient light and proximity sensoren te zijn.... Eens kijken of ik daar nog iets leuks mee kan doen...
Vast wel :) Heb bakken vol sensoren waar ik nog geen direct nut voor heb O-)
Pagina: 1