Toon posts:

ESP32 Easyesp 0.15V op GPIO

Pagina: 1
Acties:

Vraag


  • Opperhoof
  • Registratie: Mei 2003
  • Laatst online: 17:46
Ik heb een Wroom Devkit ESP32 en een 16 channel relay board.

Ik heb ESPeasy erop geflashed. Ik heb nu GPIO14 verbonden met een relay. Als ik de GPIO op high zet, komt er 3.3v op te staan en schakelt het relais in. Als ik echter de GPIO op low zet, blijft het relais ingeschakeld en blijft er ~0.15v op de pin staan. Als ik de verbinding verbreek gaat de relais uit, sluit ik hem aan, gaat de relais ook weer aan. Maar als ik de ESP32 reboot en instel dat GPIO14 bij boot Low is, dan staat er wel 0.0v op en blijft de relais uit.

Kan ik dit ergens instellen of op een andere manier oplossen?
Ik dacht eraan om als sub optimale oplossing er een diode tussen te plaatsen, waarbij ik hoop dat de spanningsval van de diode genoeg is om de relais te laten uitschakelen.

Alle reacties


  • remco_k
  • Registratie: April 2002
  • Laatst online: 19:13

remco_k

een cassettebandje was genoeg

Pulldown weerstand toevoegen lost je probleem mogelijk op.
Leg even een weerstand aan van b.v. 10kOhm of 100kOhm tussen GPIO14 en ground.

Alles kan stuk.
Goedkoop SHOUTcast stream hosting? Snel online, geen setup kosten. www.digiplay.nl


  • Sgrovert
  • Registratie: Mei 2004
  • Laatst online: 11:01
Ik denk eerder een weerstand in serie met het relais.
Je relais schakelt in bij een bepaald aan mA door de primaire spoel. De stroom door het relais is afhankelijk van de spanning en de weerstand van je spoel. 0.15 V kan genoeg zijn om voor houdstroom van je relais.

Check je schakelstroom van je relais even. En zorg dat bij 3.3 v ongeveer 2x die stroom loopt.
Check ook of deze stroom binnen de specs van je ESP vallen. De gipo pinnen zijn signaal pinnen en een relais direct aan de pinnen trek meestal meer stroom dan via de specs toegestaan. Deze te grote stroom is waarschijnlijk ook de reden dat er 0.15 V blijft nadat het relais ingeschakeld is.

Lost In Music


  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 16:29

memphis

48k was toen meer dan genoeg.

Maf, want de relais print gebruikt volgens de foto's opto couplers en zou een spanning onder de 1v al niet meer moeten werken.

Er zijn mensen die mij een GOD vinden


  • Sgrovert
  • Registratie: Mei 2004
  • Laatst online: 11:01
Laat mijn opmerking maar zitten. Ik had slecht gelezen en dacht dat je rechtstreeks een relais aansloot.

Net even naar de specs gekeken en het valt me op dat het relaisbord het over 5-10 mA voir de gipo pinnen heeft.
Verder staat in de spec van de esp dat gipo 14 een pull up heeft.

Heel stom idee, maar sluit het relais eens op gipo 13 aan. Deze zou geen pull up hebben.

Lost In Music


  • remco_k
  • Registratie: April 2002
  • Laatst online: 19:13

remco_k

een cassettebandje was genoeg

Sgrovert schreef op donderdag 22 december 2022 @ 23:28:
Verder staat in de spec van de esp dat gipo 14 een pull up heeft.
Dat conflicteert met deze info uit de TS:
Maar als ik de ESP32 reboot en instel dat GPIO14 bij boot Low is, dan staat er wel 0.0v op en blijft de relais uit.
Of er daadwerkelijk een pull up is, is eenvoudig te meten door GPIO14 op low te zetten, even los te koppelen en dan meten wat er voor spanning op staat. -> klopt niet, never mind.

Sowieso is het gebruik van pull down weerstanden bij dit soort situaties wel aan te raden, om 'spook' schakelingen te voorkomen als iemand ergens het licht aandoet of op de deurbel drukt ofzo.
Het gebruik van opto-couplers zou die taak eigenlijk (en onbedoeld) deels op zich nemen door de 'load' ervan, maar blijkbaar is dat niet voldoende om de omgevingsvariabelen naar gnd te trekken.

[Voor 3% gewijzigd door remco_k op 23-12-2022 09:50]

