<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="nl">
	<id>https://infvo.nl/basis/index.php?action=history&amp;feed=atom&amp;title=Arduino-opdrachten%2FButton-2</id>
	<title>Arduino-opdrachten/Button-2 - Bewerkingsoverzicht</title>
	<link rel="self" type="application/atom+xml" href="https://infvo.nl/basis/index.php?action=history&amp;feed=atom&amp;title=Arduino-opdrachten%2FButton-2"/>
	<link rel="alternate" type="text/html" href="https://infvo.nl/basis/index.php?title=Arduino-opdrachten/Button-2&amp;action=history"/>
	<updated>2026-04-26T03:24:18Z</updated>
	<subtitle>Bewerkingsoverzicht voor deze pagina op de wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://infvo.nl/basis/index.php?title=Arduino-opdrachten/Button-2&amp;diff=564&amp;oldid=prev</id>
		<title>Eelco: Nieuwe pagina aangemaakt met &#039;{{Zijbalk Arduino-opdrachten}}  == Button-2 ==  {{Leerdoelen|drukknopschakelaar, pulldown weerstand}} {{Voorkennis|Blink-1, Arduino...&#039;</title>
		<link rel="alternate" type="text/html" href="https://infvo.nl/basis/index.php?title=Arduino-opdrachten/Button-2&amp;diff=564&amp;oldid=prev"/>
		<updated>2016-05-24T09:13:46Z</updated>

		<summary type="html">&lt;p&gt;Nieuwe pagina aangemaakt met &amp;#039;{{Zijbalk Arduino-opdrachten}}  == Button-2 ==  {{Leerdoelen|drukknopschakelaar, pulldown weerstand}} {{Voorkennis|&lt;a href=&quot;/basis/index.php?title=Arduino-opdrachten/Blink-1&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Arduino-opdrachten/Blink-1 (de pagina bestaat niet)&quot;&gt;Blink-1&lt;/a&gt;, Arduino...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nieuwe pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Zijbalk Arduino-opdrachten}}&lt;br /&gt;
