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.5 Kippschalter

Einführung

Dies ist ein Kippschalter mit einem Metallball im Inneren. Er wird verwendet, um Neigungen eines kleinen Winkels zu erkennen.

Benötigte Komponenten

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

../_images/list_2.1.3_tilt_switch.png

Es ist definitiv praktisch, ein komplettes Kit 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.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

GPIO Extension Board

KAUFEN

Steckbrett

KAUFEN

Jumper-Kabel

KAUFEN

Widerstand

KAUFEN

LED

KAUFEN

Kippschalter

-

Schaltplan

../_images/image307.png ../_images/image308.png

Experimentelle Verfahren

Schritt 1: Schaltung aufbauen.

../_images/image169.png

Schritt 2: Zum Ordner des Codes navigieren.

cd ~/raphael-kit/nodejs/

Schritt 3: Code ausführen.

sudo node tilt_switch.js

Stellen Sie den Kippschalter vertikal auf, und die grüne LED leuchtet. Neigen Sie ihn, und die rote LED leuchtet. Stellen Sie ihn wieder vertikal auf, und die grüne LED leuchtet erneut.

Code

const Gpio = require('pigpio').Gpio;

const led1 = new Gpio(22, { mode: Gpio.OUTPUT });
const led2 = new Gpio(27, { mode: Gpio.OUTPUT });

const tilt = new Gpio(17, {
    mode: Gpio.INPUT,
    pullUpDown: Gpio.PUD_DOWN,
    edge: Gpio.EITHER_EDGE
});

tilt.on('interrupt', (level) => {
    if (level) {
        console.log("Horizontally");
    }
    else {
        console.log("Vertically");
    }
    led1.digitalWrite(level);
    led2.digitalWrite(!level);
});

Code-Erklärung

const Gpio = require('pigpio').Gpio;

const led1 = new Gpio(22, { mode: Gpio.OUTPUT });
const led2 = new Gpio(27, { mode: Gpio.OUTPUT });

const tilt = new Gpio(17, {
    mode: Gpio.INPUT,
    pullUpDown: Gpio.PUD_DOWN,
    edge: Gpio.EITHER_EDGE
});

Das Modul pigpio wird importiert und drei Objekte led1, led2, tilt erstellt. Durch das Auslesen des Pegels des IO-Ports tilt werden led1 und led2 gesteuert.

const tilt = new Gpio(17, {
    mode: Gpio.INPUT,
    pullUpDown: Gpio.PUD_DOWN,
    edge: Gpio.EITHER_EDGE
});

Erstellung eines Kippschalter-Objekts zur Steuerung des IO-Ports Gpio17, Einstellung auf Eingabemodus, Pull-Down-Widerstand (initial niedriger Pegel). Und Einstellung der Interrupt-Funktion, Modus ist EITHER_EDGE, d.h. sowohl steigende als auch fallende Flanken lösen die Interrupt-Funktion aus.

tilt.on('interrupt', (level) => {
    if (level) {
        console.log("Horizontally");
    }
    else {
        console.log("Vertically");
    }
    led1.digitalWrite(level);
    led2.digitalWrite(!level);
});

Wenn der Interrupt ausgelöst wird, wird derselbe Pegel an led1 und der gegenteilige Pegel an led2 geschrieben. Wenn der IO-Port tilt hoch ist, gibt das Terminal „Horizontal“ aus; wenn der IO-Port tilt niedrig ist, gibt das Terminal „Vertikal“ aus.

Phänomen-Bild

../_images/image170.jpeg