esp32 - level divider altijd hoog?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 22:25
om de stand van m'n garagepoort uit te lezen gebruik ik 2 magneetcontacten (open / dicht) en een relais (die het waarschuwingslicht detecteert).
M'n huidige schakeling in arduino werkt perfect met een kleine schakeling waarbij de input met een 1K weerstand hangt aan de relais/magneet die ook met een 10K naar de GND wordt getrokken.

Ik wil dezelfde schakeling gebruiken voor de esp32 maar ik heb een levelshifter toegevoegd om over te gaan van de 5v naar (een voor de esp veiligere ) 3.3V

Maar het blijkft niet te werken: de esp leest alles als hoog, ook als de connectie (SV5) niet is gesloten.
Als ik meet dan zit er ca 2.5V tussen bv HV1 en de bijhorende GND?

De print is gemaakt om zowel te kunnen werken met een esp32 als een esp8266 (maar 1 kan ingeplugd worden)

In het programma worden alle pinnen als input gedefinieerd (dus de interne pullup zou niet mogen aanliggen)

Heeft er iemand een idee wat ik zou misdoen?
Het schema dat ik gebruik Afbeeldingslocatie: https://tweakers.net/i/fkWpjqb5TfzZt4hPQOxU2X1ntD4=/800x/filters:strip_icc():strip_exif()/f/image/ncDL056jqRaIcVlHgAhO8JAG.jpg?f=fotoalbum_large

Ter info de levelshifter
Afbeeldingslocatie: https://static.cytron.io/image/cache/catalog/products/BB-4C-LSHIFT/BB-4C-LSHIFT-a-800x800.jpg


EDIT:
kan het iets te maken hebben met de pull-up die in de levelshifter zitten cfr hier omschreven?
Afbeeldingslocatie: https://europe1.discourse-cdn.com/arduino/optimized/4X/3/c/2/3c2f87f3478dcdabb98144c5b8ca321a4d48664c_2_527x500.png
Ik had al eens de waarde van m'n 10K weerstand verlaagd naar 8.2K maar weinig verschil.
De 10k weglaten, en bij gesloten contact naar de gnd ipv +5v verbinden zou een oplossing kunenn zijn als ik de logica in het programma omdraai, maar dat staat minder mooi op m'n printje :)
Weet er iemand een andere oplossing?

[ Voor 30% gewijzigd door Promy op 22-05-2024 22:29 ]

Alle reacties


Acties:
  • +1 Henk 'm!

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

Septillion

Moderator Wonen & Mobiliteit
Mij is vooral onduidelijk wat je nu precies uitleest. Kan je ook tekenen hoe dat zit met het relais en de weerstanden? Het zal daar mee staan of vallen.

Overigens is die hele level shifter gebaseerd op dat de bron moet kunnen sinken (naar GND trekken). Als deze alleen sourced doet deze schakeling het niet.

Maar voor simpele hoge spanning signalen naar 3v3 is niets makkelijker dan gewoon een spanningsdeler :)

Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 22:25
@Septillion alvast een snelle reactie: op sv7 heb ik volgende zitten:
- op pin 1 en 2: magneetvontact
- op pin 3 en 4: magneetcontact
- op pin 5 en 6: relais ( dus ook gewoon uitlezen als open /dicht)
Maar als ik je reactie lees dan kan de schakeling inderdaad onvoldoende stinken.
PS ik had deze levelshifter nog liggen en hij werkte zonder probleem voor de afstandsmeters die op de andere zitten...
Dus als oplossing ofwel de levelshifter vervangen door spanningsveld of de logica omdraaien (20k weerstand weghalen en naar gnd trekken bij contact ipv naar 5v)

Acties:
  • +1 Henk 'm!

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

Septillion

Moderator Wonen & Mobiliteit
Maar wat bedoel je met "magneetcontact" of "relais"?

Is dat een droog contact van een extern relais? Of juist een spanningsuitgang van iets extern? Je huidige termen bedoelen technisch gezien namelijk niets (eenduidig).

