Hoe maak ik dit ook alweer werkend ?

Hoi,

Het zit in mijn hoofd dat ik een push button kan laten werken met de interne weerstand.

Maar ik ben vergeten hoe ik dan de waarde van de push button kan lezen?
Kan iemand me een hint geven

Project : Wokwi - Online ESP32, STM32, Arduino Simulator

Knop tussen pin en GND (niet Vcc).
Om te configureren
pinMode(thePin, INPUT_PULLUP);

Sorry, ik zie het niet wat je bedoeld nu ?

Wat zie je niet?

bedoel te zeggen dat ik niet zie wat te veranderen.
heb wat geprobeerd, maar dit lijkt niet te werken.
Zie geen verschil in het wel of niet ingedrukt worden van de push button

Ik denk dat de knop verkeerd is aangesloten. Je moet (meestal) kruiselings verbinden.

Links onder van knop naar GND, rechts boven van knop naar Arduino pin.

Ik weet dat je simuleert. Heb je knoppen en een multimeter? Dan kun je controleren.

Verandert maar geen geluk.
Ik denk dat de verbinding verkeerd is om alles te lezen

Het werkt hier

Dit is de json:

{
  "version": 1,
  "author": "Anonymous maker",
  "editor": "wokwi",
  "parts": [
    { "type": "wokwi-breadboard", "id": "bb1", "top": -281.4, "left": -102.8, "attrs": {} },
    { "type": "wokwi-arduino-uno", "id": "uno", "top": 135, "left": -106.2, "attrs": {} },
    {
      "type": "wokwi-pushbutton",
      "id": "btn1",
      "top": -201.7,
      "left": -15.7,
      "rotate": 90,
      "attrs": { "color": "green", "xray": "1" }
    }
  ],
  "connections": [
    [ "bb1:bp.16", "bb1:bp.17", "green", [ "v0" ] ],
    [ "uno:GND.1", "bb1:bn.1", "black", [ "v-48", "h-133.3" ] ],
    [ "btn1:1.l", "bb1:12t.c", "", [ "$bb" ] ],
    [ "btn1:2.l", "bb1:10t.c", "", [ "$bb" ] ],
    [ "btn1:1.r", "bb1:12b.h", "", [ "$bb" ] ],
    [ "btn1:2.r", "bb1:10b.h", "", [ "$bb" ] ],
    [ "uno:7", "bb1:15t.a", "green", [ "v0" ] ],
    [ "btn1:1.l", "bb1:15t.a", "green", [ "v0" ] ],
    [ "bb1:10b.j", "bb1:bn.7", "black", [ "v0" ] ]
  ],
  "dependencies": {}
}

Let op dat ik je Arduino GND aangepast heb; in je wokwi is die niet aangesloten op de knop.

Balen, Ik krijg het niet werkend.

Het werkt met jouw Json.
Maar snap het niet waarom.
IK dacht altijd dat een push button aangesloten moest worden aan 5V.

IK heb deze pagina gevolgd : https://docs.arduino.cc/built-in-examples/digital/Button/
nu kan ik kijken of ik de led kan aan en uitdoen met een druk op de knop.

Kopieer de json die ik hierboven getoond heb en plak die in je wokwi.

image

In geval je daar nog niet uit bent:
De interne pull-up is een weerstand -achtig deel in je Arduino dat het niveau aan de ene kan van de drukknop omhoog trekt, dus pull up.
Door die weerstand wordt het niveau dus HIGH gehouden, tenzij iets anders 'm harder naar LOW trekt.
Jouw drukknop wordt dus aan diens andere kant aan GND oftewel LOW gelegd, en omdat daar geen weerstand tussen zit, zal dat winnen wanneer de drukknop contact maakt.
Je moet dan dus controleren of de ingang (die je met de toevoeging "_PULLUP" hebt gedefinieerd) LOW wordt, want dat betekent dus dat de knop is ingedrukt.
Dat is anders dan de meeste mensen verwachten, namelijk dat iets actief is wanneer het HIGH is.

Wanneer je dat lastig vind en er niet aan kunt wennen, dan kun je overwegen een variabele (bijvoorbeeld met de naam "ingedrukt") te maken die de logica omdraait.
Dus als je dan een LOW leest, zou je dan ingedrukt HIGH maken en andersom.
Maar dat doe je dan wel voor jezelf, want jouw Arduino maalt er helemaal niet om of je het linksom of rechtsom wil benaderen.

Nog iets meer informatie over het aansluiten van een drukknop "aan de plus":
Wanneer je dit doet en de ingang van de Arduino alleen maar aan die drukknop aansluit, dan kan jouw Arduino wel zien wanneer de knop is ingedrukt, want dan is de ingang HIGH.
Maar wanneer de drukknop niet is ingedrukt, dan is de ingang ongedefinieerd.
Dat betekent dat je Arduino dan iets willekeurigs kan binnen krijgen dat dan vertaald kan worden naar zowel LOW als HIGH.
Daarom moet je in dat geval hetzelfde doen met de ingang, maar dan met een weerstand naar GND, zodat deze ingang altijd LOW ziet tenzij deze naar HIGH getrokken wordt.
Dat betekent dus dat jouw schakeling daarvoor meer onderdelen en ruimte daarvoor nodig heeft, en dus ook duurder zal worden.
De Arduino (en ook andere controllers die ik tot nog toe gezien heb) heeft geen mogelijkheid om de ingangen te voorzien van een _PULLDOWN, en daarmee ben je dan dus aangewezen op de _PULLUP met omgekeerde logica, of de extra hardware.

Dank je.

Merk nu meer en meer dat ik handig kan zijn om een electronica opleiding of cursus te hebben gevolgd. Bijvoorbeeld de oude MTS of HTS.

Ik heb een boekhoudkundige opleiding gedaan en nog heel veel te leren op dit gebied.
En dan op mijn 58 jaar.

IK heb de video cursus van McWorther gedaan maar zoals ik al zei, mis ik toch wat achtergrond.
Maar we komen er wel.

Kan iemand me helpen waarom de led niet aan gaat als ik op de button druk.
Project: Wokwi - Online ESP32, STM32, Arduino Simulator

zo te zien zit je led niet aan gnd maar aan 1 gaatje in het breadbord hoger

Zelfde fout als in een eerder ontwerp; LED heeft geen GND.

Dank je

Verandert maar nog steeds geen werkend ledje.

nog een idee ?

een led is richting gevoelig. staat je led niet verkeerd om?
en de code is if (pushRead == 0) Ik zou zelf if (pushRead == LOW) geschreven hebben

Al geprobeerd en het maakt geen verschil.
Ik kan wel zien dat de if then waar ik controleer of de button ingedrukt is werkt,

heb je deel 2 van mijn antwoord gelezen?

en ik zie nergens dat je de ledpin als output hebt gedefinieerd