Verkkokauppa Kotisivut Tuoteluettelo Ota yhteyttä Kirjaudu Ostoskori Kassalle
Verkkokauppa » Artikkelit » Arduino Oma tili  
Tuoteryhmät
3D-TULOSTUS
AKUT/PARISTOT->
ANTENNIT->
ARDUINO->
AUDIO/VIDEO->
ELEKTRONIIKAN KOMPONENTIT->
HÄLYTIN/VALVONTA
JUOTTAMINEN->
JÄÄHDYTYS->
KAAPELIT/JOHDOT->
KAAPELITARVIKKEET->
KIRJAT
LEDIT->
LIITTIMET->
MEKANIIKKA->
MUISTIKORTIT
PALVELUT
PROTOILU->
PUHELIMET->
RAKENNUSSARJAT
RASPBERRY PI->
SEKALAISET
SÄHKÖMEKANIIKKA->
SÄHKÖTARVIKKEET->
TEHOLÄHTEET->
TIETOKONEET->
TIETOLIIKENNE->
TV/RADIO/VCR/CD->
TYÖKALUT->
* POISTETUT TUOTTEET *
* TARJOUSERÄT *
Pikahaku lisää
 
Etsi tuote hakusanalla
Tarkka haku
Uutuudet lisää
40-napainen FFC kaapeli 80mm
40-napainen FFC kaapeli 80mm
3,84€
Klikkaa tästä tuoteuutuudet
Tarjoukset lisää
I2C DIGITAALINEN LÄMPÖTILA-ANTURI (12-bit) SO8
I2C DIGITAALINEN LÄMPÖTILA-ANTURI (12-bit) SO8
1,84€ 1,00€
Valmistajat
Artikkelit lisää
Arduino (7)
ARM -> (6)
Banana Pi
Laitehuolto (1)
Ohjelmoitavat logiikat (1)
Rakennussarjat (1)
Raspberry Pi (3)
Tekniikat (1)
Yleistä (1)
Lisätiedot
Vinkit
Uutisotsikot
Toimitusehdot
Tietosuoja
Käyttöehdot
Ota yhteyttä
Löydä meidät
Noutomyymälä
Varoitus Uusi verkkokauppa www.partco.fi avattu!
Arduino Uno esittely

Yleiskatsaus

Tämä artikkeli pohjautuu alkuperäiseen englanninkieliseen esittelyyn Arduinon kotisivuilla.

Arduino Uno on uusittu versio suositusta Duemilanove kortista. Se pohjautuu yhtälailla Atmelin ATmega328 datalehti prosessoriin.  Suurin uudistus on USB-liitännän toteutus erillisellä apuprosessorilla. 14 digitaalista tulo/lähtö-pinniä (joista 6 voi käyttää PWM-lähtöinä), 6 analogista tuloa, 16MHz kideoskillaattori, USB liitäntä, DC-virtaliitin, ICSP ohjelmointiliitäntä sekä reset painonappi. Toisinsanoen, kaikki tarvittava monenmoiseen kokeiluun.

Kytkentäkaavio ja piirilevytiedostot

EAGLE tiedostot: arduino-uno-rev2-reference-design.zip

Kytkentäkaavio: arduino-uno-rev2-schematic.pdf

Kortin tiedot

Mikrokontrolleri ATmega328
Käyttöjännite 5V
Suositeltu tulojännite 7-12V
Tulojännitteen rajat 6-20V
Digitaaliset pinnit 14 kpl I/O (joista 6 PWM-lähtöä)
Analogiset pinnit 6 kpl 10-bit tuloa
I/O-pinnin maks. virta 40mA
3,3VDC maks. anto 50mA
FLASH muistia 32KB josta 2KB käynnistysohjelmalle
SRAM muistia 2KB
EEPROM muistia 1KB
Kellotaajuus 16MHz

Käyttösähköt

Arduino Uno ottaa käyttösähkönsä USB liitännästä (mak. 500mA) tai ulkoiselta virtalähteeltä. Valinta edellisistä tapahtuu automaattisesti.

Voit käyttää ulkoista reguloimatonta tai reguloitua 7-12V DC-virtalähdettä tai vaikkapa paristoja. Käytä 2,1mm plussa keskellä DC-liitintä tai paristojen tapauksessa liitä suoraan kortilla oleviin Gnd ja Vin pinneihin. Ainakin Atmega328 toimii 1,8-5,5V jänniteillä.

Huom! Kortilla on ainoastaan yksi tasuuntaus/-suojadiodi. Mikäli tulojännite on alle 7V, jänniteregulaattori ei tuota +5VDC vaan jotain sen alle. Tämä saattaa aiheuttaa toiminnallisia häiriöitä. Yli 12V syöttöjännitteellä regulaattori saattaa ylikuumentua ja vikaantua.

Katso tästä artikkelista lisätietoa sopivan virtalähteen valintaan.

