Ardumotive Arduino Greek Playground
  • Home
    • About us
    • License
  • Arduino
    • Tutorials
    • Workshop
  • Raspberry Pi
  • DIY 3D Printer
  • News
    • Events >
      • Unboxing & Review
    • Blog
The 1st Arduino Playground in Greece - Open Source Hardware

Μεταβλητή Αντίσταση

Available Languages
Picture
Picture

Εισαγωγή

Picture
Για εσάς που ξεκινάτε τώρα με την ρομποτική και γενικότερα τα ηλεκτρονικά, θα έχετε αναρωτηθεί πως μπορούμε να αλλάξουμε την φωτεινότητα ενός led χωρίς να χρειάζεται να αλλάζουμε συνεχώς αντιστάσεις στο κύκλωμα μας. Είναι αρκετά απλό, με την χρήση ενός ποτενσιόμετρου ή αλλιώς μιας μεταβλητής αντίστασης.
Τα ποτενσιόμετρα είναι μεταβλητές αντιστάσεις των οποίων η τιμή της αντίστασης μπορεί να αλλάξει γυρνώντας τον μοχλό που διαθέτουν στο πάνω μέρος τους. Σίγουρα έχετε χρησιμοποιήσει ένα στο παρελθόν, π.χ. για να αλλάξετε την ένταση σε ένα στερεοφωνικό. Μεταβλητές αντιστάσεις είναι και οι ροοστάτες. Έχουν ακριβώς την ίδια χρήση, απλά αλλάζει το μέγεθος και δεν έχουν μοχλό για την αλλαγή της αντίστασης (δείτε τέρμα δεξιά στην παραπάνω εικόνα).
Τα ποτενσιόμετρα υπάρχουν σε διάφορα μεγέθη  αντίστασης. Μπορούν να δώσουν τιμές απο 0 Ω μέχρι την μέγιστη τιμή για την οποία έχουν σχεδιαστεί. Για παράδειγμα, ένα ποτενσιόμετρο 10 ΚΩ μπορεί να δώσει τιμές απο 0 Ω μέχρι μέγιστο 10 ΚΩ.
Σε αυτόν τον οδηγό θα μάθετε να χρησιμοποιείτε το ποτενσιόμετρο με και χωρίς την χρήση του Arduino για να αλλάξετε την φωτεινότητα ενός led. Θα μάθετε επίσης πως να χρησιμοποιείτε τις συναρτήσεις 
analogRead() και map().

How to use a potentiometer

Picture
Όλα τα ποτενσιόμετρα έχουν τρεις ακροδέκτες. Οι εξωτερικοί χρησιμοποιούνται για την τροφωδοσία (Vred & GND). Ο μεσαίος ακροδέκτης αποδίδει την τιμή της μεταβλητής αντίστασης ανάλογα με την θέση του μοχλού.
Ας το δούμε στην πράξη, θα χρειαστούμε:
  • ποτενσιόμετρο
  • led
  • 2 μπαταρίες τύπου AA 1.5V (ή άλλη πηγή, όχι μεγαλύτερη όμως  από 5V)
Συνδέστε την μπαταρία στους εξωτερικούς ακροδέκτες του ποτενσιόμετρου και το μεγάλο άκρο του led στον μεσαίο ακροδέκτη. Γυρίστε τον μοχλό αριστερά και δεξιά. Θα δείτε πως αλλάζει την φωτεινότητα του led.
Ας δούμε τώρα πως μπορούμε να το συνδέσουμε με το Arduino.

Τα υλικά που θα χρειαστούμε

Για το tutorial αυτό θα χρειαστούμε:
  • Arduino uno
  • Breadboard
  • Ποτενσιόμετρο(π.χ. 4.7KΩ)
  • LED
  • 220 Ω αντίσταση
Αν θέλετε για μεγαλύτερη ευκολία μπορείτε να χρησιμοποιήσετε το Breadboard Shield.

Picture

Το κύκλωμα

Picture
Οι συνδέσεις είναι αρκετά εύκολες, δείτε την παραπάνω εικόνα με το σχηματικό του κυκλώματος σε breadboard.

Ο κώδικας

Γυρνώντας τον μοχλό του ποτενσιόμετρου αλλάζουμε την τιμή της αντίστασης που αποδίδεται στον μεσαίο ακροδέκτη του. Η τιμή αυτή αποδίδει τάση μεταξύ 5V και 0V. Αν είχαμε ένα βολτόμετρο και ο μοχλός ήταν τέρμα αριστερά θα μετράγαμε 0V, ενώ αν ήταν τέρμα δεξιά θα μετράγαμε 5V (ή το αντίθετο). Στη αναλογική θύρα του arduino θα έφτανε η τιμή 0 ή 1023 αντίστοιχα.
Πως λειτουργεί ο κώδικας:
  • Διαβάζουμε την αναλογική τιμή απ' το μεσαίο pin του ποτενσιόμετρου
    -> value=analogRead(potPin)
  • Κάνουμε αντιστοίχιση αναλογικών τιμών (0-1023) σε PWM (0-255)
    -> value = map(value, 0, 1023, 0, 255);
  • Στέλνουμε την τιμή PWM στο LED
    -> 
    analogWrite(ledPin, value);
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* Learn how to use a potentiometer to fade an LED with Arduino - Tutorial
   More info and circuit schematic: http://www.ardumotive.com/arduino-tutorials/arduino-fade-led
   Dev: Michalis Vasilakis / Date: 25/10/2014                                                   */

//Constants:
const int ledPin = 9;  //pin 9 has PWM funtion
const int potPin = A0; //pin A0 to read analog input

//Variables:
int value; //save analog value

void setup(){
  //Input or output?
  pinMode(ledPin, OUTPUT); 
  pinMode(potPin, INPUT); //Optional 
}

void loop(){
  value = analogRead(potPin);          //Read and save analog value from potentiometer
  value = map(value, 0, 1023, 0, 255); //Map value 0-1023 to 0-255 (PWM)
  analogWrite(ledPin, value);          //Send PWM value to led
  delay(100);                          //Small delay
}
Κατεβάστε τον κώδικα απ' εδώ και ανοίξτε το αρχείο με το Arduino IDE.
potentiometer_tutorial.zip
File Size: 0 kb
File Type: zip
Download File

Συγχαρητήρια!

Μόλις ολοκληρώσατε το τρίτο "How to" tutorial και έχετε μάθει μέχρι τώρα πως να χρησιμοποιείτε:
  • LEDs
  • ποτενσιόμετρα
  • τις συναρτήσεις pinMode(), delay(), map(), digitalWrite(), analogWrite() και analogRead()
  • μεταβλητές και σταθερές στον κώδικας
  • την δoμή ελέγχου if
Ελπίζω να σας άρεσε, αν θέλετε μπορείτε να αφήσετε το σχόλιο σας παρακάτω.
Μπορεί να μην το ξέρετε αλλά έχετε γίνει ένας Arduino Developer!

Picture

Search Engine

Picture

Licence 

Picture

Help us to grow up!

Picture


Donate us
About us
License
Cookies policy

Visit the biggest Arduino Shop in Greece!

Picture
find us on dwrean.net
find us on Codebender
find us on Instructables
Developed and designed by Vasilakis Michalis Copyright © 2013 Ardumotive All Rights Reserved
All trademarks referenced herein are properties of their
Powered by Create your own unique website with customizable templates.
Design by DivTag Templates