Alles kan stuk.
Goedkoop SHOUTcast stream hosting? Snel online, geen setup kosten. www.digiplay.nl


  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 16:29

memphis

48k was toen meer dan genoeg.

In een normaal ontwerp zouden LED's over de massa geschakelt worden, dit omdat veel logica dan ook met open collectors kunnen werken, ook microprocessors zijn daar meer op geoptimaliseerd. In dat opzicht vind ik die relaiskaart ook een slecht ontwerp door de optocouplers over de plus te schakelen.

Maar probeer eens een andere uitgang, misschien is GPIO14 een beetje rot. Met alle shit wat ik momenteel zie met alle chiptekorten zou het mij niets verbazen. Op werk is het met chips soms net een loterij: "doet ie het of doet ie het niet?"

Er zijn mensen die mij een GOD vinden


  • septillion
  • Registratie: Januari 2009
  • Laatst online: 19:19

septillion

Moderator Wonen & Mobiliteit
Pull down / up weerstanden zijn bij outputs nergens voor nodig, dan is de state altijd hard.

Maar ik vraag me wel even af of het niet een active low relais bordje is. Daar het er op lijkt dat je hem zowel 5V als GND als een IO moet voeren.

Dus hoe heb je hem nu aangesloten?

Ik zou verwachten dat je
- bordje-GND naar ESP-GND
- bordje-5V naar ESP-5V
- bordje-[nrX] naar esp GPIO[nrY]
- en dan nog spanning op de schroefterminal

Je zou eens even kunnen testen, sluit alles aan maar geen bordje-[nrX] pin. Als je nu even een jumper doet tussen een bordje-[nrX] pin en 5V, gaat relais dan aan? En als je bordje-[nrX] aan GND hangt, gaat relais dan aan?

  • Tom-Z
  • Registratie: Augustus 2010
  • Laatst online: 19:30
Opperhoof schreef op donderdag 22 december 2022 @ 15:07:
Ik heb ESPeasy erop geflashed. Ik heb nu GPIO14 verbonden met een relay. Als ik de GPIO op high zet, komt er 3.3v op te staan en schakelt het relais in. Als ik echter de GPIO op low zet, blijft het relais ingeschakeld en blijft er ~0.15v op de pin staan. Als ik de verbinding verbreek gaat de relais uit, sluit ik hem aan, gaat de relais ook weer aan.
Op de site van Conrad zie ik staan dat het een "low-level input" bordje is. Op deze Italiaanse listing zie ik via Google Translate staan "Input driving voltage: 0 / 5 V (3.7mA) - The driving takes place with a LOW level (0V) or with an NPN open collector.".
Dat wil zeggen dat je voor relay aan er 0V op moet zetten, en voor relay uit 5 V. Met 3.3 V is er nog 1.7 V over voor de optocoupler wat ook wel genoeg zal zijn om hem aan te krijgen.
Maar als ik de ESP32 reboot en instel dat GPIO14 bij boot Low is, dan staat er wel 0.0v op en blijft de relais uit.
Weet je héél zeker dat er inderdaad in die toestand 0.0 V staat? Het lijkt me aannemelijk dat hij bij boot niet op LOW staat maar op high impedance. Dat zou alles verklaren. Probeer eens of de relay uit gaat als je de pin INPUT maakt.

  • Opperhoof
  • Registratie: Mei 2003
  • Laatst online: 17:46
Bedankt voor de reacties. Ik heb nog wat testen gedaan.

Op internet zie ik veel voorbeelden waarbij dit relais bord wordt aangestuurd met een arduino. Deze geeft 5v op de GPIO pinnen.

Op de 20 pins aansluiting van het relais bord meet ik 4V tussen GND en de 'aansturingspinnen'. Apart, ik had daar geen spanning verwacht.

Aansluiten op een andere GPIO maakt geen verschil. Ook heb ik een ESP8266 geprobeerd, maar dat maakt ook geen verschil. Ik kan hem wel inschakelen, maar daarna niet meer uitschakelen.

Als ik het aansluit met een diode of een 10k ohm weerstand werkt het wel:




Dit zijn de instellingen in ESPEasy. De instelling 'internal pullup' geeft geen verschil in werking.



Ik neig er nu naar om het gewoon aan te sluiten met diodes of weerstanden. Ik vraag me hierbij alleen af wat de 'beste'/'minst slechte' optie is, en of de ESP32 hierdoor niet kapot gaat?