POWER liitännän pinneistä:

  • VIN - jännitteen syöttö regulaattorille DC-liittimen sijasta tai jännitteenotto (esim. 12V ulos) mikäli käyttää DC-virtaliitintä.
  • 5V - reguloitu +5VDC lähtö tai syöttö.
  • 3V3 - 3,3V 50mA saadaan FTDI-piiriltä. Lähinnä Shield-lisäkortteja varten.
  • GND - "nolla volttia" eli maa.

Muisti

AVR-arkkitehtuuri on ns. Harvard-arkkitehtuurin mukainen. Tällä tarkoitetaan että ohjelma- ja parametrimuistit ovat erillisiä. ATmega328 mikrokontrollerissa on 32KB FLASH-muistia ohjelmakoodia varten. Tästä 2KB on käynnistysohjelman (bootloader) käytössä. Ohjelmien ajonaikaisten muuttujien ja funktiokutsujen pinojen hallintaan käytettävää SRAM-muistia on 2KB. 1KB EEPROM muistia käytetään erillisen EEPROM-kirjaston avulla. Sinne voi tallentaa muuttujien arvoja tai vaikkapa mittausdataa jonka haluaa säilyvän sähkökatkosten yli.

I/O tulot ja lähdöt

Jokaista 14 digitaalista I/O-pinniä voi käyttää vapaasti tuloina tai lähtöinä käyttämällä funktioita pinMode(), digitalWrite() ja  digitalRead().  I/O-pinnit toimivat +5VDC jännitteellä ja niistä kukin voi syöttää tai niellä virtaa 40mA verran. Tämä virta riittää hyvin esim. ledien ohjaukseen. Huom! Virtaraja koskee yksittäisiä pinnejä. Kokonaisvirta VCC tai GND pinneille ei saa ylittyä (~150mA).  Tuloksi määriteltyyn I/O-pinniin voi myös asettaa ohjelmallisesti sisäisen ylösvetovastuksen (20-50kohm) joka oletuksena ei käytössä.  Näitä on kätevä käyttää esim. kytkimien kanssa. Tämän lisäksi joillakin pinneillä voi olla erikoistoimintoja:

  • Sarjaliikenne 0 (RX) ja 1 (TX) - käytetään vastaanottamaan (RX) ja lähettämään (TX) TTL -tasoista sarjaliikennettä (USART). Nämä on kortilla kytketty FTDI USB-TTL piiriin.
  • Ulkoiset keskeytykset 2 ja 3 -  nämä tulot saa asetettua aiheuttamaan keskeytyksen. Sopiva liipaisu; nouseva reuna, laskeva reuna, muutos, matala taso valitaan alustusfunktiolla attachInterrupt(). Keskeytyksen sattuessa ohjelma hyppää keskeytysrutiiniin ja toimenpiteiden jälkeen sieltä palaudutaan takaisin ohjelmansuoritukseen.
  • PWM lähdöt 3, 5, 6, 9, 10 ja 11 - 8-bittinen PWM lähtö jonka arvo asetetaan analogWrite() funktiolla.
  • SPI  10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) - nopea sarjamuotoinen lisälaiteliitäntä tai ohjelmointiliitäntä. Vaikkakin Arduino ohjelmointiympäristössä ei ole SPI suoraa tukea, onnistuu sen käyttö vaikkapa näin.
  • Merkkivalo LED 13 - huomiovaloksi tarkoitettu keltainen pintaliitosledi.
  • I2C 4 (SDA) ja 5 (SCL) - yleinen kahden johtimen kommunikointiväylä kts. alta lisää.

Erityisesti analogisille signaaleille:

  • ANALOG IN 0, 1, 2, 3, 4, 5 - kuusi analogista tuloa 10 bitin resoluutiolla. Oletuksena 0-5V jännitealueella analogRead() palauttaa arvon 0 ja 1023 väliltä. Mitattavaa jännitealuetta voi muuttaa AREF referenssijännitteellä (alle 5V) tai ulkoisella elektroniikalla (yli 5V).
  • AREF - analogisten tulojen yhteinen referenssijännite. Tämä määrittelee ADC-konversion maksimia vastaavan jännitteen. Referenssin valinta ulkoisen tai kahden sisäisen välillä suoritetaan funktiolla analogReference().
  • Reset - maatettuna resetoi prosessorin. Käytetään yleensä Shield-lisälaitekorteissa mikäli piirikortilla oleva reset-painike on piilossa.

Tässä kuva  Arduino Duemilanove piirikortin nimien ja ATmega328 datalehden pinnien ja porttien sidoksista.

Kommunikointi

ATmega328 mikrokontrollerissa on sisäänrakennettuna PC:n sarjaporttia vastaava UART asynkronista sarjaliikennettä varten mutta TTL-jännitetasoilla. Kortilla digitaalipinnit 0 (RX) ja 1 (TX). USB-liitäntä on FT232RL piirin sijasta toteutettu ATmega8U2 apuprosessorilla.  Käyttöä varten ei tarvitse enää asentaa erillisiä ajureita vaan kortti näyttäytyy USB COM laitteena suoraan. Arduinon koodieditorissa on mukana kätevä sarjaliikenteen monitorointi-ikkuna josta voi myös lähettää tekstiä rivi kerrallaan Arduino-kortille. Kortilla olevat RX ja TX LEDit vilkkuvat USB-apuprosessorin kautta kulkevan datan tahdissa. Piirille on myös oma ICSP-liittimensä.

