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.
Es ist definitiv praktisch, ein komplettes Kit zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
|---|---|---|
Raphael Kit |
337 |
Sie können sie auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
|---|---|
- |
Schaltplan
Experimentelle Verfahren
Schritt 1: Schaltung aufbauen.
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