Acties:
  • +2 Henk 'm!

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 19:40

SA007

Moderator Tweaking
Waarom hang je de 5v input niet aan 3.3v? Waarom met een levelshifter?

En dit type level shifter vereist dat de kanten actief naar ground getrokken worden, je hebt nu een 10k pulldown, dat is evenveel als de pullup die de shifter heeft dus komt er 2.5V uit.

Je kan de 10k pulldown veranderen door 1k, dan zal het waarschijnlijk wel werken, maar zie niet in waarom je een levelshifter zou gebruiken.

Acties:
  • +1 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 22:54

memphis

48k was toen meer dan genoeg.

Ik zie dat het schema bij de optocoupler ook nog niet is aangepast.
24V AC detectoren van schuifpoort arduino/esp32

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 22:25
@Septillion
Sorry voor de onduidelijkheid: ik bedoel echt gewoon een reedcontact dat met een magneetje wordt geactiveerd. (zoiets)
Het relais is effectief de NO en C van een relais die geactiveerd wordt door het signaal van de lamp.

@SA007 : ik kon inderdaad ook 3.3V gebruikt hebben, maar gelet op de iets grotere afstand (ca 5m) tussen de print en de magneetcontacten (en het feit dat het nu werkt op 5v) had ik de voorkeur voor 5V (en het feit dat ik de levelshifters in de shuif liggen had ;) )

@memphis klopt, moet ik nog aanpassen, tnx!

De conclusie is dat ik beter die levelshifter eraf haal en ofwel een simpele spanningsdeler ertussen zet of even test op 3.3v

Acties:
  • +1 Henk 'm!

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

Septillion

Moderator Wonen & Mobiliteit
De meest gangbare methode is iets als een schakelaar, droge relais contacten (NC en C) of een reedcontact om deze tussen GND en een pin te hangen. En dan een pull up weerstand gebruiken. Voor wat grotere afstand verlaag je de pull-weerstand. En zorg je in software voor goede debounce / filtering :) Op zich kan je het ook rustig uitvoeren met een pull-down en schakelen naar Vcc.

De 5V alleen doet helemaal niets voor de stabiliteit over afstand. Dat is de afscherming en de impedantie van de lijn.

De hele methode met een levelshifter is dus nodeloos complex zonder dat je dit dus ook meer een voordeel geeft. Beste is dus niet om naar een spanningsdeler te gaan maar gewoon direct aan de 3v3. Of je dit nu met een pull up of down (respectievelijk active low en active high) maakt is dan aan jouw. En voor de afstand kan je dan beter gewoon de 10k die je nu als pull gebruikt vervangen door een 1k ofzo.

Acties:
  • +1 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
De 5V alleen doet helemaal niets voor de stabiliteit over afstand. Dat is de afscherming en de impedantie van de lijn.
Nou ja, technisch gezien wordt je signaal sterker, dus kan je meer storing hebben. Al blijft het wel een stuk makkelijker gewoon de weerstand wat lager te maken als je echt druk maakt over storing, en/of filtering. Dus eens met de conclusie, met 5V maak je het alleen nodeloos complex: Je hebt één weerstand nodig en je bent klaar met hele circuit.

Acties:
  • +1 Henk 'm!

  • memphis
  • Registratie: Oktober 2000
  • Laatst online: 22:54

memphis

48k was toen meer dan genoeg.

Waarom schakel je naar de +5v?

Als je naar massa schakelt kan je in de processor de pull up activeren of anders bij de processor een pull up plaatsen

Er zijn mensen die mij een GOD vinden


Acties:
  • 0 Henk 'm!

  • Promy
  • Registratie: Oktober 2002
  • Laatst online: 22:25
Bedankt voor alle reacties, ik ga het inderdaad aanpassen naar 3v3.
@memphis geen echte reden om naar vcc ipv gnd te schakelen eigenlijk, ooit m'n eerste schakelaar zo voorzien en eigenlijk altijd aangehouden :X
Pagina: 1