Hoe voed ik mijn setup

Hallo Allemaal,

Ik heb nog niet veel Arduino ervaring maar ik wil graag mijn modelspoorbaan gaan automatiseren met Arduino. Naturlijk heb ik me al wel behoorlijk verdiept in het hele gebeuren maar stuit toch op wat vragen. En de meest belangrijke vraag op het moment is: Hoe voed ik mijn "setup"?
Dit zijn de modules die ik aangeschaft heb tot nu toe.:

  • 1x ARDUINO GIGA R1 WIFI
  • 1x 16 kanaals 12-Bit PWM Servo Driver I2C
  • 1x Relais Module 5v Low | 8-kanaals
  • 3x Motor driver module TB6612FNG
  • 10x Comparator module LM393 (voor stroomdetectie)
  • 12x mosfet irlz44n module (zelf omgebouwd van een IRF520)
    Ik heb het gevoel dat ik een externe 5v voeding moet gaan gebruiken om alle modules te gaan voeden omdat ik denk dat de Arduino te weinig stroom levert voor dit alles. (even voor de duidelijkheid: ik praat alleen maar over de sturing, niet over de secondaire (belasting) kant van de modules.)
    Dus de vraag is:
  • kan ik alles voeden via de USB aansluiting? (levert die genoeg stroom?)
  • Als ik de Arduino voed met bijvoorbeeld 12v voeding via de VINpin kan ik de rest dan voeden met de verschillende 5v out pinnen. (levert de Arduino genoeg stroom)
  • Als ik een externe 5v voeding moet gaan gebruiken komen er dan geen problemen met de logica van de Arduino giga die voor zover ik weet op 3.3v logica werkt. (wat gebeurd er als er bijvoorbeeld 5v op een GPIO pin binnenkomt?)
    Ik hoop dat iemand mij kan helpen want ik wil natuurlijk wel dat alles heel blijft. :wink:
    Groetjes John

De 8 kanaals relais zal niet lukken denk ik (als je alle 8 kanalen tegelijk aan hebt staan...).
Die zou ik voeden met een usb voeding...
Of er problemen met de logica komen hangt nogal af van de koppeling...
Als de relaismodule werkt met opto couplers dan is er daar niets aan de hand....
Voor alle andere modules weet ik het niet...
5V op een 3V3 logica is vaak niet een goed plan...
Je kunt dan wel een voltage divider toepassen...

Hoi John, welkom !

Je conversie naar de andere FET is een goed idee omdat die de lagere stuurspanning wel juist kunnen verwerken, dus prima.

Nee, de voeding op je Arduino board is alleen groot genoeg voor je Arduino board en een paar LEDjes.
Het is zeker niet bedoeld om alles wat je bedenken kan te voeden.
Dus daarom, zoals build_1971 al aangaf, beter iets anders maken.
Verder is het altijd een goed idee om je te houden aan de spanningen waar het spul voor gemaakt is: maak gebruik van level converters, ook wanneer de Arduino "5 volt tolerant" is.

Zorg er wel altijd voor dat de GND van alle modules onderling gekoppeld zijn (dus ook met je Arduino) want er moet 1 gemeenschappelijk "referentiepunt" zijn en dat is dan die GND.
Vergeet je die GND, dan gaan je modules nooit werken.

Dank je wel MAS3 voor het antwoord (kort en duidelijk) precies wat ik wou weten. Wel nog een vraagje.: Als ik de "16 kanaals 12-Bit PWM Servo Driver I2C" extern voed met 5v hoe zit dat dan met de I2C comunicatie geeft dat geen problemen? (Ik wil deze module graag het liefst met 5v voeden zodat de uitgangen dan ook 5v zijn dan hoef ik daartussen geen level converters te gebruiken.

Ik moet er even van uitgaan dat je voor je PWM servo driver I2C een NXP PCA9685 chip gebruikt.
De datasheet (klik !) zegt dan hierover:

VIL LOW-level input voltage 0.5 - +0.3V DD V
IH HIGH-level input voltage 0.7V DD - 5.5 V
I OL LOW-level output current VOL = 0.4 V; V DD = 5.0 V 30 40 - mA

Ik wilde dit in een tabelletje zetten, maar dat is een crime in deze forumsoftware (en ik kom er ook net achter dat een sterretje (sorry @sterretje) ook niet zoals gangbaar gebruikt kan worden om een vermenigvuldiging weer te geven.
Wat je daar uit kunt halen, is dat voor de SDA signalen, een nivo van 0.3 maal 5 volt (dus 1.5 Volt of lager) als een LOW wordt gezien,
En 0.7 maal 5 Volt (dus 3.5 Volt of hoger) als een HIGH.
Daarmee is het onwaarschijnlijk dat dit betrouwbaar gaat werken zonder level converters, en omdat I2C data 2 richtingverkeer is, moet de converter dat ook zijn, plus moet je rekening houden met pull up weerstanden aan beide zijden van deze converters.

Dit betekent niet dat dit MOET, wel dat wanneer je het zonder level converters doet, je waarschijnlijk buiten de specificaties van de I2C bus werkt (en die is door Philips, wat later NXP geworden is, uitgevonden).