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!
Lektion 47: Bluetooth-Verkehrsampel
Dieses Projekt ist darauf ausgelegt, eine Verkehrsampel (Rote, Gelbe, Grüne LEDs) mithilfe der Bluetooth-Kommunikation zu steuern. Der Benutzer kann einen Buchstaben (‚R‘, ‚Y‘ oder ‚G‘) von einem Bluetooth-Gerät senden. Wenn der Arduino einen dieser Buchstaben empfängt, leuchtet die entsprechende LED auf, während sichergestellt wird, dass die anderen beiden LEDs ausgeschaltet sind.
Benötigte Komponenten
Für dieses Projekt benötigen wir folgende Komponenten:
Ein ganzes Kit zu kaufen ist definitiv praktisch, hier ist der Link:
Name |
ITEMS IN THIS KIT |
LINK |
|---|---|---|
Universal Maker Sensor Kit |
94 |
Sie können sie auch einzeln über die folgenden Links kaufen.
Component Introduction |
Purchase Link |
|---|---|
Arduino UNO R3 or R4 |
|
- |
|
- |
Verkabelung
Code
App und Bluetooth-Modul Verbindung
Wir können eine App namens „Serial Bluetooth Terminal“ verwenden, um Nachrichten vom Bluetooth-Modul an den Arduino zu senden.
Installieren von Serial Bluetooth Terminal
Gehen Sie zum Google Play, um Serielles Bluetooth-Terminal herunterzuladen und zu installieren.
Bluetooth verbinden
Schalten Sie zunächst Bluetooth auf Ihrem Smartphone ein.
Gehen Sie auf Ihrem Smartphone zu den Bluetooth-Einstellungen und suchen Sie nach Namen wie JDY-31-SPP.
Klicken Sie darauf und stimmen Sie der Koppelanforderung im Popup-Fenster zu. Wenn Sie nach einem Pairing-Code gefragt werden, geben Sie bitte „1234“ ein.
Kommunikation mit dem Bluetooth-Modul
Öffnen Sie das Serial Bluetooth Terminal. Verbinden Sie sich mit „JDY-31-SPP“.
Befehl senden
Verwenden Sie die Serial Bluetooth Terminal-App, um Befehle an den Arduino über Bluetooth zu senden. Senden Sie R, um das rote Licht einzuschalten, Y für gelb und G für grün.
Code Analyse
Initialisierung und Bluetooth-Setup
// Set up Bluetooth module communication #include <SoftwareSerial.h> const int bluetoothTx = 3; const int bluetoothRx = 4; SoftwareSerial bleSerial(bluetoothTx, bluetoothRx);
Wir beginnen damit, die SoftwareSerial-Bibliothek einzuschließen, um uns bei der Bluetooth-Kommunikation zu helfen. Die TX- und RX-Pins des Bluetooth-Moduls werden dann definiert und mit den Pins 3 und 4 am Arduino verbunden. Schließlich initialisieren wir das
bleSerial-Objekt für die Bluetooth-Kommunikation.LED Pin Definitionen
// Pin numbers for each LED const int rledPin = 10; //red const int yledPin = 11; //yellow const int gledPin = 12; //green
Hier definieren wir, an welchen Arduino-Pins unsere LEDs angeschlossen sind. Die rote LED ist an Pin 10, die gelbe an 11 und die grüne an 12.
setup() Funktion
void setup() { pinMode(rledPin, OUTPUT); pinMode(yledPin, OUTPUT); pinMode(gledPin, OUTPUT); Serial.begin(9600); bleSerial.begin(9600); }
In der
setup()Funktion setzen wir die LED-Pins alsOUTPUT. Wir starten auch die serielle Kommunikation sowohl für das Bluetooth-Modul als auch für die Standard-Seriellverbindung (mit dem Computer verbunden) mit einer Baudrate von 9600.Hauptschleife() für Bluetooth-Kommunikation
void loop() { while (bleSerial.available() > 0) { character = bleSerial.read(); Serial.println(character); if (character == 'R') { toggleLights(rledPin); } else if (character == 'Y') { toggleLights(yledPin); } else if (character == 'G') { toggleLights(gledPin); } } }
Innerhalb unserer Haupt-
loop()überprüfen wir kontinuierlich, ob Daten vom Bluetooth-Modul verfügbar sind. Wenn wir Daten erhalten, lesen wir das Zeichen und zeigen es im Seriellen Monitor an. Abhängig vom empfangenen Zeichen (R, Y oder G) schalten wir die jeweilige LED mit dertoggleLights()Funktion um.Lichter umschalten Funktion
void toggleLights(int targetLight) { digitalWrite(rledPin, LOW); digitalWrite(yledPin, LOW); digitalWrite(gledPin, LOW); digitalWrite(targetLight, HIGH); }
Diese Funktion,
toggleLights(), schaltet zuerst alle LEDs aus. Nachdem sichergestellt wurde, dass sie alle aus sind, schaltet sie die angegebene Ziel-LED ein. Dies stellt sicher, dass jeweils nur eine LED eingeschaltet ist.