450 likes | 738 Views
Les 2: Zaterdag 24 mei 2014 Wim Peeters (Wim.Peeters@acm.org). Arduino. Arduino Pin Lay-out. Programma. Installatie Basis Elektronica Uitlezen sensoren Aansturen van externe hardware Aansturen van Servomotoren Oefeningen. Vorige les. Beschrijving van de Arduino
E N D
Les 2: Zaterdag 24 mei 2014 Wim Peeters (Wim.Peeters@acm.org) Arduino
Arduino Arduino Pin Lay-out
Arduino Programma Installatie Basis Elektronica Uitlezen sensoren Aansturen van externe hardware Aansturen van Servomotoren Oefeningen
Arduino Vorige les Beschrijving van de Arduino Installatie Programmeer omgeving Eerste projectjes
Arduino Vandaag Vervolg eerste projectjes
Arduino Even herhalen Spanning: 5V Input spanning 7-12V (mag 6-20V) 40mA per IO pin 50mA voor de 3.3V pin
Arduino Arduino Pin Lay-out
Arduino programmeren Arduino gebruikt machine taal → we schrijven ons programma in een hogere programmeer taal: C → Dit programma of 'sketch' moeten we compileren naar een binaire vorm, de machine taal van de Atmega → Die machine code moet naar het bordje gestuurd worden
Arduino Structuur eenvoudig programma: C Definitie van variabelen Set-up routine → code die eenmaal loopt Hoofdprogramma in een oneindige lus
Arduino Speciaal voor Arduino Bibliotheek van nuttige functies: b.v. Digital I/O pinMode() digitalWrite() digitalRead() Analog I/O analogRead() analogWrite() - PWM
Arduino Arduino: pinMode() pinMode() configureert een pin als input of output. Syntax: pinMode(pin, mode) Mode: 'INPUT','OUTPUT, ... Voorbeeld:
Arduino Arduino: digitalWrite() digitalWrite() Zet een pin op 5V of op 0V Syntax: digitalWrite(pin, waarde) waarde: 'HIGH','LOW' → HIGH =5V, LOW=0V Voorbeeld:
Arduino Arduino: digitalRead() digitalRead() leest de waarde op een pin, ofwel 5V ofwel 0V Syntax: digitalRead(pin) Geeft terug: 'HIGH' of 'LOW' → HIGH =5V, LOW=0V Voorbeeld:
Arduino Arduino: analogRead() analogRead() leest de analoge waarde op een pin, 0V=0 → 5V=1023 Dus 5/1023 = 4,9mV per eenheid Syntax: analogRead(pin) Geeft terug: integer tussen 0 en 1023 Voorbeeld:
Arduino Arduino: analogWrite() → PWM golf analogWrite() schrijft PWM golf, een blokgolf met aanpasbare dutycycle Syntax: analogWrite(pin,waarde) Waarde: Dutycycle: 0 is altijd 0V, 255 altijd 5V (of 0=0%, 255=100%) Voorbeeld:
Arduino Voorbeelden van die functies Basis Elektronica Externe LED uit en aan Drukknop uitlezen LED dimmen
Arduino Basis elektronica Spanning: Eenheid: Volt (V) Spanning “staat over” een component Stroom Eenheid: Ampere (A) Stroom “stroomt door” een component Weerstand Eenheid: Ohm (Ω) Weerstand tegen stroom
Arduino Wetten van Kirchhoff Som spanning in een lus = 0V Som v/d Stroom in – Som v/d Stroom uit een knoop = 0A
Arduino Wet van Ohm Verband :Spanning, stroom en weerstand U= I x R Gegeven: U=10V, R=1000Ω Gevraagf: I? I=U/R 10V/1000Ω=0,01A=10mA
Arduino Kleurcode weerstanden Waarde?
Arduino Truuk Zin:zij → zwart → 0bracht → bruin → 1rozen → rood → 2op → oranje → 3Gerrits → geel → 4graf → groen → 5bij → blauw → 6vies → violet → 7grijs → grijs → 8weer → wit → 9
Arduino Oefening Zin:
Arduino LED: Light Emitting Diode Zin:
Arduino LED en voorwaartse spanning Zin:
Arduino LED en Arduino Arduino 5V pin 2 GND 5V max 40mA/pin Advies: 3-15 mA
Arduino Bereken de weerstand U: 5V Rode LED: Max 10mA R? 330Ω
Arduino Oplossing IO Pin 13 : 5 Volt → 10mA → rode led: 2V: R=(U-Uled)/I → 3V/10mA 300Ω Stel 330Ω?
Arduino Arduino: pinMode() pinMode() configureert een pin als input of output. Syntax: pinMode(pin, mode) Mode: 'INPUT','OUTPUT, ... Voorbeeld:
Arduino Arduino: digitalWrite() digitalWrite() Zet een pin op 5V of op 0V Syntax: digitalWrite(pin, waarde) waarde: 'HIGH','LOW' → HIGH =5V, LOW=0V Voorbeeld:
Arduino LED op pin 13
Raspberry-Pi Voorbeeld drukknop VCC: 5V pin GND: 0V Meeting: pin12 R=U/I 5V/0,5mA = 10000Ω → 10KΩ
Raspberry-Pi Drukknop Naar 5V pin Naar pin 12→ Digital in Naar GND
Arduino Arduino: digitalRead() digitalRead() leest de waarde op een pin, ofwel 5V ofwel 0V Syntax: digitalRead(pin) Geeft terug: 'HIGH' of 'LOW' → HIGH =5V, LOW=0V Voorbeeld:
Arduino Voorbeeld lezen van een drukknop
Arduino Oefening Laat de LED 1 seconde branden nadat de knop ingedrukt werd.
Arduino Oefening Maak een verkeerslicht – Rood, groen, oranje Als je op de knop drukt krijg je binnen de seconde groen
Arduino Uitlezen van een analoge waarde U= 5V R=10K I=0,5mA Uvar = meting Meting op A0
Arduino Arduino: analogRead() analogRead() leest de analoge waarde op een pin, 0V=0 → 5V=1023 Dus 5/1023 = 4,9mV per eenheid Syntax: analogRead(pin) Geeft terug: integer tussen 0 en 1023 Voorbeeld:
Arduino Arduino: LED dimmen→ PWM golf analogWrite() schrijft PWM golf, een blokgolf met aanpasbare dutycycle Syntax: analogWrite(pin,waarde) Waarde: Dutycycle: 0 is altijd 0V, 255 altijd 5V (of 0=0%, 255=100%) Voorbeeld:
Arduino LED dimmen (op PIN11 PWM ~)
Arduino Oefening Laad de LED knipperen met de snelheid die met de potentiometer bepaald wordt