Kategori:Arduino

Fra HTX Arduino
Spring til navigation Spring til søgning
Arduino UNO Board Rev. 3

Arduinoen er et italiensk/amerikansk udviklet produkt, som består af et stykke software til PC'en, som stiller et udviklingsmiljø til rådighed med en masse gode programeksempler, kombineret med flere forskellige processor-boards, hvor man kan afvikle den kode man har skrevet.

I denne wiki anvendes primært Arduino UNO Rev. 3, der er et board med en ATMEGA328 processor fra Atmel.

Arduino har mange gode eksempler, men på hjemmesiden fablab.ruc.dk/basic-programming-patterns/ kan man finde mange gode eksempler på standard løsninger på typiske problemer med støder i når man programmerer i arduinos miljø.

Installation af PC-software

Programmet kan downloades fra Arduinos egen hjemmeside http://arduino.cc/en/Main/Software.[1]

Hvis man downloader windows-installeren, så bliver der installeret drivere og selve softwaren i en omgang. Man kan også downloade en version der kan køres lokalt i en mappe uden at installere - det giver nogle ulemper med standard biblioteker, og kan give problemer med derivere til serielporten.

Arduino UNO tilsluttes en USB-port på PC'en, så den får både forsyning, download af programmer og en seriel port ad den vej.

Programmet installerer en del drivere, så Arduinoen kan optræde som en COM-port, men til nogle udgaver af Arduinoen skal der installeres en speciel Arduino Driver.

Opkobling af hardware

Arduino-boardet kobles til PC'ens USB-port med et USB-A-B kabel fra Arduino UNO versionens vedkommende. Andre typer af Arduino kan bruge USB mini tilslutning, men grundlæggende set vil de opføre sig ens, og blive tilsluttet på samme måde.

Når man anvender USB-porten til at programmere med, så kan man samtidigt forsyne Arduino-boardet via USB-porten, der normalt vil kunne levere 5V 0,5A. Dette vil selvfølgelig begrænse hvor meget strøm man kan trække ud af Arduino-boardet, men det vil normalt kunne lade sig gøre at køre en forsøgsopstilling via Arduini-boardets forsyning.

Arduino forsynet via USB-porten

3,3V forsyning

På Arduino-boardet sidder der en lille 3,3V regulator, der burde kunne levere ca. 150 mA, men ifølge specifikationer kun kan levere 50 mA. Denne forsyning kan anvendes til at levere strøm til kredsløb der kun kan arbejde på 3,3V, men selvfølgelig med den begrænsning at der ikke trækkes mere end de 50 mA.

Til digitale signaler tilbage til Arduinoen vil der nomalt ikke være problemer i at levere signaler fra et 3,3V forsynet kredsløb. Her vil niveauerne blive accepteret som høje og lave uden problemer.

Det er anderledes med signaler fra Arduinoen, der arbejder på 5V og dermed leverer signaler på 0/5V. Her vil det være nødvendigt at tilpasse signalerne, enten med en signaltilpasning med en buffer som en CD4050, eller med en serie-modstand og en clamping-diode af f.x. typen BAT85.

Arduino forsynet via en ekstern forsyning

Ekstern forsyning

Når man har færdig-udviklet sit produkt, så kan man få Arduinoen til at fungere som stand-alone, hvor man ikke behøver at forsyne den via USB-porten, men man kan i stedet forsyne den fra f.x. en 9V Adapter, så arduinoen kan fungere uafhængigt af PC'en.

Den regulator der sætter spændingen ned til 5V kan håndtere op til 1A, men på grund af effekten der afsættes i regulatoren, så vil det ikke være muligt at trække meget mere end 250 mA kontinuert, da regulatoren ellers bliver for varm, hvilket kan få den til at lukke termisk ned.

Det eneste man mister i den forbindelse er at man ikke kan monitorere på den serielle port via USB-porten, med mindre man kobler den til via en seriel adapter til de digitale ben 0 og 1.

Tilslutning af Hardware

På Arduinoen er der en række stik, der giver adgang til at tilslutte eksterne kredsløb til arduinoen[2]. Der er forsyninger, og de forskellige porte.

Markering Funktion Beskrivelse
GND Stel-forbindelse Den 0V som alle andre spændinger forholder sig til (3 stikforbindelse)
5V Forsyning Den forsyning der er forbundet til PIC'en - kommer fra USB-porten, hvis der ikke tilsluttes en ekstern forsyning
IOREF Forsyning Forbundet direkte til +5V
Vin Ekstern forsyning 9-12V ureguleret forsyning, så arduinoen kan fungere uden USB-porten tilsluttet - kan trækkes ud på dette stik
3,3V Ekstra forsyning 3,3V forsyning der kan anvendes til kredsløb der ikke tåler 5V
Reset Reset Mulighed for eksternt at resette (nulstille) arduinoen ved at koble benet til stel
AREF Analog reference Mulighed for at ændre det analoge konverteringsområde
A0-A5 Analog indgange 6 indgange, der kan måle analoge spændinger med en 10 bit ADC (0-1023). Som standard 0-5V måling.

Kan også anvendes som digitale I/O - A4 og A5 fungerer som SDA og SCL til I2C

0-1 Digital IO To specielle IO, der normalt anvendes til den serielle port (kommer typisk fra USB-porten)
2-13 Digitale IO Generelle IO-ben, hvor 3, 5, 6, 9, 10 og 11 kan anvendes som PWM output
SDA Seriel Data Seriel forbindelse sammen med SCL, der kan arbejde med 2-wire seriel. anvender samme ben som A4 og A5
SCL Seriel Clock Seriel forbindelse sammen med SDA

