Arduino Uno

Έλληνας Ιωάννης

Το παρακάτω άρθρο περιγράφει τη λειτουργία του Arduino Uno και είναι μια εισαγωγή για τους αρχάριους του Arduino. Όλες οι εικόνες είναι από την κοινότητα του Arduino.

1.      Arduino UNO

 

Microcontroller: ATMega328P 

 (http://www.atmel.com/devices/atmega328p.aspx?tab=documents)

 Ελεύθερα pins:

  • Digital pin 0 à Rx (pin 2/RxD of μC)
  • Digital pin 1 à Tx (pin 3/TxD of μC)
  • Digital pin 2 à General I/O (pin 4/PD2/INT0 of μC)
  • Digital pin 3 à General I/O ή PWM (pin 5/PD3/INT1 of μC)
  • Digital pin 4 à General I/O (pin 6/PD4/T0 of μC)
  • Digital pin 5 à General I/O ή PWM (pin 11/PD5/T1 of μC)
  • Digital pin 6 à General I/O ή PWM (pin 12/PD6/ΑΙΝ0 of μC)
  • Digital pin 7 à General I/O (pin 13/PD7/ΑΙΝ1 of μC)

Σημείωση: Οι εναλλακτικοί τρόποι λειτουργίας των digital pins φαίνονται στο data sheet, σελ. 88, Πίνακας 13-9.

  • Digital pin 8 à General I/O (pin 14/PB0/ICP of μC)
  • Digital pin 9 à General I/O ή PWM (pin 15/PB1/OC1 of μC)
  • Digital pin 10 à General I/O ή PWM (pin 16/PB2/SS of μC)
  • Digital pin 11 à General I/O ή PWM (pin 17/PB3/MOSI of μC)
  • Digital pin 12 à General I/O (pin 18/PB4/MISO of μC)                        ICSP header
  • Digital pin 13 à General I/O (pin 19/PB5/SCK of μC)

Σημείωση: Οι εναλλακτικοί τρόποι λειτουργίας των digital pins φαίνονται στο data sheet, σελ. 82, Πίνακας 13-3.

  • Analog pin 0 à General I/O ή Analog in (pin 23/PC0/ADC0 of μC)
  • Analog pin 1 à General I/O ή Analog in (pin 24/PC1/ADC1 of μC)
  • Analog pin 2 à General I/O ή Analog in (pin 25/PC2/ADC2 of μC)
  • Analog pin 3 à General I/O ή Analog in (pin 26/PC3/ADC3 of μC)
  • Analog pin 4 à General I/O ή Analog in (pin 27/PC4/ADC4 of μC)
  • Analog pin 5 à General I/O ή Analog in (pin 28/PC5/ADC5 of μC)

Σημείωση: Οι εναλλακτικοί τρόποι λειτουργίας των digital pins φαίνονται στο data sheet, σελ. 85, Πίνακας 13-6.

  • AREF à pin 21/AREF of μC (Εξωτερική είσοδος αναφοράς για τις αναλογικές εισόδους. Ο A/D είναι 10 bits με εσωτερική τάση αναφοράς 5 V. Δηλαδή μετατρέπει τάσεις από 0 έως 5V σε 0 έως 1024 ή 000h έως 3FFh)
  • GND à pin 22/AGND of μC (Αναλογική γείωση)

 

Mapping ATmega168/328 to Arduino pin

2.   Περιβάλλον ανάπτυξης (IDE-Integrated Development Environment)

Το περιβάλλον ανάπτυξης ευρίσκεται στο: http://arduino.cc/en/Main/Software και η εμφάνισή του είναι:

 

Μορφή προγράμματος


#include "library_name.h"

int ledpin=13;       //declare variables

void setup()

{

// ...

}

void loop()

{

// ...

}

 

 

  • Η συνάρτηση setup() καλείται κατά την έναρξη του προγράμματος ή μετά από Reset και εκτελείται μόνο μια φορά. Χρησιμοποιείται για την αρχικοποίηση των μεταβλητών, της λειτουργικότητας των χρησιμοποιούμενων pins, κλπ.
  • Η συνάρτηση loop() εκτελείται μετά την setup() και είναι το κυρίως πρόγραμμα που εκτελείται συνεχώς.

3. Σημειώσεις

 Digital pins – μπορεί να είναι HIGH ή  LOW

(http://arduino.cc/en/Reference/Constants)

Ο ακροδέκτης που προγραμματίζεται σαν INPUT με την εντολή pinMode() τίθεται σε κατάσταση υψηλής αντίστασης. Είναι σαν να υπάρχει μια αντίσταση 100 Megohms μπροστά από τον ακροδέκτη. Αυτός ο τρόπος είναι χρήσιμος για την ανάγνωση αισθητήρων αλλά δεν χρησιμοποιείται για την οδήγηση LED.

Ο ακροδέκτης που προγραμματίζεται σαν OUTPUT με την εντολή pinMode() παρουσιάζει χαμηλή αντίσταση. Αυτό σημαίνει ότι μπορεί να διαθέσει αρκετό ρεύμα για να οδηγήσει άλλα κυκλώματα. Οι ακροδέκτες του Atmega μπορούν να δώσουν (source) ή να πάρουν (sink) ρεύμα μέχρι 40 mA. Επομένως, μπορούν να οδηγήσουν LED αλλά δεν χρησιμοποιούνται για την ανάγνωση αισθητήρων. Οι ακροδέκτες που προγραμματίζονται σαν έξοδοι μπορούν να καταστραφούν εάν συνδεθούν στη γείωση ή την τάση. Το παραπάνω ρεύμα δεν είναι αρκετό για την οδήγηση ρελαί ή μοτέρ και γι’ αυτόν το λόγο χρειάζονται ενδιάμεσα κυκλώματα σε αυτές τις περιπτώσεις.

 Η λειτουργία των ακροδεκτών συνοψίζεται στον ακόλουθο πίνακα:

MODE

DIGITAL PINS BEHAVIOR

Input – pinMode(pin,INPUT) Το digitalRead(pin)  επιστρέφει HIGH εάν η τάση εισόδου είναι >= 3V και LOW εάν είναι <=2 V
Εάν ένας ακροδέκτης εισόδου γίνει HIGH με το digitalWrite(pin,HIGH), η εσωτερική pull-up αντίσταση των 20 KΩ ενεργοποιείται. Τότε, διαβάζοντας αυτόν τον ακροδέκτη με digitalRead(pin) θα επιστρέψει HIGH εκτός εάν γίνεται LOW από το εξωτερικό κύκλωμα. Αυτό χρησιμοποιείται για να έχουμε κάποιον ακροδέκτη σε γνωστή κατάσταση και όχι στον αέρα.
Output – pinMode(pin,OUTPUT) Το digitalWrite(pin,HIGH) θα δώσει έξοδο 5V και θα δώσει ρεύμα 40 mA (source).
Το digitalWrite(pin,LOW) θα δώσει έξοδο  0V και θα τραβήξει ρεύμα 40 mA (sink).


  • Τα Analog pins του Arduino είναι 6 και προσδιορίζονται σαν Analog 0 to 5. Οι αναλογικές είσοδοι χρησιμοποιούνται κυρίως για την ανάγνωση αισθητήρων μέσω των 6 καναλιών του Analog to Digital Converter (ADC). Ο ADC μετατρέπει την τάση εισόδου (0V to 5V) σε ακέραιους από 0 έως 1023 (ανάλυση 10 bits). Η ανάγνωση της αναλογικής εισόδου γίνεται με τη συνάρτηση analogRead(). Η τάση αναφοράς ρυθμίζεται με τη συνάρτηση analogReference() ως εξής:
  • DEFAULT (+5V)
  • INTERNAL (built-in 1.1V)
  • EXTERNAL (Voltage to pin AREF)

 4.  Χρήσιμα βοηθήματα

  • Arduino_Starter_Kit_Manual, Mike McRoberts
  • Arduino Programming Notebook, Brian W. Evans
  • Making Things Talk, Tom Igoe
  • Arduino Learning, Arduino community

Arduino Reference, Arduino community

Tags:

Leave a Reply