RC Tank voeding probleem

Discussie in 'Model elektronica' gestart door sionverhoef, 3 apr 2015.

  1. sionverhoef

    sionverhoef

    Lid geworden:
    3 apr 2015
    Berichten:
    1
    Beste Forumleden,

    Ik ben nieuw hier dus ik zal me even voorstellen.
    Ik ben Sion, ik ben 18 jaar oud en doe de MBO opleiding Mechatronica.

    Ik ben al een tijdje bezig met een rc rupsvoertuig. Dit was mijn eerste project en ik ben ook tegen veel problemen aam gekomen maar nu kom ik echt niet meer verder.


    [​IMG]
    Hier de specs van mijn voertuig:
    Besturing: Arduino Uno
    Motor driver: Mosfet dual h bridge (10a)
    Motors: Tamiya plasma dash (3v 4.1-5.2 A)
    Chassis: Tamiya plate + Tamiya track and wheel set + Tamiya twin gearbox

    Mijn probleem is dat als ik 2 motors laat draaien (wat voor snelheid dan ook) dat hij dan veel te langzaam gaat en de voltage van de accu ver zakt (van 12 v naar 10-5 v) Dit gebeurt echter niet als ik een motor laat draaien.
    Na een paar seconde stopt alles ermee. En als ik dan de accu even aan en uit zet doet die het weer. Ik weet niet echt hoe het zit met amperes bij accu's.

    Het rare is dat ik een 5A vaste voeding heb en daar doet die precies hetzelfde. Alleen hij stopt er dan niet mee. Dus dit brengt me naar de regulator.

    Ik heb een 12 naar 3 en 5 volt regulator erop zitten en die kan 3A aan maar lijkt meer Amperé prima te trekken.

    Ik denk zelf dat de voltage drop van de accu het uitvallen veroorzaakt en mijn regulator dat 2 motors tegelijk niet echt lekker laten draaien.

    Dus mijn vraag is:
    Is dit probleem op te lossen met bijvoorbeeld condensators op de pieken op te vangen? Of een andere goedkope oplossing want ik ben al ver over mijn budget heen en wil het project graag afronden.
    Al is dit niet het geval.
    Tips voor een nieuwe accu?

    Vriendelijke groeten,
    Sion
     
  2. cdrom flyer

    cdrom flyer

    Lid geworden:
    19 mrt 2006
    Berichten:
    4.201
    Locatie:
    Uithoorn
    Welkom op het forum.
    Je begint wel met een warrig verhaal.
    Je hebt een voedingsbron van 12V die onder belasting zakt naar 10-5V.
    Er zit een regelaar tussen van 3A maar het lijkt dat hij meer kan trekken.
    Grote vragen zijn dan waarom een 12V voeding en waar bestaat die uit.
    Als de spanning inzakt betekend dat er iets overbelast is dus het juist niet kan trekken.
    Is de accu wel goed geladen en in goede staat.
    Meten is weten zeggen we altijd.
    Zijn het borstelmotoren en hoeveel stroom trekken die met deze belasting?
    Ik heb de indruk dat je elektrotechnisch niet de slimste keuzes gemaakt hebt.
    Een schema zou meer zeggen als heel veel woorden.:confused:
     
  3. Cheeta

    Cheeta Forum veteraan

    Lid geworden:
    8 jul 2003
    Berichten:
    9.523
    Locatie:
    Nieuwegein
    je kan er een 12V 200A voeding aanhangen.. maar als de 3V voeding het niet bij kan houden dan stort deze toch echt in elkaar. Het is niet hoe meer vermogen ik in de spanning sregelaar stop hoe meer eruitkomt. De spannings regelaar heeft een max vermogen. Als je geluk hebt is deze beveiligd tegen overbelasting / overhitting en zal daardoor terug regelen en uiteindelijk zelfs stoppen.

    3V en 5V kunnen samen 3A leveren? Wat voor regelaar gebruik je?
    Een 7805 kan max 2A leveren (S versie) maar heeft al wel een koelblok nodig.
    ik vermoed dat je voeding gewoon niet voor elkaar is. Waarom eigenlijk motoren op 3V laten draaien?
     
  4. SionWP

    SionWP

    Lid geworden:
    6 apr 2015
    Berichten:
    8
    Locatie:
    Wilnis
    Ik kon niet meer inloggen op mijn account dus heb even een nieuwe gemaakt.

    Bedankt voor de reacties ik zal proberen met een vaste voeding voor de motoren te kijken of hij het dan wel gaat doen.

    Ik heb een accu via ebay van 12 volt. De motoren hebben borstels.
    Ik ben zelf qua elektra en modelbouw een beginner en probeer met dit project ervaring op te doen.

    Ik heb deze omvormer gebruikt:
    http://www.ebay.com/itm/DC-To-DC-Co...541?pt=LH_DefaultDomain_0&hash=item1e7ce4aa95

    Ik denk zelf dat ik naast deze omvormer, een zware 3V omvormer ga aanschaffen voor de voeding van de motoren maar ik ga eerst even kijken of het wel goed gaat als ik de motoren voed met een externe voeding.

    Bij deze het elektrisch schema
    [​IMG]
     
  5. Ernst Grundmann

    Ernst Grundmann PH-SAM Forum veteraan

    Lid geworden:
    27 aug 2002
    Berichten:
    13.367
    Locatie:
    Woerden
    Het is veel verstandiger om andere motoren te nemen. Dan moet je motoren nemen die op 12V kunnen draaien dan heb je alle vermogen van de voeding (accu?) tot je beschikking. Met die 3V motoren heb je een enorme berg verlies en de motoren hebben ook nog eens weinig vermogen, 3V en maximaal 5A is maar maximaal 15Watt. Als je 12V motoren neemt die maar 2A nodig hebben heb je al 24Watt en vele malen minder verliezen. Eerst al niet in de spanningsregelaar, die 3V maakt van de 12V, en ook niet door de stroom. Bij 2A heb je minder dan de helft verlies dan bij 5A!
    Je bent echt veel beter af met 12V motoren!
     
  6. Volhout

    Volhout

    Lid geworden:
    23 jul 2008
    Berichten:
    912
    Locatie:
    Twente
    Inderndaad: motoren voor een hogere spanning nemen. Je regelaar kan 3.3V bij 3A aan en de motoren nemen 2x 4.1A (dus 8.2A) minimaal.

    Daarnaast heb je een waarschijnlijk tweede probleem: de regelaar.
    In jouw blok diagram zie je dat er 2 Vcc aansluitingen zijn: eentje voor de logica, die krijgt 5V van de arduino: correct. Eentje voor de motoren. Die krijgt 3V. Maar.... dit soort regelaars met gescheiden Vcc's gaan er in ontwerp meestal van uit dat de motor Vcc hoger is dan de logica Vcc, en de ontwerpen gebruiken die hogere Vcc spanning dan vaak om de stuurspanning van de vermogensFET's uit af te leiden.

    In jouw geval is de motor Vcc lager, en dan worden de FET's niet volledig uitgestuurd.

    beste oplossing: neem 12V motoren, of ....gebruik een enkele lipo (1S, 3.7V, 5000mA) als voeding voor de motor regelaar. Die 0.7V verlies je wel over de bekabeling en H-brug. dus de motoren blijven wel heel.
     
  7. SionWP

    SionWP

    Lid geworden:
    6 apr 2015
    Berichten:
    8
    Locatie:
    Wilnis
    Bedankt voor de reacties.
    Ik heb even wat rond gekeken voor 12V motoren maar ik zie niet echt veel snelle motoren in de kleine maat die ik nodig heb om in de versnellingsbak te passen.
    Ik wil het graag goedkoop houden dus deze optie zit ervoor mij jammer genoeg niet bij maar, ik zal het onthouden voor toekomstige projecten.

    Ik heb een paar batterijen liggen van 1.2V, misschien knutsel ik daar even een battery pack van 3.6V van om te kijken en dan schaf ik later wel een goeie accu aan.

    Bedankt voor het advies ik zal jullie op de hoogte houden met verdere ontwikkelingen.
     
  8. Cheeta

    Cheeta Forum veteraan

    Lid geworden:
    8 jul 2003
    Berichten:
    9.523
    Locatie:
    Nieuwegein
    je probleem zit hem in het feit dat je motorspanning lager is dan je stuur spanning.. vinden fets niet zo leuk..

    maar kunnen je motoren niet op hogere spanning draaien? of gaan ze dan weer te snel? *dat zou je kunnen afvangen met een begrenzing op je regelaar software matig.
     
  9. SionWP

    SionWP

    Lid geworden:
    6 apr 2015
    Berichten:
    8
    Locatie:
    Wilnis
    Bij de beschrijving van de motor driver staat 3 tot 36 Volt dus dat zou geen probleem moeten zijn.

    Ik had ergens gezien dat de motoren ook op 7 volt kunnen draaien maar dat de koolborstels wel sneller kapot zouden gaan. Zelf heb ik de keuze uit 3.3 en 5 volt want 12 volt rechtstreeks vanaf de accu gaat hem niet worden. Maar dan heb ik alsnog het probleem dat ik het via de omvormer moet voeden.

    Zelf dacht ik aan een aparte 12V naar 3V of 5V(al zou dat beter zijn voor de mosfets) omvormer erbij te zetten die meer ampere's aankan
     
  10. Ernst Grundmann

    Ernst Grundmann PH-SAM Forum veteraan

    Lid geworden:
    27 aug 2002
    Berichten:
    13.367
    Locatie:
    Woerden
    Een Fet wordt aangestuurd met een spanning. Wanneer je de spanning tussen de Gate (de stuuringang) en de Source (de uitgang zou je kunnen zeggen) van een Fet opvoert zal bij een bepaalde spanning de Fet stroom beginnen te geleiden. De spanning waarbij dat gebeurt wordt bepaald door het ontwerp. Stel dat een bepaalde Fet begint te geleiden bij bijvoorbeeld 1V.
    In een regelaar, ook deze, worden schakel Fet's gebruikt. Een belangrijke eigenschap is dat die Fet's heel snel volledig "open" gaan. Wordt die spanning nog verder opgevoerd dan zal de Fet steeds verder open gaan maar bij een bepaalde spanning staat de Fet helemaal open, dat is bijvoorbeeld bij 2,5V. De weerstand van de Fet is dan heel erg laag. Hoe lager hoe beter!
    De spanning op de Gate nog verder opvoeren heeft geen zin en kan zelfs schadelijk zijn! Om er zeker van te zijn dat de Fet echt helemaal "open" staat wordt de spanning wel iets hoger gemaakt dan die 2,5V, Vaak wordt er dan 5V gebruikt. Maar er moet wel voor gezorgd worden dat die spanning nooit te hoog kan worden. Meestal mag het niet meer dan iets van 20V worden, bij sommige Fet's zelfs niet meer dan 15V. Wordt de Gate spanning wel hoger dan zal de Gate doorslaan en is de Fet naar z'n grootje!

    Bovenstaande betekend dat de gate spanning best hoger mag zijn, en soms zelfs moet zijn, dan de spanning die de Fet moet schakelen. Als je bijvoorbeeld de Fet uit het voorbeeld gebruikt in een apparaatje dat door één 1,5V batterij wordt gevoed zal je die Fet nooit helemaal open kunnen krijgen omdat de spanning op de Gate niet hoger kan worden dan 1,5V en er is minstens 2,5V nodig om de Fet helemaal open te zetten. In zulke gevallen wordt er een trucje toegepast om een hogere spanning te maken voor de Gate sturing. Er wordt dan een spanningsverdubbelaar gebruikt om 3V te maken en zo de fet wel helemaal open te kunnen sturen.
    Bedenk daarbij dat over een Fet die helemaal open staat slechts een heel lage spanning staat. Op dat moment is de Gate spanning altijd hoger (veel hoger) dan de spanning over de Fet zelf. ;)
     
  11. cdrom flyer

    cdrom flyer

    Lid geworden:
    19 mrt 2006
    Berichten:
    4.201
    Locatie:
    Uithoorn
    Wie zegt dat je via de omvormer moet voeden.
    Je kunt toch een aparte 5V of 3V accu samen stellen en daar mee de motordriver op de 3V of 5V ingang voeden.
    De rest laten zoals het is dat stelt qua vermogen niets voor maar het gaat om de motorstroom waar de spanningsomvormer moeite mee heeft en daar treden de grote verliezen op.
    De hele omvormer kan dan zelfs vervallen en de 12V ventilator kan rechtstreeks op de 12V voeding.
    Spanningen tot een lager niveau compenseren als het om een relatief aanzienlijk vermogen gaat moet je niet doen als het anders kan.:confused:;)
     
    Laatst bewerkt: 8 apr 2015
  12. SionWP

    SionWP

    Lid geworden:
    6 apr 2015
    Berichten:
    8
    Locatie:
    Wilnis
    Bedankt voor de tips en de uitleg over de mosfet's, ik ben blij dat ik dit kan leren zonder iets te slopen.

    Ik zat zelf te denken aan een zware omvormer erbij te zetten maar zoals jullie al eerder vermelde is dit onhandig dus ga ik toch maar voor de aparte accu.

    Ik heb nog een vraag:
    Als ik de motoren laat draaien op een duty cycle van 50% halveert het amperage dan ook?

    Vriendelijke groeten,
    Sion
     
  13. cdrom flyer

    cdrom flyer

    Lid geworden:
    19 mrt 2006
    Berichten:
    4.201
    Locatie:
    Uithoorn
    Nee ook bij de gasstand op 50% zal de opgenomen stroom mede afhankelijk zijn van de belasting dus zal hoger worden als de tank tegen en helling op tijdt.
    De stroom zal de gasstand wel volgen maar niet zuiver lineair.;)
     
  14. SionWP

    SionWP

    Lid geworden:
    6 apr 2015
    Berichten:
    8
    Locatie:
    Wilnis
    Laatst bewerkt: 9 apr 2015
  15. cdrom flyer

    cdrom flyer

    Lid geworden:
    19 mrt 2006
    Berichten:
    4.201
    Locatie:
    Uithoorn
    Als je met een rc vliegtuig van een paar kilo gaat vliegen dan heb je 6000mAh nodig.
    Met jou 5.2A belasting zou je dus een uur vol gas kunnen rijden onder de zwaarste omstandigheden.
    In de praktijk kom je daar nooit aan en zal je misschien wel een hele dag kunnen rijden.
    Kortom aan 600mAh heb je al genoeg en als hij leeg is verwissel je de lipo voor een volle zo werkt dat in de praktijk.
    Een lader kies je op het vermogen en de lipos en/of andere accus die je er nu en in de toekomst mee wil laden dus daar kan je beter eerst over beslissen.
    De lader die je noemt heeft 6 uur nodig om een 6000mAh lipo te laden.
    Normaal kan dat binnen een half uur.
    Een 600mAh lipo kan wel natuurlijk.;)
     
    Laatst bewerkt: 9 apr 2015
  16. SionWP

    SionWP

    Lid geworden:
    6 apr 2015
    Berichten:
    8
    Locatie:
    Wilnis
    Bedankt voor het advies.

    Ik heb 2 stuks 600mAh batterijen besteld, nu nog even wachten tot ze binnen zijn en dan ben ik hoop ik helemaal klaar om te rijden.
     
  17. cdrom flyer

    cdrom flyer

    Lid geworden:
    19 mrt 2006
    Berichten:
    4.201
    Locatie:
    Uithoorn
    Laatst bewerkt: 4 mei 2015
  18. SionWP

    SionWP

    Lid geworden:
    6 apr 2015
    Berichten:
    8
    Locatie:
    Wilnis
    Kan de link niet openen.

    Ik heb pas met een klasgenoot de code van de arduino doorgekeken en ik heb eindelijk alles goed werkend gekregen. Alleen als ik vanuit stilstand met volle snelheid weg rij dan krijgt de accu een voltage dip. Maar dit is te verhelpen.
    Hier een kort filmpje van het resultaat:
    https://instagram.com/p/2N4jn9m7ti/?taken-by=sionverhoef

    Heel erg blij met het resultaat, bedankt voor de hulp!

    Voor de liefhebbers het script

    Code:
    /* Arduino Bluetooth gestuurde tank */
    
    int const PWMA = 6;
    int const PWMB = 5;
    int const dirA = 7;
    int const dirB = 4;
    int spe=0;
    
    void setup()
    {
       pinMode(PWMA, OUTPUT);
       pinMode(PWMB, OUTPUT);
       pinMode(dirA, OUTPUT);
       pinMode(dirB, OUTPUT);
     
      //set up vooruit, geen snelheid
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, HIGH);
      analogWrite(PWMA, 0);
      analogWrite(PWMB, 0);
     
       Serial.begin(9600);
    }
    
    void loop()
    {
      if (Serial.available() > 0)                      //kijken voor data
      { int incomingByte = Serial.read();   //lees laatste byte
      switch (incomingByte)
      {
        {case 'F':
          moveForward();
          Serial.println("Going forward");
          break;}
        case 'B':
          moveBack();
          Serial.println("Going back");
          break;
        case 'L':
          moveLeft();
          Serial.println("Going left");
          break;
        case 'R':
          moveRight();
          Serial.println("Going right");
          break;
        case 'S':
          moveStop();
          Serial.println("Stopping");
          break; 
        case 'G':
          moveForLe();
          Serial.println("Going forward-left");
          break;
        case 'I':
          moveForRi();
          Serial.println("Going forward-right");
          break;
        case 'H':
          moveBaLe();
          Serial.println("Going back-left");
          break;
        case 'J':
          moveBaRi();
          Serial.println("Going back-right");
          break;
        case 'W':
          frontLightOn();    
          Serial.println("Front lights on");
          break;
        case 'w':
          frontLightOff();
          Serial.println("Front lights off");
          break;
        case 'U':
          Serial.println("Back lights on");
          break;
        case 'u':
          Serial.println("Back lights off");
          break;
        case 'V':
          Serial.println("Horn on");
          break;
        case 'v':
          Serial.println("Horn off");
          break;
        case 'X':
          Serial.println("Extra on");
          break;
        case 'x':
          Serial.println("Extra off");
          break;
        case '0':
          spe=0;
          Serial.println("Speed is 0");
          break;
        case '1':
          spe=25;
          Serial.println("Speed is 25");
          break;
        case '2':
          spe=50;
          Serial.println("Speed is 50");
          break;  
        case '3':
          spe=75;
          Serial.println("Speed is 75");
          break;
        case '4':
          spe=100;
          Serial.println("Speed is 100");
          break;
        case '5':
          spe=125;
          Serial.println("Speed is 125");
          break;
        case '6':
          spe=150;
          Serial.println("Speed is 150");
          break;
        case '7':
          spe=175;
          Serial.println("Speed is 175");
          break;
        case '8':
          spe=200;
          Serial.println("Speed is 200");
          break;
        case '9':
          spe=225;
          Serial.println("Speed is 225");
          break; 
        case 'q':
          spe=255;
          Serial.println("Speed is 255");
          break; 
         case 'D':
          Serial.println("Stop All");
          break;
        default:
          //Geen overeenkomsten, doe niks
          break;
        }
      }
    }
    
    void moveForward()
    {
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, HIGH);
      analogWrite(PWMA, spe);
      analogWrite(PWMB, spe);
    }
    
    void moveBack()
    {
      digitalWrite(dirA, LOW);
      digitalWrite(dirB, LOW);
      analogWrite(PWMA, spe);
      analogWrite(PWMB, spe);
    }
    
    void moveRight()
    {
      digitalWrite(dirA, LOW);
      digitalWrite(dirB, HIGH);
      analogWrite(PWMA, spe);
      analogWrite(PWMB, spe);
    }
    
    void moveLeft()
    {
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, LOW);
      analogWrite(PWMA, spe);
      analogWrite(PWMB, spe);
    }
    
    void moveStop()
    {
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, LOW);
      analogWrite(PWMA, 0);
      analogWrite(PWMB, 0);
    }
    
    
    void moveForLe()
    {
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, HIGH);
      analogWrite(PWMA, spe);
      analogWrite(PWMB, (spe / 2));
    }
    
    void moveForRi()
    {
      digitalWrite(dirA, HIGH);
      digitalWrite(dirB, HIGH);
      analogWrite(PWMA, (spe / 2));
      analogWrite(PWMB, spe);
    }
    
    void moveBaLe()
    {
      digitalWrite(dirA, LOW);
      digitalWrite(dirB, LOW);
      analogWrite(PWMA, (spe / 2));
      analogWrite(PWMB, spe);
    }
    
    void moveBaRi()
    {
      digitalWrite(dirA, LOW);
      digitalWrite(dirB, LOW);
      analogWrite(PWMA, spe);
      analogWrite(PWMB, (spe / 2));
    }
    
    void frontLightOn()
    {
      digitalWrite(13, HIGH);
    }
    
    void frontLightOff()
    {
      digitalWrite(13, LOW);
    }
     
  19. cdrom flyer

    cdrom flyer

    Lid geworden:
    19 mrt 2006
    Berichten:
    4.201
    Locatie:
    Uithoorn
    Ik heb link in mijn vorige post aangepast.

    Leuk dat alles nu werkt.:)
     

Deel Deze Pagina