Arduino cursus/Dag 1: verschil tussen versies
(17 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
{{Zijbalk Arduino cursus}} | |||
== Doel van de cursus == | |||
Voor VO-docenten, TOA’s - die meer met de Arduino en “physical computing” willen doen. | |||
Doel: beheersen van Arduino als “bouwdoos”: kennis en vaardigheid in gebruik van Arduino & bijbehorende physical computing componenten, | |||
en in combineren daarvan tot eigen project. | |||
Daarnaast: aandacht voor: Arduino-activiteiten voor leerlingen | |||
=== Presentatie === | |||
* https://infvo.nl/presentaties/Arduino-cursus-2017-18-1.pdf | |||
== Cheat sheets en tutorials == | |||
De onderstaande cheatsheets geven een samenvatting van veel relevant materiaal: | |||
* [http://pighixxx.com/unov3pdf.pdf Arduino pinout diagram] | |||
* [https://github.com/liffiton/Arduino-Cheat-Sheet/blob/master/Arduino%20Cheat%20Sheet.pdf Arduino programmeertaal cheat sheet] | |||
* onderdelen: https://infvo.nl/basis/index.php/Arduino-cheatsheet/Onderdelen | |||
* basisschakelingen: http://www.pighixxx.com/test/abc/ (een reeks cheat sheets) | |||
Basiskennis: | |||
* breadboard: https://learn.sparkfun.com/tutorials/how-to-use-a-breadboard | |||
* elektriciteit: spanning, stroom, geleider, weerstand: https://learn.sparkfun.com/tutorials/voltage-current-resistance-and-ohms-law | |||
* | |||
Tutorials: | |||
* Tutorials via de Arduino website: https://www.arduino.cc/en/Tutorial/HomePage | |||
* Adafruit Arduino tutorials: https://learn.adafruit.com/lesson-0-getting-started | |||
Nog meer informatie op het web: https://infvo.nl/lab/index.php/Arduino/Informatie_op_het_web | |||
== Basis-bouwstenen == | == Basis-bouwstenen == | ||
=== Electronica === | |||
Bij deze opdrachten maak je een schakeling op een breadboard. Je gebruikt de Arduino alleen als voeding, niet om de schakeling te besturen. | |||
: In plaats van de Arduino kun je ook een batterij als voeding gebruiken. | |||
{| class="wikitable" | {| class="wikitable" | ||
Regel 8: | Regel 45: | ||
|- | |- | ||
| breadboard; LED; weerstand | | breadboard; LED; weerstand | ||
| [[../LED-0]] | | [[../Led-0]] | ||
|- | |||
| push button als schakelaar voor LED | |||
| [[../Button-0]] | |||
|- | |||
| analoog uit (PWM) | |||
| | |||
|- | |||
| analoog in (A/D) | |||
| | |||
|} | |||
=== Arduino basisschakelingen === | |||
{| class="wikitable" | |||
! bouwsteen !! opdracht(en) | |||
|- | |- | ||
| digitaal uit | | digitaal uit | ||
| | | [[../Blink-1]] | ||
|- | |- | ||
| digitaal in | | digitaal in | ||
| | | [[../Button-1]] | ||
|- | |- | ||
| analoog uit (PWM) | | analoog uit (PWM) | ||
Regel 36: | Regel 88: | ||
| Blink, Analoge input | | Blink, Analoge input | ||
|- | |- | ||
| | | geluid | ||
| | | [[../Tone-freq]] | ||
| | | Blink-freq | ||
|- | |- | ||
| Omkeren van stroomrichting | | Omkeren van stroomrichting | ||
Regel 47: | Regel 99: | ||
== Libraries; "bus" en adressering == | == Libraries; "bus" en adressering == | ||
Voor veel onderdelen heb je libraries nodig. De onderstaande opdrachten geven daarvan enkele voorbeelden. | Voor veel onderdelen heb je libraries nodig. De onderstaande opdrachten geven daarvan enkele voorbeelden. Hiermee leer je ook hoe je een library toevoegt aan de Arduino IDE. | ||
Als je veel onderdelen moet aansluiten op een Arduino, heb je al snel te weinig pinnen. Een oplossing daarvoor is om één of twee pinnen te gebruiken voor een "bus" waarop je meerdere onderdelen kunt aansluiten. In dat geval moet je de verschillende onderdelen kunnen adresseren. We geven hiervan twee voorbeelden: | Als je veel onderdelen moet aansluiten op een Arduino, heb je al snel te weinig pinnen. Een oplossing daarvoor is om één of twee pinnen te gebruiken voor een "bus" waarop je meerdere onderdelen kunt aansluiten. In dat geval moet je de verschillende onderdelen kunnen adresseren. We geven hiervan twee voorbeelden: | ||
Regel 55: | Regel 107: | ||
{| class="wikitable" | {| class="wikitable" | ||
! bouwsteen !! opdracht(en) || library || voorkennis | ! bouwsteen !! opdracht(en) || library || voorkennis | ||
|- | |- | ||
| digitale LEDs <br> NeoPixel <br> WS2812 | | digitale LEDs <br> NeoPixel <br> WS2812 | ||
Regel 72: | Regel 120: | ||
| digitale LEDs <br> opdracht | | digitale LEDs <br> opdracht | ||
| [[../Led-4]] | | [[../Led-4]] | ||
| | |||
| | |||
|- | |||
| | |||
| | | | ||
| | | | ||
Regel 86: | Regel 138: | ||
|- | |- | ||
| i2c display | | i2c display | ||
| | | Bestand->Voorbeelden->LiquidCrystal I2C->HelloWorld | ||
| LiquidCrystal I2C (Frank den Brabander) | | LiquidCrystal I2C (Frank den Brabander) | ||
| | | | ||
Regel 92: | Regel 144: | ||
== Besturing en bekrachtiging ("power") == | == Besturing en bekrachtiging ("power") == | ||
Een Arduino kan maar weinig stroom leveren: per output-pin maximaal 40mA, typisch 20mA. Modernere microcontrollers leveren per pin nog minder stroom en spanning, typisch 5mA bij 3.3V. Dat is veel te weinig om een motor te laten draaien, of om LEDs fel te laten branden. De oplossing hiervoor is om de besturing (vanuit de Arduino) en de bekrachtiging te scheiden: voor dit laatste gebruik je dan een externe voeding die voldoende vermogen kan leveren. Vanuit de Arduino bestuur je dan een schakelaar die deze externe voeding aan- en uitschakelt: dat kan een relais zijn, maar ook een transistor (MosFET). In een motor-driver zitten deze schakelaars al ingebouwd. | |||
{| class="wikitable" | {| class="wikitable" | ||
Regel 97: | Regel 151: | ||
|- | |- | ||
| Servo-motor, als ''slave'' van potmeter | | Servo-motor, als ''slave'' van potmeter | ||
| Servo-0 | | [[../Servo-0]] | ||
| Analoge input (potmeter) | | Analoge input (potmeter) | ||
|- | |- | ||
| "power" voeding <br> extra voeding voor bekrachtiging | | "power" voeding <br> extra voeding voor bekrachtiging | ||
| Servo-1 (met "power" voeding) | | [[../Servo-1]] (met "power" voeding) | ||
| Servo-0 | | Servo-0 | ||
|- | |- | ||
| Transistor (MosFET) als bestuurbare schakelaar | | Transistor (MosFET) als bestuurbare schakelaar | ||
| Motor-0 (met MosFET en "power" voeding) | | [[../Motor-0]] (met MosFET en "power" voeding) | ||
| Analoge input (potmeter); PWM | | Analoge input (potmeter); PWM | ||
|- | |- | ||
| Motor-driver IC met regelbare richting en snelheid | | Motor-driver IC met regelbare richting en snelheid | ||
| Motor-1 <br> https://learn.adafruit.com/adafruit-arduino-lesson-15-dc-motor-reversing | | [[../Motor-1]] <br> https://learn.adafruit.com/adafruit-arduino-lesson-15-dc-motor-reversing | ||
| Servo-1; PWM; LED-3 (omkeren van stroomrichting) | | Servo-1; PWM; LED-3 (omkeren van stroomrichting) | ||
|- | |- | ||
Regel 120: | Regel 174: | ||
| | | | ||
|} | |} | ||
== Huiswerk, opstap naar de volgende bijeenkomst == | |||
Het huiswerk voor de volgende bijeenkomst bestaat uit de bovenstaande opdrachten, voor zover je die nog niet op de bijeenkomst zelf gemaakt hebt; en de onderstaande opdrachten, als opstap voor de volgende bijeenkomst: | |||
* [[../double-blink]] | |||
* [[../verkeerslicht-0]] |
Huidige versie van 18 okt 2017 om 09:48
Doel van de cursus
Voor VO-docenten, TOA’s - die meer met de Arduino en “physical computing” willen doen.
Doel: beheersen van Arduino als “bouwdoos”: kennis en vaardigheid in gebruik van Arduino & bijbehorende physical computing componenten, en in combineren daarvan tot eigen project.
Daarnaast: aandacht voor: Arduino-activiteiten voor leerlingen
Presentatie
Cheat sheets en tutorials
De onderstaande cheatsheets geven een samenvatting van veel relevant materiaal:
- Arduino pinout diagram
- Arduino programmeertaal cheat sheet
- onderdelen: https://infvo.nl/basis/index.php/Arduino-cheatsheet/Onderdelen
- basisschakelingen: http://www.pighixxx.com/test/abc/ (een reeks cheat sheets)
Basiskennis:
- breadboard: https://learn.sparkfun.com/tutorials/how-to-use-a-breadboard
- elektriciteit: spanning, stroom, geleider, weerstand: https://learn.sparkfun.com/tutorials/voltage-current-resistance-and-ohms-law
Tutorials:
- Tutorials via de Arduino website: https://www.arduino.cc/en/Tutorial/HomePage
- Adafruit Arduino tutorials: https://learn.adafruit.com/lesson-0-getting-started
Nog meer informatie op het web: https://infvo.nl/lab/index.php/Arduino/Informatie_op_het_web
Basis-bouwstenen
Electronica
Bij deze opdrachten maak je een schakeling op een breadboard. Je gebruikt de Arduino alleen als voeding, niet om de schakeling te besturen.
- In plaats van de Arduino kun je ook een batterij als voeding gebruiken.
bouwsteen | opdracht(en) |
---|---|
breadboard; LED; weerstand | Arduino cursus/Led-0 |
push button als schakelaar voor LED | Arduino cursus/Button-0 |
analoog uit (PWM) | |
analoog in (A/D) |
Arduino basisschakelingen
bouwsteen | opdracht(en) |
---|---|
digitaal uit | Arduino cursus/Blink-1 |
digitaal in | Arduino cursus/Button-1 |
analoog uit (PWM) | |
analoog in (A/D) |
Volgorde en tijd
bouwsteen/concept | opdracht(en) | voorkennis |
---|---|---|
Periode en frequentie | Arduino cursus/Blink-freq | Blink, Analoge input |
PWM, duty cycle | Arduino cursus/Blink-PWM | Blink, Analoge input |
geluid | Arduino cursus/Tone-freq | Blink-freq |
Omkeren van stroomrichting | Arduino cursus/Led-3 | LED-0, Blink |
Libraries; "bus" en adressering
Voor veel onderdelen heb je libraries nodig. De onderstaande opdrachten geven daarvan enkele voorbeelden. Hiermee leer je ook hoe je een library toevoegt aan de Arduino IDE.
Als je veel onderdelen moet aansluiten op een Arduino, heb je al snel te weinig pinnen. Een oplossing daarvoor is om één of twee pinnen te gebruiken voor een "bus" waarop je meerdere onderdelen kunt aansluiten. In dat geval moet je de verschillende onderdelen kunnen adresseren. We geven hiervan twee voorbeelden:
- een i2c-bus met een LCD-display
- een 1-draads bus met "digitale LEDs".
bouwsteen | opdracht(en) | library | voorkennis |
---|---|---|---|
digitale LEDs NeoPixel WS2812 |
https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library (bekijken) Arduino cursus/Digitale Leds |
Adafruit_NeoPixel
|
|
digitale LEDs demo |
Bestand->Voorbeelden->Adafruit Neopixel->strandtest | ||
digitale LEDs opdracht |
Arduino cursus/Led-4 | ||
i2c library | Arduino cursus/i2c (lezen) | https://www.arduino.cc/en/Reference/Wire | |
i2c scanner | https://playground.arduino.cc/Main/I2cScanner | Wire
|
|
i2c display | Bestand->Voorbeelden->LiquidCrystal I2C->HelloWorld | LiquidCrystal I2C (Frank den Brabander) |
Besturing en bekrachtiging ("power")
Een Arduino kan maar weinig stroom leveren: per output-pin maximaal 40mA, typisch 20mA. Modernere microcontrollers leveren per pin nog minder stroom en spanning, typisch 5mA bij 3.3V. Dat is veel te weinig om een motor te laten draaien, of om LEDs fel te laten branden. De oplossing hiervoor is om de besturing (vanuit de Arduino) en de bekrachtiging te scheiden: voor dit laatste gebruik je dan een externe voeding die voldoende vermogen kan leveren. Vanuit de Arduino bestuur je dan een schakelaar die deze externe voeding aan- en uitschakelt: dat kan een relais zijn, maar ook een transistor (MosFET). In een motor-driver zitten deze schakelaars al ingebouwd.
concept(en) | opdracht(en) | voorkennis |
---|---|---|
Servo-motor, als slave van potmeter | Arduino cursus/Servo-0 | Analoge input (potmeter) |
"power" voeding extra voeding voor bekrachtiging |
Arduino cursus/Servo-1 (met "power" voeding) | Servo-0 |
Transistor (MosFET) als bestuurbare schakelaar | Arduino cursus/Motor-0 (met MosFET en "power" voeding) | Analoge input (potmeter); PWM |
Motor-driver IC met regelbare richting en snelheid | Arduino cursus/Motor-1 https://learn.adafruit.com/adafruit-arduino-lesson-15-dc-motor-reversing |
Servo-1; PWM; LED-3 (omkeren van stroomrichting) |
volledig gescheiden voedingen | relais | |
stappenmotor | Arduino cursus/Stepper-0 |
Huiswerk, opstap naar de volgende bijeenkomst
Het huiswerk voor de volgende bijeenkomst bestaat uit de bovenstaande opdrachten, voor zover je die nog niet op de bijeenkomst zelf gemaakt hebt; en de onderstaande opdrachten, als opstap voor de volgende bijeenkomst: