Μετάβαση στο κύριο περιεχόμενο

ADC στο Arduino (Αναλογικές είσοδοι)

 

ADC στο Arduino

ADC στο Arduino

Εισαγωγή στο ADC

  • Όταν διασυνδέουμε αισθητήρες με τον μικροελεγκτή, η έξοδος του αισθητήρα πολλές φορές είναι αναλογικής φύσης. Αλλά ο μικροελεγκτής επεξεργάζεται ψηφιακά σήματα.
  • Ως εκ τούτου, χρησιμοποιούμε ADC μεταξύ του αισθητήρα και του μικροελεγκτή. Μετατρέπει ένα αναλογικό σήμα σε ψηφιακό και το δίνει στον μικροελεγκτή.
  • Υπάρχουν πολλές εφαρμογές του ADC όπως σε μια βιομετρική εφαρμογή, παρακολούθηση περιβάλλοντος, ανίχνευση διαρροής αερίου κ.λπ.

Το Arduino Uno διαθέτει 6 κανάλια ADC 0n-board που μπορούν να χρησιμοποιηθούν για την ανάγνωση αναλογικού σήματος στην περιοχή 0-5V. 
Διαθέτει ADC 10-bit που σημαίνει ότι θα δώσει ψηφιακή τιμή στην περιοχή από 0 – 1023 (2^10). Αυτό ονομάζεται ανάλυση που υποδεικνύει τον αριθμό των διακριτών τιμών που μπορεί να παράγει στο εύρος των αναλογικών τιμών.

Υπολογισμός τιμής ψηφιακής εξόδου

Ανάλυση ADC = Vref / ((2^n) - 1)

Ψηφιακή έξοδος = Vin / Ανάλυση

Οπου,

Vref - Η τάση αναφοράς είναι η μέγιστη τιμή που μπορεί να μετατρέψει το ADC.

Για να κρατήσουμε τα πράγματα απλά, ας θεωρήσουμε ότι το Vref είναι 5V,

           Για 0 Vin, ψηφιακή τιμή o/p = 0

           Για 5 Vin, ψηφιακή τιμή o/p = 1023 (10-bit)

           Για 2,5 Vin, ψηφιακή τιμή o/p = 512 (10-bit)

ADC Pins του Arduino Uno

Διάγραμμα pin ADC Arduino

Αναλογικές λειτουργίες για Arduino ADC

  • analogRead (pin)

Αυτή η λειτουργία χρησιμοποιείται για την ανάγνωση αναλογικής τιμής από καθορισμένη αναλογική ακίδα.

pin- αριθμός αναλογικής ακίδας που θέλουμε να διαβάσουμε

returns- ψηφιακή τιμή 0 – 1023

e.g. analogRead(A0) //read analog value at A0 channel
  • analogReference (type)

Αυτή η λειτουργία χρησιμοποιείται για τη διαμόρφωση της τάσης αναφοράς που χρησιμοποιείται για την αναλογική είσοδο.

 

Ας δούμε πώς να διαβάζετε τις αναλογικές τιμές χρησιμοποιώντας το Arduino

Ας γράψουμε ένα πρόγραμμα για την ανάγνωση ποικίλης αναλογικής τιμής που δημιουργείται χρησιμοποιώντας ποτενσιόμετρο που είναι συνδεδεμένο στο αναλογικό κανάλι A0. Εμφανίστε την ψηφιακή τιμή στη σειριακή οθόνη που πήραμε από το Arduino ADC.

 

Διασύνδεση ποτενσιόμετρου με Arduino Uno

Διασύνδεση POT Arduino ADC
Συνδεδεμένο ποτενσιόμετρο Arduino ADC Channel

 

Κωδικός Arduino για ανάγνωση αναλογικής τιμής

int sensorPin = A0;  // input pin for the potentiometer
int digitalValue = 0;// variable to store the value coming from the sensor

void setup() {
  Serial.begin(9600);
}

void loop() {
  digitalValue = analogRead(sensorPin);// read the value from the analog channel
  Serial.print("digital value = ");
  Serial.println(digitalValue);        //print digital value on serial monitor
  delay(1000);
}

 

Έξοδος σε σειριακή οθόνη

εμφάνιση εξόδου ADC

 

Σημείωση: Εάν δεν είναι συνδεδεμένο τίποτα στο αναλογικό κανάλι εισόδου, τότε η συνάρτηση analogRead () επιστρέφει την θορυβώδη κυμαινόμενη τιμή.

Διαβάστε την Αναλογική τάση χρησιμοποιώντας το Arduino Uno

Καθώς το ADC παρέχει ψηφιακή έξοδο που είναι ανάλογη με την αναλογική τιμή. Για να γνωρίζουμε τι είναι η αναλογική τιμή εισόδου, πρέπει να μετατρέψουμε αυτήν την ψηφιακή τιμή πίσω σε αναλογική μέσω προγράμματος. Για να μετατρέψετε αυτήν την ψηφιακή τιμή σε αναλογική τάση εισόδου,

Aout = ψηφιακή τιμή * (Vref/2^n – 1)

π.χ. ψηφιακή τιμή = 512 και το ADC είναι 10-bit με 5V Vref. Όμως, θέλουμε να ξέρουμε ότι για ποια αναλογική τάση δίνει αντίστοιχη ψηφιακή τιμή. Τότε,

Aout = 512 * (5 V / 1023)

          = 2,5 V

 

Κώδικας ανάγνωσης αναλογικής τάσης χρησιμοποιώντας Arduino

int sensorPin = A0;   // select the input pin for the potentiometer
int digitalValue = 0;  // variable to store the value coming from the sensor
float analogVoltage = 0.00;

void setup() {
  Serial.begin(9600);
}

void loop() {
  digitalValue = analogRead(sensorPin);// read the value from the analog channel
  Serial.print("digital value = ");
  Serial.print(digitalValue);        //print digital value on serial monitor
  //convert digital value to analog voltage
  analogVoltage = (digitalValue * 5.00)/1023.00;
  Serial.print("  analog voltage = ");
  Serial.println(analogVoltage);
  delay(1000);
}

 

Έξοδος σε σειριακό παράθυρο

οθόνη αναλογικής τάσης εισόδου


Σχόλια

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

PWM στο Arduino

  PWM στο Arduino Εισαγωγή στο PWM Η διαμόρφωση πλάτους παλμού (PWM)   είναι μια τεχνική με την οποία το πλάτος ενός παλμού μεταβάλλεται διατηρώντας τη συχνότητα του κύματος σταθερή. Είναι μια μέθοδος παραγωγής αναλογικού σήματος με χρήση ψηφιακής πηγής. Γενιά PWM   Ένα σήμα PWM αποτελείται από δύο κύρια στοιχεία που καθορίζουν τη συμπεριφορά του: έναν  κύκλο λειτουργίας  και μια  συχνότητα  .   Τι είναι ο κύκλος λειτουργίας του σήματος Η περίοδος ενός παλμού αποτελείται από έναν  κύκλο  ON   (5V) και έναν    κύκλο  OFF  (0V). Το κλάσμα για το οποίο το σήμα είναι ενεργοποιημένο για μια περίοδο είναι γνωστό ως   κύκλος λειτουργίας  . Π.χ.  Ένας παλμός με περίοδο 10 ms θα παραμείνει ενεργός (υψηλό) για 2 ms. Επομένως, ο κύκλος λειτουργίας θα είναι D = 2ms / 10ms = 20%   Μέσω της τεχνικής PWM, μπορούμε να ελέγξουμε την ισχύ που παρέχεται στο φορτίο χρησιμοποιώντας το σήμα ON-O...

Tmp36GZ θερμόμετρο με LCD οθόνη

 Tmp36GZ με LCD οθόνη // Define to which pin of the Arduino the output of the TMP36 is connected: #include <LiquidCrystal_I2C.h> // Look for LiquidCrystal I2C library by Marco Schwartz LiquidCrystal_I2C lcd ( 0x 27 , 16 , 2 ) ;  // set the LCD address to 0x3F for a 16 chars and 2 line display #define sensorPin A0 void setup () {   // Begin serial communication at a baud rate of 9600:   Serial . begin ( 9600 ) ;   lcd . init () ;   lcd . clear () ;           lcd . backlight () ;      // Make sure backlight is on     // Print a message on both lines of the LCD.   lcd . setCursor ( 2 , 0 ) ;   //Set cursor to character 2 on line 0   lcd . print ( "Hello world!" ) ;     lcd . setCursor ( 2 , 1 ) ;   //Move cursor to character 2 on line 1   lcd . print ( "LCD Tutorial" ) ; } void loop () {   // Get a reading from the temperature sensor:   int reading ...

Πώς να χρησιμοποιήσετε ένα Breadboard

  Πώς να χρησιμοποιήσετε ένα Breadboard Το breadboard έχει εσωτερικές συνδέσεις μεταξύ των οπών του. Μερικές κάθετες συνδέσεις και μερικές οριζόντιες συνδέσεις. Κανονικά, χρησιμοποιείτε τις κολώνες στα πλάγια για να συνδέσετε το τροφοδοτικό σας. Και χρησιμοποιείτε τις σειρές στη μέση για να συνδέσετε τα στοιχεία σας. Στήλες Τροφοδοτικού Είναι σύνηθες να χρησιμοποιείτε τις στήλες στα αριστερά και δεξιά για τη σύνδεση του τροφοδοτικού. Αυτές οι στήλες συνδέονται κάθετα. Έτσι, εάν συνδέσετε 5 βολτ στην επάνω οπή μιας από τις πλευρικές κολώνες, θα έχετε 5 βολτ σε όλες τις οπές αυτής της στήλης. Χρησιμοποιήστε τις στήλες που επισημαίνονται με κόκκινη γραμμή για το συν και τη στήλη με μπλε γραμμή για το μείον. Τέλος φόρμας Σημείωση: Μερικές μεγαλύτερες πλάκες   breadboard χωρίζονται στα δύο έτσι ώστε το πάνω μισό να αποσυνδεθεί από το κάτω μισό. Αυτό υποδεικνύεται από τις κατακόρυφες μπλε και κόκκινες γραμμές που χωρίζονται στα δύο.   Περιοχή Συστατικού Σ...