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

Πώς να συνδέσετε και να προγραμματίσετε ένα κουμπί

 

Πώς να συνδέσετε και να προγραμματίσετε ένα κουμπί

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

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

Στοιχεία, εξαρτήματα

  • Πλακέτα Arduino

  • Στιγμιαίο κουμπί ή Διακόπτης

  • Αντίσταση 10K ohm

  • καλώδια σύνδεσης

  • breadboard

Κύκλωμα





Συνδέστε τρία καλώδια στην πλακέτα. Τα δύο πρώτα, κόκκινο και μαύρο, συνδέονται με τις δύο μακριές κάθετες σειρές στο πλάι του breadboard για να παρέχουν πρόσβαση στην τροφοδοσία 5 volt και στη γείωση. Το τρίτο καλώδιο πηγαίνει από την ψηφιακή ακίδα 2 στο ένα πόδι του κουμπιού. Αυτό το ίδιο πόδι του κουμπιού συνδέεται μέσω μιας πτυσσόμενης αντίστασης (εδώ 10K ohm) στη γείωση. Το άλλο πόδι του κουμπιού συνδέεται με την παροχή 5 volt.

Όταν το μπουτόν είναι ανοιχτό (χωρίς πατημένο) δεν υπάρχει σύνδεση μεταξύ των δύο σκελών του κουμπιού, οπότε ο πείρος συνδέεται με τη γείωση (μέσω της συρόμενης αντίστασης) και διαβάζουμε LOW. Όταν το κουμπί είναι κλειστό (πατημένο), κάνει σύνδεση μεταξύ των δύο ποδιών του, συνδέοντας τον πείρο στα 5 βολτ, ώστε να διαβάσουμε ΥΨΗΛΟ.

Μπορείτε επίσης να συνδέσετε αυτό το κύκλωμα αντίστροφα, με μια αντίσταση έλξης να διατηρεί την είσοδο ΥΨΗΛΗ και να πηγαίνει ΧΑΜΗΛΟ όταν πατάτε το κουμπί. Αν ναι, η συμπεριφορά του σκίτσου θα αντιστραφεί, με το LED κανονικά αναμμένο και να σβήνει όταν πατάτε το κουμπί.

Εάν αποσυνδέσετε την ψηφιακή ακίδα I/O από τα πάντα, το LED μπορεί να αναβοσβήνει άτακτα. Αυτό συμβαίνει επειδή η είσοδος είναι "αιωρούμενη" - δηλαδή, θα επιστρέψει τυχαία είτε HIGH είτε LOW. Γι' αυτό χρειάζεστε μια pull-up ή pull-down αντίσταση στο κύκλωμα.

Σχημα




/*
  Button

  Turns on and off a light emitting diode(LED) connected to digital pin 13,
  when pressing a pushbutton attached to pin 2.

  The circuit:
  - LED attached from pin 13 to ground through 220 ohm resistor
  - pushbutton attached to pin 2 from +5V
  - 10K resistor attached to pin 2 from ground

  - Note: on most Arduinos there is already an LED on the board
    attached to pin 13.

  created 2005
  by DojoDave <http://www.0j0.org>
  modified 30 Aug 2011
  by Tom Igoe

  This example code is in the public domain.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/Button
*/

// constants won't change. They're used here to set pin numbers:
const int buttonPin = 2;  // the number of the pushbutton pin
const int ledPin = 13;    // the number of the LED pin

// variables will change:
int buttonState = 0;  // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
  } else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
}

Σχόλια

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

Σερβοκινητήρας

  Βασικός έλεγχος σερβομηχανισμού Θα μάθουμε πώς να ελέγχετε έναν τυπικό σερβοκινητήρα, να πηγαίνει εμπρός και πίσω κατά 180 μοίρες, χρησιμοποιώντας ένα «βρόχο for()». Αυτό γίνεται με τη βοήθεια της βιβλιοθήκης Servo, η οποία είναι προεγκατεστημένη βιβλιοθήκη στο Arduino IDE (τόσο εκτός σύνδεσης όσο και σε ηλεκτρονική έκδοση). . Αυτό γίνεται με τη βοήθεια της βιβλιοθήκης  Servo     , η οποία είναι προεγκατεστημένη βιβλιοθήκη στο Arduino IDE (τόσο εκτός σύνδεσης όσο και σε ηλεκτρονική έκδοση).      Χρειαζόμαστε τα παρακάτω:     Arduino IDE Arduino UNO  Σερβοκινητήρας 4,8V - 6V  Καλώδια βραχυκυκλωτήρα. Τυπικοί σερβοκινητήρες Οι τυπικοί σερβοκινητήρες είναι ενεργοποιητές που επιτρέπουν τον ακριβή έλεγχο της θέσης (γωνία). Χαρακτηριστικό  είναι ότι η γωνία του κινητήρα είναι 0 - 180 μοίρες. Με άλλα λόγια, μπορεί να κάνει το μισό μιας περιστροφής. Ένας τυπικός σερβοκινητήρας, όπως και άλλοι κινητήρες, είναι ουσιαστικά απλώς ένας...

Φωτοαντιστάτης

int a; // εδώ θα κρατάμε την τιμή που διαβάζουμε από τον φωτοαντιστάτη float b; // εδώ θα αποθηκεύουμε την τάση που έχει ο φωτοαντιστάτης στα άκρα του float c; // εδώ θα αποθηκεύουμε την τιμή της αντίστασης του φωτοαντιστάτη int d; // εδώ θα αποθηκεύσουμε την τιμή-όριο πάνω από την οποία θα ανάβουμε το void setup() { Serial.begin(9600); // ξεκινάμε το σειριακό μόνιτορ του Arduino IDE  d=500; // τιμή πάνω από την οποία θα ανάβουμε το LED pinMode(6, OUTPUT); // το πιν 6 θα είναι ή ΕΞΟΔΟΣ που θα συνδέσουμε το LED } void loop() { a=analogRead(A0); // διάβασε την αναλογική είσοδο A0 και βάλε την τιμή στην a  Serial.print("Τιμή: "); // απεικόνισε την τιμή της a στο σειριακό μόνιτορ του Arduino IDΕ Serial.print(a); Serial.print("\t"); b=a*5.0/1023; // υπολόγισε την τιμή της τάσης στα άκρα του φωτοαντιστάτη Serial.print("Τάση: "); Serial.print(b); // απεικόνισε την τιμή της τάσης Serial.print(" V \t"); c=b*10.0/(5-b); // υπολόγισε την αντίσταση του φωτοα...

esp32-bluetooth

  #include "BluetoothSerial.h" BluetoothSerial SerialBT; const int ledPin= 2 ; void setup () {   // put your setup code here, to run once: SerialBT . begin ( "ESP32-Bluetooth20250402Β" ) ; pinMode ( ledPin,OUTPUT ) ; } void loop () {   // put your main code here, to run repeatedly: if ( SerialBT . available ()) {   char c= SerialBT . read () ;   if ( c=='1' ){     digitalWrite ( ledPin, 1 ) ;   } else if ( c=='0' ) {     digitalWrite ( ledPin, 0 ) ;   } } }