Anvendelse af Eksempler
I flere af de foregående dokumenter er programeksemplet Blink blevet omtalt. Ud over dette programeksempel, så er der i Arduinos programmeringsmiljø (IDE’et) rigtigt mange andre gode programeksempler [1] der hjælper en i gang med nye teknikker, og en del af dem illustrerer, hvordan man anvender software til tilsluttede komponenter.
Det man kan med gode eksempler, er at man målrettet får vist hvordan man kan løse en lille begrænset del, som man kan efterfølgende kan anvende i et af sine egne programmer. Det kan være at anvende en stepmotor, koble et display på eller noget helt tredje.
En god teknik når man anvender eksempler er at man starter med eksemplet og ser at det kan oversættes og overføres til Arduinoen. Herefter kan man tilpasse eksemplet, så det passer til den hardwareløsning man arbejder med, eller hente hele - eller dele af - programeksemplet ind i sin egen programkode, og arbejde videre med det her. Det er altid god skik at tilføje øverst i sit program, hvor man har hentet programkodestumper fra. Dette gøres ved at indsætte en kommentar //
.
Man kan finde hele koden til eksemplerne inde under eksempler som vist i figur 1 - her er det Blink-eksemplet under de grundlæggende eksempler.
Figur 1 Måden man finder eksempler på i IDE’et - Fil, Eksempler, Kategori, Eksempel.
Til mange komponenter er der forskellige eksempler, så man nogle gange skal igennem to-tre eksempler for at finde de teknikker man skal anvende og evt. kombinere eksemplerne for at kunne løse det man ønsker.
Når man har fået komponenten til at fungere som det eksemplerne kan vise, så kan man kopiere de forskellige dele ind i sit eget projekt, eller man kan starte i eksemplet og udvide derfra med andre eksempler.
Indholdsfortegnelse
- 1 Eksempler til grundlæggende funktioner
- 1.1 Grundlæggende eksempler - Basics[2]
- 1.2 Digitale ind og udgange - Digital[4]
- 1.3 Analog ind og udgange - Analog[5]
- 1.4 Kommunikation - Communication[6]
- 1.5 Kontrol Strukturer - Control Structures[9]
- 1.6 Sensorer - Sensors[10]
- 1.7 LED output til display-formål - Display[11]
- 1.8 Tekst-strenge - Strings[12]
- 1.9 USB Mus og Keyboard - USB[13]
- 1.10 Starter Kit og Basic Kit - Starter Kit[14]
- 1.11 Arduino In-circuit Serial Programmer - Arduino ISP[15]
- 2 Eksempler til mere avanceret hardware
- 3 Eksempler til biblioteker der tilføjes
- 4 Referencer
Eksempler til grundlæggende funktioner
Når man installerer IDE’et, så er der mange eksempler der følger med - det er disse der omtales her.
Hvis man kommer til at anvende moduler der ikke er installeret biblioteker til i IDE’et, så vil der normalt komme eksempler med de ekstra biblioteker man installerer.
Grundlæggende eksempler - Basics[2]
De grundlæggende eksempler giver en kort og hurtig hjælp til ind og udgange, uden at det bliver avanceret.
Der illustreres hvordan digitale ind og udgange fungerer helt grundlæggende.
Der illustreres hvordan de analoge indgange fungerer, og her vises også funktionen af Serial Monitor, som omtales nærmere i Test af Programmer.
Endelig er der et eksempel på en analog udgang lavet med PWM[3].
Digitale ind og udgange - Digital[4]
Her er der en række mere avancerede anvendelser af ind og udgange med eksempler på anvendelse af intern pull-up og tone-biblioteket til at få en udgang til at afgive en frekvens.
Analog ind og udgange - Analog[5]
Flere forskellige eksempler på håndtering af specielt analoge indgange, hvor de påvirker forskellige ting, også et eksempel på hvordan man kan udglatte signalet ved hjælp af software.
Kommunikation - Communication[6]
Forskellige eksempler på hvordan man kan kommunikere ind og ud af Arduinoen. De fleste eksempler viser forskellige anvendelser med den indbyggede serielle port, men der vises også hvordan man kan lave en software-seriel port.
Der vises hvordan man kan styre et MIDI-instrument[7], [8] ved hjælp af den serielle port. Der er også mere specielle anvendelser af den serielle port.
Kontrol Strukturer - Control Structures[9]
I disse eksempler gennemgås nogle af de grundlæggende kontrolstrukturer i C-sproget som er Arduionens programkode.
Der vises ligeledes et eksempel med et Array
Sensorer - Sensors[10]
Forskellige eksempler på simple sensorer: et 3-akset accelerometer med analogt output, banke-detektor lavet med en Piezzo-speaker, 2-akset accelerometer med puls-output og en ultralyds afstandsmåler.
LED output til display-formål - Display[11]
Et par eksempler på hvordan man kan få lysdioder til at udtrykke forskellige analoge værdier.
Tekst-strenge - Strings[12]
Mange gode eksempler på hvordan man kan manipulere strenge og konvertere andre datatyper til/fra strenge.
USB Mus og Keyboard - USB[13]
Disse eksempler er ikke relevante for en Arduino UNO, da de kræver at man anvender en Leonardo, Micro eller Due.
Starter Kit og Basic Kit - Starter Kit[14]
Dette er programeksempler der anvendes sammen med to af de officielle Arduino Starter kits.
Arduino In-circuit Serial Programmer - Arduino ISP[15]
Dette er ikke for begyndere, men man kan anvende en Arduino så man kan programmere direkte ned på chippen af en anden Arduino (ved at gå uden om det styresystem der udgøres af bootloaderen), det kan anvendes til at brænde en frisk bootloader ned i en Arduino hvor man har sat en blank ATMega328P processor på, men det kan også anvendes til at brænde HEX-kode direkte på andre Atmel processorer, både fra Mega familien og fra ATTiny serien.
Eksempler til mere avanceret hardware
Disse eksempler er knyttet til forskellig hardware der kan tilsluttes Arduinoen, og som bygger på forskellige standard komponenter og Shields udviklet til Arduino.
Bibliotekerne til hardwaren er installeret sammen med IDE’et.
Ethernet
Dette er et Shield [16], der kan forbinde en Arduino UNO til et Ethernet ved hjælp af et RJ-45 stik og et TP-kabel. På Shieldet sidder der også et SD-kort.
LiquidCrystal
Dette bibliotek er lavet til at tilslutte et Alfanummerisk LCD til Arduinoen. Man kan koble det op med ledninger, hvis man har et løst display [17], eller man kan anvende et Shield med et display på.
SD-kort
Dette bibliotek kan kommunikere med et SD-kort [18], så man kan skrive og læse filer fra kortet. Dette er specielt anvendeligt, hvis man har behov for større datamængder end Arduinoens interne hukommelse kan håndtere, eller hvis man fx vil arbejde med billedfiler på en lille skærm.
Servo
Servo-biblioteket kan styre en servomotor [19], ved at sende de korrekte pulser til servomotoren, så den stiller sig i den angivne position.
Stepper
Stepper-biblioteket kan styre en eller flere stepmotorer [20], så man kan positionere en vinkel ud fra hvilken type stepmotor det er.
EEPROM
EEPROM [21] står for Electrically Erasable Programmable Read Only Memory, og det er et hukommelses-område der forbliver intakt, selvom Arduinoen mister strømmen. Det kan anvendes til at huske kalibreringsværdier eller PIN-koder, der skal forblive intakte, men som også skal kunne ændres af programmet.
SoftwareSerial
På Arduino UNO R3 er der kun en seriel port der er lavet ved hjælp af hardwaren i mikroprocessoren, og den er det tit rart at anvende til den serielle monitor til test-formål. Derfor kan det være smart at kunne anvende andre digitale pins til seriel kommunikation. Det kan etableres ved hjælp af SoftwareSerial biblioteket.
SPI
Serial Peripherial Interface [22] er lavet til at kommunikere med specielle hardware-moduler der har denne kommunikation etablere (SD-kort, Ethernet osv.). Kommunikationen foregår over 3 signaler, og hvert modul skal have et select-signal, så man kan koble flere forskellige moduler på samme bus.
Wire
Wire-biblioteket kan kommunikere med en anden type bus, der også betegnes I2C-bus [23]. Det foregår på to ben der arbejder digitalt (A4 og A5), og der kan kobles forskellige enheder på samme bus, da de er adresserede.
Eksempler til biblioteker der tilføjes
Hvis man tilføjer biblioteker fra nettet på den korrekte måde [24], så vil man normalt også få en række eksempler med, som lægger sig ind under de præ-installerede biblioteker.
Disse eksempler giver tit en god ide om hvordan biblioteket skal anvendes, hvis biblioteket er af en fornuftig kvalitet - der er mange gode biblioteker på www.github.com.
Man kan også selv skrive biblioteker til Arduinoen, og her anbefales det også at lave eksempler, så man følger samme format som installerede biblioteker.
Referencer
- ↑ Built-In Examples
- ↑ Basics
- ↑ PWM - Puls Bredde Modulation
- ↑ Digital
- ↑ Analog
- ↑ Communication
- ↑ MIDI - Wikipedia
- ↑ MIDI Specs
- ↑ Control Structures
- ↑ Sensors
- ↑ Display
- ↑ Strings
- ↑ USB
- ↑ Starter Kit
- ↑ Arduino ISP
- ↑ UNO Shield Ethernet Shield W5100
- ↑ Arduino Display
- ↑ SD Card Module
- ↑ Servo Motor
- ↑ Stepmotor
- ↑ Arduino - EEPROM
- ↑ Arduino - SPI
- ↑ I2C - Kommunikation
- ↑ Arduinos Biblioteker