[Voor 94% gewijzigd door Opperhoof op 23-12-2022 13:36]


  • Sgrovert
  • Registratie: Mei 2004
  • Laatst online: 11:01
Een weerstand in je signaal kan eigenlijk nooit kwaad. Signaal pinnen gaan stuk door te grote stroom. Een weerstand beperkt de stroom, wat de levensduur dus ten goede komt.
Een weerstand kan wel te groot zijn, waardoor he signaal niet meer doorkomt, maar dat lijkt met je huidige setup geen probleem.

De diode beperkt de stroom niet. Ik zou zelf kiezen voor de weerstand.

Lost In Music


  • Opperhoof
  • Registratie: Mei 2003
  • Laatst online: 17:46
Ik heb nog wat verder onderzoek gedaan naar hoe ik dit op een juiste manier werkend kan krijgen. Wat ik er tot nu toe van begrijp is dat om de relais in te schakelen, de control pin moet worden verbonden met de ground.
Iemand anders probeerde dit bord aan te sturen met een rpi en gebruikte hiervoor het volgende schema.



Ik denk dat dit de juiste manier is. Ik heb alleen 1k en 10k weerstanden in huis. Is het aannemelijk dat ik de 2.2k weerstand kan vervangen voor 1k weerstand?
En waarom is die 10k weerstand nodig?

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 16:29

memphis

48k was toen meer dan genoeg.

Als je 3v aanstuurtt kan een 1k basis weerstand ook prima. de 10k is om zeker te zijn dat de basis van de transistor niet gaat zweven als er bv uit de GPIO een lekstroom komt of de GPIO geheel uit wordt gezet.

Er zijn mensen die mij een GOD vinden


  • Sissors
  • Registratie: Mei 2005
  • Nu online
Opperhoof schreef op zaterdag 24 december 2022 @ 10:36:
Ik heb nog wat verder onderzoek gedaan naar hoe ik dit op een juiste manier werkend kan krijgen. Wat ik er tot nu toe van begrijp is dat om de relais in te schakelen, de control pin moet worden verbonden met de ground.
Iemand anders probeerde dit bord aan te sturen met een rpi en gebruikte hiervoor het volgende schema.

[Afbeelding]

Ik denk dat dit de juiste manier is. Ik heb alleen 1k en 10k weerstanden in huis. Is het aannemelijk dat ik de 2.2k weerstand kan vervangen voor 1k weerstand?
En waarom is die 10k weerstand nodig?
Als hij zo aangestuurd moet worden, is je probleem eigenlijk redelijk simpel: De 0V klopt, de 3.3V is fout. Het is vooral jammer dat ze hem niet 3.3V compatible hebben gemaakt door gewoon wat jij in je plaatje hebt er bij te integreren.

Anyway wat ik vermoed dus:
Het is een optocoupler waar de andere kant van de LED aan de 5V hangt. Die gebruik je door stroom door de LED aan/uit te zetten. Zet jij er 0V op, dan staat er 5V over de LED, en is de handel ingeschakelt. (Oké niet 5V over de LED, zit natuurlijk nog iets van een voorschakelweerstand bij).

Zet jij nu 3.3V erop, dan staat er nog steeds 5V-3.3V = 1.7V over de LED, en schijnbaar is dat net aan genoeg om hem aan te houden. Terwijl hij dan dus uit had moeten zijn.

Oplossingen:
1. Hele relais bord op 3.3V voeding draaien. Maar dat kan hij iig officieel niet aan, en zelfs al zou het werken, dan heb je natuurlijk risico op toekomstige onverklaarbare problemen.

2. Switch te pinnen tussen 0V output, en input. Dan loopt er geen stroom. Alleen de spanning kan dan tot 5V gaan op de input, wat prima is, als ze pinnen 5V tolerant zijn. En ik heb zelf nog nooit een ESP32 gebruikt, maar ik krijg niet directe een eenduidig antwoord op het internet of de pinnen 5V tolerant zijn. Garantie krijg je iig niet, want het staat niet in de datasheet.

3. Circuitje wat jij hebt getekend ertussen (of een mosfet, iets makkelijker, alleen moet je wel eentje hebben die bij 3.3V aan gaat).

(Zelf zou ik me niet heel druk maken over die 10k, zeker bij een BJT die weinig kan doen met een zwevende input).
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee