ESP32 Deurbel - Optocoupler

Hallo, ik ben net nieuw hier op dit forum en een relatieve nieuweling wat betreft elektronica schakelingen. Ik was bezig het schema van elektor-magazine na te bouwen en te programmeren nl een elektronisch deurbel. Specificiek om het gegeven: er gebeurt iets en er komt een melding op mijn mobiel wat ik voor meer dingen wil gebruiken.

De schakeling opbouwen en het programmeren ging prima maar functioneel ging het mis. Bij het aansluiten kreeg ik continue telegrammeldingen dat de deurbel zo gauw de wisselspanning weg is blijft het geheel in rust.
Als er op K1 een wisselspanning staat moet er een logische ‘0’ op pin GPIO17 komen zo gauw de wisselspanning weg valt wordt dat een ‘1’. Ik heb het omkaderde schema op een breadboard nagebouwd en wat me opvalt is dat de optocoupler FOD814A bij iedere AC nul doorgang een ‘1’ zet op GPIO17. (zie scoop output). Nou heb ik de schakelingen van Elektor hoog zitten dus ik neem aan dat ik toch iets mis heb gedaan, wie kan me op de goede weg zetten?

Groeten Gaston

Referentie
https://www.elektormagazine.com/magazine/elektor-141/57146

fzwart

Golden Member

Je moet dan ook in serie met de AC spanning de deurbelknop zetten.
Nu lijkt het alsof de deurbelknop continu ingedrukt word dus krijg je continu berichten.

Al is een spreekwoord nog zo raar, als het rijmt dan is 't waar

Condensator van 10uF over de uitgang van de opto zou voldoende moeten zijn om het geheel af te vlakken zodat je niet bij elke nul doorgang een puls op je IO pin krijgt.
C dus tussen de GND en GPIO17.

@fzwart De deurbel zit in serie, maar gaf meerdere meldingen bij kortondig (normaal) indrukken, vandaar de meting waar het idd continue is.

Die condensator ga ik proberen, bedankt.

Lambiek

Special Member

Op 27 februari 2021 11:21:59 schreef GMath:
Hallo, ik ben net nieuw hier op dit forum en een relatieve nieuweling wat betreft elektronica schakelingen.

Ten eerste welkom.

Ik heb het omkaderde schema op een breadboard nagebouwd en wat me opvalt is dat de optocoupler FOD814A bij iedere AC nul doorgang een ‘1’ zet op GPIO17.

Dat kan heel goed, ligt helemaal aan de software hoe het reageert. Als je op de beldrukker drukt kan een pulsje op de ingang van je controller al genoeg zijn om het programma af te werken.

Dus zonder dat wij het programma zien is er weinig van te zeggen.

Nou heb ik de schakelingen van Elektor hoog zitten.....

Ik iets minder. :)

ik neem aan dat ik toch iets mis heb gedaan, wie kan me op de goede weg zetten?

Zoals ik al zei, kan ook heel goed aan de software liggen.

Als je haar maar goed zit, GROETEN LAMBIEK.
hennep

Golden Member

Je kunt ook een vertraging in de software inbouwen

code:

    if( ring ) {
        ring = false; // VERPLAATSEN NAAR ONDER EN DELAY TOEVOEGEN

        m5.lcd.print( "Ring" );
        while( digitalRead( keyPin ) ); //wait until button released
        bot.sendMessage( ThisChat, "Doorbell!", "" );
        String keyboardJson = "[[\"/Open\", \"/Ignore\"]]";
        bot.sendMessageWithReplyKeyboard( ThisChat, "Choose one of the following options", "", keyboardJson, true, true );
    }

veranderen in:

code:


    if( ring ) {
        m5.lcd.print( "Ring" );
        while( digitalRead( keyPin ) ); //wait until button released
        bot.sendMessage( ThisChat, "Doorbell!", "" );
        String keyboardJson = "[[\"/Open\", \"/Ignore\"]]";
        bot.sendMessageWithReplyKeyboard( ThisChat, "Choose one of the following options", "", keyboardJson, true, true );

        delay(2000); // niet vaker dan eens per 2 seconden (2000ms) bellen
        ring = false;
    }
marcob

Golden Member

Ik hetzelfde gehad, alleen ander schema. De AC spanning van de beldrukker werd gezien als meerdere keren beldrukken (10 tallen keer)
Zoals Hennep al aangeeft, vertraging in de software toevoegen is de oplossing.

Een WOK is ook maar een vergiet zonder gaatjes

Bedankt voor jullie reacties. Ik heb zowel een condensator toegevoegd als een delay toegevoegd. Het delay was uiteindelijk wel voldoende, maar ik zag dat de condensator het geheel netjes afvlakte en zodoende een stabiel nul signaal produceerde. Aangezien ik met deze schakeling verder ga experimenteren leek me dat sowieso niet slecht, vandaar.

@Lambiek
Het programma is precies zoals beschreven in het Elektor artikel.

Nogmaals dank, problem solved.