&lt;br /&gt;
== Button-2 ==&lt;br /&gt;
&lt;br /&gt;
{{Leerdoelen|drukknopschakelaar, pulldown weerstand}}&lt;br /&gt;
{{Voorkennis|[[Arduino-opdrachten/Blink-1|Blink-1]], [[Arduino-opdrachten/Button-0|Button-0]]}}&lt;br /&gt;
{{Onderdelen| &lt;br /&gt;
[[Arduino/LED|LED]], &lt;br /&gt;
[[Arduino/Weerstand|weerstand]] 220 ohm (rood-rood-bruin-goud),&lt;br /&gt;
[[Arduino/Weerstand|weerstand]] 10K ohm (bruin-zwart-oranje-goud),&lt;br /&gt;
[[Arduino/Schakelaar|drukknopschakelaar]] x 2 &lt;br /&gt;
}}&lt;br /&gt;
{{Libraries en functies|&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Inleiding ==&lt;br /&gt;
[[Bestand:Button2-schets.png|thumb|right|250px|2 schakelaars: LED aan en uit]]&lt;br /&gt;
&lt;br /&gt;
Door twee knoppen te gebruiken: één voor het aanzetten en één voor het uitzetten van de LED, krijgen we een eenvoudig programma. Deze opzet heeft ook nog als voordeel dat het niet uitmaakt hoe vaak of hoe lang je een knop indrukt.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Als je een knop vaker achtereen indrukt, heeft dat hetzelfde resultaat als wanneer je de knop éénmaal indrukt. Dit gedrag noemen we wel &amp;#039;&amp;#039;idempotent&amp;#039;&amp;#039;. Een ander voorbeeld hiervan is het laden van een webpagina in een browser: als je een pagina meerdere malen achtereen laadt, krijg je (in principe) steeds hetzelfde resultaat. Het opsturen van een formulier vanuit de browser is niet idempotent: de browser vraagt dan ook of je zeker weet dat je dat wilt.&lt;br /&gt;
&lt;br /&gt;
== Opbouwen van de schakeling ==&lt;br /&gt;
[[Bestand:Button2_bb.png|thumb|right|250px|2 schakelaars: LED aan en uit]]&lt;br /&gt;
&lt;br /&gt;
Begin met de schakeling van Button-1.&lt;br /&gt;
&lt;br /&gt;
Voeg naast de schakelaar nog een tweede toe, op dezelfde manier:&lt;br /&gt;
* plaats een drukknopschakelaar over de middenlijn;&lt;br /&gt;
* plaats een weerstand van 10kOhm tussen de linkerkolom van deze schakelaar en de 0V-rij (pulldown-weerstand);&lt;br /&gt;
* plaats een (gele) draad tussen de linkerkolom van deze schakelaar en pin 3 van de Arduino;&lt;br /&gt;
* verbind de rechterkolom van deze schakelaar met de 5V rij.&lt;br /&gt;
&lt;br /&gt;
=== Testen ===&lt;br /&gt;
&lt;br /&gt;
Je kunt de werking van een schakelaar testen door een LED te plaatsen tussen de kolommen van deze schakelaar, met de kathode (korte pootje) in de linkerkolom (van de pulldown-weerstand). De LED moet dan direct gaan branden (pulldown-weerstand als serieweerstand). Als je de schakelaar indrukt moet de LED uitgaan.&lt;br /&gt;
&lt;br /&gt;
== Schema ==&lt;br /&gt;
[[Bestand:Button2-schema.png|thumb|right|250px|2 schakelaars: LED aan en uit]]&lt;br /&gt;
&lt;br /&gt;
Het schema is vrijwel gelijk aan dat van Button-1:&lt;br /&gt;
* een schakelaar met pulldown-weerstand verbonden aan pin 2;&lt;br /&gt;
* een schakelaar met pulldown-weerstand verbonden aan pin 3;&lt;br /&gt;
* een LED met serieweerstand verbonden aan pin 13.&lt;br /&gt;
&lt;br /&gt;
== Programma ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
const int onButton = 2;     // pin nr of &amp;quot;on&amp;quot; button&lt;br /&gt;
const int offButton = 3;    // pin nr of &amp;quot;off&amp;quot; button&lt;br /&gt;
const int led =  13;        // pin nr of LED&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  pinMode(led, OUTPUT);      // initialize LED pin as output&lt;br /&gt;
  pinMode(onButton, INPUT);  // initialize button pin as input&lt;br /&gt;
  pinMode(offButton, INPUT); // initialize button pin as input&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  if (digitalRead(onButton) == HIGH) {&lt;br /&gt;
    digitalWrite(led, HIGH);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(offButton) == HIGH) {&lt;br /&gt;
    digitalWrite(led, LOW);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Uitleg van het programma ==&lt;br /&gt;
&lt;br /&gt;
We gebruiken in dit geval de interne pullup-weerstanden van de Arduino. We hoeven dan geen externe weerstanden te gebruiken. Voor het programma betekent dit het volgende:&lt;br /&gt;
# we initialiseren de input-pinnen voor de buttons als input: &amp;lt;code&amp;gt;pinMode(button, INPUT);&amp;lt;/code&amp;gt;.&lt;br /&gt;
# de input-waarde van een button is dan &amp;lt;code&amp;gt;HIGH&amp;lt;/code&amp;gt; als de button ingedrukt is (actief).&lt;br /&gt;
&lt;br /&gt;
We gebruiken 2 buttons:&lt;br /&gt;
# indrukken van &amp;lt;code&amp;gt;onButton&amp;lt;/code&amp;gt; zet de LED uit.&lt;br /&gt;
# indrukken van &amp;lt;code&amp;gt;offButton&amp;lt;/code&amp;gt; zet de LED aan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Merk op dat we in dit geval geen &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt; nodig hebben: het maakt niet uit hoe lang je een knop ingedrukt houdt.&lt;br /&gt;
&lt;br /&gt;
== Vragen en opdrachten ==&lt;br /&gt;
&lt;br /&gt;
=== Eerste experimenten ===&lt;br /&gt;
&lt;br /&gt;
Wat gebeurt er als je beide knoppen ingedrukt houdt?&lt;br /&gt;
* Hint: plaats een &amp;lt;code&amp;gt;delay(100);&amp;lt;/code&amp;gt; aan het eind van elk IF-statement.&lt;br /&gt;
&lt;br /&gt;
=== Verdiepingsvragen ===&lt;br /&gt;
&lt;br /&gt;
== Hoe verder? ==&lt;br /&gt;
&lt;br /&gt;
Deze schakeling kun je gebruiken voor [[Arduino-opdrachten/Button-dimmer]].&lt;/div&gt;</summary>
		<author><name>Eelco</name></author>
	</entry>
</feed>