Fra Arduino forumet stammer denne oversigt[3], der også kan være med til at give et godt overblik, både over Arduinoen, og over ATMega328 kredsen, der er mikrocontrolleren der udfører arbejdet i Arduinoen.

ARDUINO V2.png

Mangel på I/O-ben

Det umiddelbare valg kunne være at gå op i en større processor med flere ben, men det vil normalt være en dyrere løsning.

Hvis man kodemæssigt kan holde sig i en Arduino, så vil det være en fordel at anvende en Arduino IO Expander, der kan give 8 eller 16 ekstra digitale I/O-ben ved at bruge I2C. Det kan relativt smertefrit give 50-60 ekstra ben.

Et alternativ, hvis koden også volder problemer, er at gå op i en MEGA2560, der har 54 digitale I/O og 16 analoge input, samt 256kB programhukommelse.

Referencer

Programmering
Programmeringsbegreber Initialisering - Sekvens - Algoritme - Hexadecimal - Det Binære Talsystem - HEX-fil - ASCII - Interrupt - Events - Styresystem - Autocomplete - Selvstudie Programmering - Hour Of Code - Stepwise Improvement - Syntaks - Prog-links - Microcontroller
Grundlæggende C C float - C double - C-løkker - Datatyper - Konstanter - Regnearter - Funktioner - Return - Returværdi - Rekursion - Semikolon
Variabel Typer boolean - byte - int - unsigned int - word - long - unsigned long - short - float - double - char - unsigned char - string - char array - String - object - Array - 2-dimensionelt Array - void
Program-klassikere Polling - State-machine - Trykknap - Forkant - Bagkant - Prel
Arduino Arduino til Programmering - C til Arduino - Programmering Shield - Arduino PC-software - Arduino Udviklingsmiljø - Arduino Pin Library - Funktion - Arduino Seriel - Arduino String - Arduino String Split - Arduino StateChangeDetection - setup() - loop() - Compilerdirektiver - Asynkron kommunikation - millis() - micros() - Scratch for Arduino - Send fra Arduino til Excel - [[]] - [[]]
Processing Grafik i Processing‎ - Keyboard i Processing - Mus i Processing‎ - Tid i Processing‎ - Draw() - Setup() - Tal Input til Processing - Syntaksfarvning - Kommunikation fra Arduino til Processing - Kommunikation fra Processing til Arduino
javaScript Javascript input‎ - Javascript output‎ - Javascript strukturer‎ - Javascript syntaks‎ - Tid i javaScript - Objekt‎ - AJAX
Serverprogrammering PHP - MySQL - Task Scheduler - WeMOS
PIC JAL - [[]]
Scratch for Arduino S4A Installation - S4A programmering - S4A undervisningsforløb - S4A begrænsninger
Program Dokumentation Algoritme - Flowchart - Pseudokode - Datastruktur - Dataabstraktion - Pulsplaner - Program-kommentar - Teori - Test - UML


Arduino-Modul-Oversigt
Arduino Generelt: Biblioteker - Board - Driver - Shield - Arduino Analog - Arduino Seriel

Arduino-typer: Arduino UNO - Arduino Nano - Arduino Pro Mini - Arduino MEGA 2560 - LiliyPad Mikrocontroller - Arduino DUE - WeMOS

Input-moduler Trådløse: Bluetooth - Transceiver modul - WiFi Modul - SMS Modul - I2C-RF-modtager - RF Link - GPRS/GSM - GSM_Modul

Sensorer: GPS - Strøm-sensor - I2C Humidity - Lys og Nærhed - Magnetisk Kompas - I2C barometer - Farvegenkendelsesmodul - Alkoholsensor - Accelerometer - I2C Accelerometer - I2C Gyroskop - Vejecelleforstærker - IR Distance - AC Strømsensor - Afstand - XY Joystick - Humidity - Tryksensor - Vindhastighedsmåler
Photo og IR: IR Fjernbetjening - Photo Interrupter - IR Modtager - Bevægelsescensor - Photo Refleks Sensor - VGA Kamera
Power: Power Adapter - Lithium Batteri
Lager: SD Kort
Konvertere: I2C AD-konverter
Funktionsmoduler: RFID-modul - Matrix tastatur - DS1307 RTC - ENC28J60 Ethernet - IO Expander
Touch Display: Touch Display

Output-moduler Trådløse: Bluetooth - RF Link - GPRS/GSM - Transceiver modul - WiFi Modul - SMS Modul

Display: Display Shield - Touch Display - Arduino Display - Nokia 5110 Display - Dot-Matrix - Lys-avis - I2C Display
Funktionsmoduler: Lydgiver - Lydmodul - Relæ modul - Audio Power Forstærker - ENC28J60 Ethernet - Peltier Element - IO Expander
Hukommelse: SD Kort
Motorer: Stepper Motor Driver - Stepper med Accelleration - Servo

I2C-Moduler Funktionsmoduler: DS1307 RTC - I2C-RF-modtager - I2C tastatur

Sensorer: I2C Humidity - Magnetisk Kompas - I2C barometer - I2C Accelerometer - I2C Gyroskop
Konvertere: I2C AD-konverter
Display: I2C Display

Underkategorier

Denne kategori har følgende 10 underkategorier, af i alt 10:

A

C

G

W