Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

2.1.1 Knopf

Einführung

In diesem Projekt lernen wir, wie wir eine LED mit einem Knopf ein- oder ausschalten können.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

../_images/list_2.1.1_Button.png

Es ist definitiv praktisch, ein gesamtes Set zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Raphael Kit

337

Raphael Kit

Sie können sie auch einzeln über die untenstehenden Links kaufen.

KOMPONENTENVORSTELLUNG

KAUF-LINK

GPIO Extension Board

KAUFEN

Steckbrett

KAUFEN

Jumper-Kabel

KAUFEN

Widerstand

KAUFEN

LED

KAUFEN

Taste

KAUFEN

Schaltplan

Verwenden Sie einen normalerweise offenen Knopf als Eingang für den Raspberry Pi. Die Verbindung ist im folgenden Schaltplan dargestellt. Wenn der Knopf gedrückt wird, wechselt GPIO18 auf ein niedriges Niveau (0V). Über die Programmierung können wir den Zustand von GPIO18 erkennen. Das bedeutet, wenn GPIO18 auf ein niedriges Niveau wechselt, wurde der Knopf gedrückt. Sie können den entsprechenden Code ausführen, wenn der Knopf gedrückt wird, und dann leuchtet die LED auf.

Bemerkung

Der längere Pin der LED ist die Anode und der kürzere ist die Kathode.

../_images/image302.png ../_images/image303.png

Experimentelle Verfahren

Schritt 1: Bauen Sie den Schaltkreis.

../_images/image152.png

Schritt 2: Öffnen Sie die Code-Datei.

cd ~/raphael-kit/c/2.1.1/

Bemerkung

Wechseln Sie mit cd zum Pfad des Codes in diesem Experiment.

Schritt 3: Kompilieren Sie den Code.

gcc 2.1.1_Button.c -lwiringPi

Schritt 4: Führen Sie die ausführbare Datei aus.

sudo ./a.out

Nachdem der Code ausgeführt wurde, drücken Sie den Knopf, die LED leuchtet auf; andernfalls schaltet sie sich aus.

Bemerkung

Wenn es nach dem Start nicht funktioniert oder eine Fehlermeldung erscheint: "wiringPi.h: Datei oder Verzeichnis nicht gefunden", ziehen Sie bitte Installieren und Überprüfen von WiringPi zu Rate.

Code

#include <wiringPi.h>
#include <stdio.h>

#define LedPin      0
#define ButtonPin   1

int main(void){
    // When initialize wiring failed, print message to screen
    if(wiringPiSetup() == -1){
        printf("setup wiringPi failed !");
        return 1;
    }

    pinMode(LedPin, OUTPUT);
    pinMode(ButtonPin, INPUT);
    digitalWrite(LedPin, HIGH);

    while(1){
        // Indicate that button has pressed down
        if(digitalRead(ButtonPin) == 0){
            // Led on
            digitalWrite(LedPin, LOW);
        //  printf("...LED on\n");
        }
        else{
            // Led off
            digitalWrite(LedPin, HIGH);
        //  printf("LED off...\n");
        }
    }
    return 0;
}

Code-Erklärung

#define LedPin      0

Pin GPIO17 auf dem T_Extension Board entspricht dem GPIO0 in der wiringPi.

#define ButtonPin   1

ButtonPin ist mit GPIO1 verbunden.

pinMode(LedPin, OUTPUT);

Legen Sie LedPin als Ausgang fest, um ihm einen Wert zuzuweisen.

pinMode(ButtonPin, INPUT);

Legen Sie ButtonPin als Eingang fest, um den Wert von ButtonPin zu lesen.

while(1){
        // Indicate that button has pressed down
        if(digitalRead(ButtonPin) == 0){
            // Led on
            digitalWrite(LedPin, LOW);
        //  printf("...LED on\n");
        }
        else{
            // Led off
            digitalWrite(LedPin, HIGH);
        //  printf("LED off...\n");
        }
    }

if (digitalRead (ButtonPin) == 0) : Überprüfen Sie, ob der Knopf gedrückt wurde. Führen Sie digitalWrite(LedPin, LOW) aus, wenn der Knopf gedrückt ist, um die LED einzuschalten.

Die Funktion digitalRead() dient zum Lesen von HIGH (Hochpegel) oder LOW (Tiefpegel) des Eingabeparameterpins. Sie gibt 1 zurück, wenn der Pin HIGH ist und gibt 0 zurück, wenn der Pin LOW ist.

Die Funktion digitalWrite() dient dazu, HIGH (Hochpegel) oder LOW (Tiefpegel) an den Eingabeparameterpin zu schreiben.

Phänomen-Bild

../_images/image153.jpeg