SoftwareSerial kirjaston avulla voi toteuttaa sarjakommunikointia millä tahansa digitaalisella I/O-pinnillä (rajoitetusti).

ATmega328 tukee myös I2C (TWI) and SPI protokollia. Arduino-ohjelmisto sisältää Wire kirjaston I2C-väylää varten (kts. myös Wiring kotisivuilta). SPI-väylälle löytyy valmis kirjasto Arduinon puolesta.

Automaattinen resetointi

Sen sijaan että pitäisi painaa sormella reset-nappia ennen ohjelman latausta piirille, resetin voi tehdä tietokoneelta käsin. USB-apuprosessorin PD7-nasta (DTR) on kytketty ATmega328 reset-pinniin 100nF kondensaattorilla.

Tämä järjestely ei kuitenkaan ole täysin mutkaton. Kun Duemilanove tietokoneeseen jossa on käytössä OS X tai Linux, resetointi tapahtuu joka kerta kun yhteys avataan. Tämä käynnistää käynnistyslohkon (bootloader) ja aiheuttaa oman viiveensä. Muista lisätä sopiva (sekunnin) viive tietokoneella olevaan ohjelmaan joka odottaa sarjamuotoista dataa Arduinolta.

Arduino Uno piirikortilla on veto jonka voi katkaista auto-reset toiminnon estämiseksi. Kohta on merkitty "RESET-EN". Vieressä sijaitsevien juotostäplien avulla liitoksen voi tehdä uudestaan. Auto-reset:in voi myös kokeilla estää juottamalla 110 ohmin vastuksen 5V ja reset linjojen väliin. Kts. tarkemmin  keskustelua aiheesta.

USB ylivirtasuojaus

Arduino Uno piirikortti on varustettu palautuvalla ylivirtasuojalla. Koska tietokoneen USB-portti ei takaa kuin 500mA virran, on hyvä rajoittaa virrantarve tälle tasolle.

Fyysiset mitat

Kortin pohjamitat ovat suunnilleen 69 x 53,5 mm. USB B-runkoliitin pilkistään n. 6,5 mm kortin reunasta mitattuna. Maksimipaksuus on 14 mm luokkaa. Kortilla on kolme kiinnitysreikää. Huomaa myös että kahden piikkirimaliittimen digitaalipinnien 7 ja 8 välinen rako (jostain kumman syystä) on 160mils:iä eikä 100mils:iä tai sen monikertaa.


Ohjelmointi

Arduino Uno käyttöönotto ohjelmoinnin kannalta on helppoa ja nopeata. Lataa Arduino ohjelmisto tästä linkistä (download). Lisätietoa ohjeissa ja sovellusesimerkkeissä.

Piirikortilla olevaan ATmega328 on esiasennettu käynnistysohjelma (bootloader) jonka avulla ohjelmien lataaminen itse piirin FLASH-muistiin onnistuu ilman erillistä ohjelmointilaitetta. Siirtoprotokolla on yhteensopiva de-facto-standardin STK500 kanssa (referenssi, C .h tiedostot).

Ohjelman lataaminen onnistuu myös käyttämällä ICSP (In-Circuit Serial Programming) liitäntää mikäli tarvitsee USB-liitäntää tai käynnistyslohkon viemän tilan muuhun käyttöön (tarkempia ohjeita).

Ohjelmointiympäristö perustuu pohjimmiltaan C-kieleen ja GNU AVR-GCC kääntäjään. Sitä on vain hieman helpotettu. Mukana tulee oma javalla tehty koodieditori jossa mm. kirjasto valmiista koodiesimerkeistä.

Simppeli ohjelmointiesimerkki:

#define LEDPIN 13

// alustus

void setup() {

  pinMode(LEDPIN, OUTPUT); // asetetaan pinnin käyttötapa

  Serial.begin(9600); // otetaan USB-sarjaliikenne käyttöön 9600bps

}

// pääluuppi jota ajetaan ja ajetaan

void loop() {

  digitalWrite(LEDPIN, HIGH); // ledi päälle

  Serial.println("LED ON"); // kirjoitetaan sarjaporttiin

  delay(1000); // sekunnin viive

  digitalWrite(LEDPIN, LOW); // ledi pois

  Serial.println("LED OFF"); // kirjoitetaan sarjaporttiin

  delay(1000); // sekunnin viive

}

Tämänkaltainen pikkuohjelma vie 2228 tavua ohjelmamuistia (30720 tavun maksimista). Kortille se humahtaa sekunnissa.

 

 

Tämä artikkeli on julkaistu .
Takaisin Kirjoita arvostelu
Artikkeliin liittyviä tuotteita:
Arduino Uno R3
Arduino Uno R3
Ostoskori lisää
0 tuotetta
Kielet
Suomi English

Elgood Oy / Partco - Malminkaari 10, 00700 Helsinki - p. 0207 981 130 - www.elgood.fi - myynti@elgood.fi
Powered by osCommerce