Arduino-opdrachten/LED-1

Uit basis
< Arduino-opdrachten
Versie door Eelco (overleg | bijdragen) op 10 apr 2017 om 09:16 (→‎Inleiding)
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen
Arduino opdrachten

Zie ook Regels en richtlijnen
Zie ook Artikelen bewerken

LED-1

Leerdoelen LED, weerstand, breadboard, schema
Voorkennis LED-0, spanning en stroom
Onderdelen

LED, weerstand 220 ohm (rood-rood-bruin-goud), weerstand 10K ohm (bruin-zwart-oranje-goud),

Libraries en functies setup, loop, digitalWrite, delay

Inleiding

Blink-1 schets

Je laat een LED (lampje) op een breadboard knipperen - en jij bepaalt het tempo.

Het programma in de Arduino herhaalt steeds dezelfde opdrachten (zoals je ziet in het blokjes-programma): zet de LED aan; wacht 1 seconde; zet de LED uit; wacht 1 seconde. De LED blijft steeds aan totdat je deze uitzet, en omgekeerd. Door de wachttijd te veranderen kun je de LED in een ander tempo laten knipperen.


Hiervoor bouw je eerst de schakeling met de LED op het breadboard.

Vervolgens open je het programma in de Arduino programmeeromgeving (IDE). Je vertaalt het programma, en stuurt het naar de Arduino ("upload").

Het programma op de Arduino start zodra dit geladen is.

Je kunt dan experimenteren door het programma te veranderen en opnieuw naar de Arduino te sturen.

Opbouwen van de schakeling

LED aan Arduino pin 13

Bouw eerst de schakeling met de LED op het breadboard.

Verwijder eerst de voeding/USB-kabel van de Arduino: verander de hardware-bedrading alleen als er geen spanning op de schakeling staat.

  1. plaats een LED in twee opeenvolgende kolommen in het breadboard, met de kathode van de LED in de linkerkolom. (De kathode is de negatieve aansluiting, deze herken je aan het kortste pootje en/of aan de platte kant op de behuizing. De positieve aansluiting heet de anode.)
  2. plaats een weerstand van 220 Ohm (rood-rood-bruin-goud) van de kolom met de kathode van de LED naar de 0V-rij (of min-rij)van het breadboard.
  3. plaats een (gele) draad van de kolom met de anode van de LED naar pin 13 op het Arduino-bord.
  4. plaats een (zwarte) draad van de 0V-rij van het breadboard naar pin GND van het Arduino-bord.

Nu kun je de voeding (USB-kabel) weer aansluiten op de Arduino.

Testen

Je kunt controleren of je de schakeling goed gebouwd hebt door de (gele) draad los te halen van pin 13, en te verbinden met pin 5V van de Arduino (onderaan, bij "POWER"). De LED moet dan branden. Als dit klopt, verplaats je de draad weer naar pin 13.

Uitleg van het schema

LED aan Arduino pin 13 (brandt als pin HIGH is)

Het schema hiernaast geeft de schakeling weer die je net opgebouwd hebt. Je ziet een verbinding van pin D13 van de Arduino naar de anode van de LED. De kathode van de LED is verbonden met de weerstand. Deze weerstand is weer verbonden met de 0V van de Arduino.

De LED en de weerstand staan in serie: de stroom door de LED is gelijk aan de stroom door de weerstand. De weerstand zorgt ervoor dat de stroom door de LED en door pin D13 niet te groot wordt: anders zou de Arduino en/of de LED kunnen doorbranden.

Een LED (light-emitting diode) laat de stroom maar in één richting door: dit zie je aan de pijl in het symbool van de LED. Als je de LED omdraait, laat deze geen stroom door, en geeft deze geen licht.

Programma

void setup() {
  pinMode(13, OUTPUT);   // LED on pin 13
}

void loop() {
  digitalWrite(13, HIGH); // LED on
  delay(1000);            // wait a second
  digitalWrite(13, LOW);  // LED off
  delay(1000);            // wait a second
}

Uitleg van het programma

Als je de Arduino opstart, voert deze de setup-functie eenmaal uit. In setup geef je bijvoorbeeld aan hoe je de pinnen van de Arduino gebruikt. Hier stellen we pin 13 in als een OUTPUT-pin.

De Arduino herhaalt daarna de loop-functie steeds totdat je de Arduino uitzet of herstart.

Door de waarde HIGH te schrijven naar pin 13 krijgt de hardware-pin een spanning van 5V, waardoor de LED gaat branden. Deze waarde blijft staan totdat je deze overschrijft.

Na 1000msec (1 sec) wordt de waarde LOW naar pin 13 geschreven waardoor de hardware-pin een spanning van 0V krijgt: de LED gaat uit.

Na weer 1000msec wachten begint loop weer opnieuw.

Periodiek signaal: periode, frequentie

Tijdsdiagram van een periodiek signaal

Op deze manier krijgen we een periodiek signaal: hetzelfde signaal (1 sec aan/1 sec uit) herhaalt zich elke 2 seconden. We noemen dit de periode van het periodieke signaal. Dit periodieke signaal herhaalt zich 0,5 maal per seconde. Dit noemen we de frequentie. Voor frequentie en periode geldt: en .

In dit voorbeeld zijn de "aan" en "uit"-tijden gelijk. We hebben te maken met een symmetrisch signaal. Dat hoeft niet: bij een periodiek signaal ziet elke periode er hetzelfde uit, maar binnen een periode kan het signaal willekeurig zijn.

Vragen en opdrachten

Eerste experimenten

Gebruik de volgende stappen bij het uitvoeren van een experiment:

  1. Beschrijf eerst wat je verwacht dat er gebeurt: wat zie je als je het experiment uitvoert, en waarom?
  2. Voer dan het experiment uit, en beschrijf wat je ziet.
  3. Verklaar eventueel deze uitkomst (als deze verschilt van je verwachting).

Software-experimenten

1. Periode en frequentie
  1. verander de periode van 2 sec. naar 0,2 sec; wat is de frequentie?
  2. verander de periode van 2 sec. naar 0,02 sec; wat is de frequentie?
2. Hoe snel zijn je ogen?
  1. zoek experimenteel uit bij welke frequentie je nog net kunt zien dat de LED knippert.
  2. zoek uit wat de beeldfrequentie is bij (i) film; (ii) televisie
3. Andere verhoudingen tussen aan en uit

Verander de verhouding tussen de "aan"-tijd en de "uit"-tijd, bijvoorbeeld 25% aan en 75% uit.

  1. voor een lage frequentie (bijv. 2 Hz)
  2. voor een hoge frequentie (bijv. 100 Hz)
  3. opdracht: teken het tijdsdiagram van het signaal

Hardware-experimenten

  1. draai de LED om
  2. vervang de weerstand van 220 Ohm door een weerstand van 10kOhm
  3. wissel de LED en de weerstand om
  4. verbind de gele daar van de LED met pin 9 (in plaats van met pin 13). Hoe moet je nu je programma aanpassen?

Verdiepingsvragen

Hoe verder?

  • Je kunt meerdere LEDs aansluiten: LED-2
  • Je kunt andere soorten LEDs aansluiten (RGB; IR): RGB-Serial
  • Je kunt de LED dimmen, door deze op een niet-symmetrische manier te laten knipperen (PWM): LED-sweep
  • Je kunt de LED aan- en uitzetten met een schakelaar: Button-0