In dieser Anleitung erfahren Sie, wie Sie den integrierten Näherungssensor der CodeCell zum Erkennen von Objekten und Tiefengesten verwenden.
CodeCell enthält in seinem winzigen Gehäuse einen VCNL4040, der Infrarotlicht zur Objekterkennung in seiner Reichweite nutzt. Er misst die Reflexion des emittierten IR-Lichts, um die Nähe eines Objekts zu ermitteln. So können Sie reaktionsfähiges Verhalten basierend auf der Nähe erstellen. Diese Funktion ist besonders nützlich für die Erstellung interaktiver Beleuchtung, Robotik, berührungsloser Schalter oder anderer annäherungsbasierter Aktionen.
Der integrierte Sensor kann die Nähe bis zu 20 cm messen und verwendet die I2C-Kommunikation, die automatisch von unserer CodeCell-Bibliothek verarbeitet wird.
In diesem Beispiel überwacht die CodeCell kontinuierlich Näherungsdaten und schaltet eine rote LED ein, wenn ein Objekt innerhalb ihrer Näherungsschwelle erkannt wird.
Stellen Sie sicher, dass Ihre CodeCell ordnungsgemäß über USB-C verbunden ist, und folgen Sie den Kommentaren im Code, um jeden Schritt zu verstehen.
#include <CodeCell.h>
CodeCell myCodeCell;
void setup() {
Serial.begin(115200); // Set Serial baud rate to 115200. Ensure Tools/USB_CDC_On_Boot is enabled if using Serial
myCodeCell.Init(LIGHT); // Initializes light sensing, including proximity
}
void loop() {
if (myCodeCell.Run(10)) {
// Runs every 100ms to check proximity
uint16_t proximity = myCodeCell.Light_ProximityRead();
// Check if an object is within range
if (proximity > 100) {
myCodeCell.LED(0xFF, 0, 0); // Set LED to Red when proximity is detected
delay(1000); // Keep the LED on for 1 second
} else {
// No action if the object is out of range
}
}
}
100
), um die Empfindlichkeit der Näherungserkennung basierend auf Ihrer Anwendung anzupassen.myCodeCell.LED()
um mehrfarbige Reaktionen auf Annäherung zu erzeugen.Indem Sie Ihre Hand oder andere Objekte näher an den Sensor heranführen oder sich davon entfernen, können Sie dynamische Eingaben erzeugen, die verschiedene Aktionen auslösen. In diesem Beispiel werden die Näherungsdaten verwendet, um den Winkel zweier FlatFlaps zu steuern, die mit zwei DriveCells (H-Brücken-Treibern) verbunden sind.
Der Pulsweitenmodulations-(PWM)-Arbeitszyklus zweier FlatFlaps wird daher je nach Objektnähe angepasst. Bewegt sich das Objekt näher oder entfernt sich, ändert sich der Winkel der FlatFlaps . Dies stellt eine einfache, aber effektive Methode zur gestenbasierten Tiefensteuerung dar. Beachten Sie die Kommentare im Code, um die einzelnen Schritte zu verstehen:
#include <CodeCell.h>
#include <DriveCell.h>
#define IN1_pin1 2
#define IN1_pin2 3
#define IN2_pin1 5
#define IN2_pin2 6
DriveCell FlatFlap1(IN1_pin1, IN1_pin2);
DriveCell FlatFlap2(IN2_pin1, IN2_pin2);
CodeCell myCodeCell;
void setup() {
Serial.begin(115200); // Stellen Sie die serielle Baudrate auf 115200 ein. Stellen Sie sicher, dass Tools/USB_CDC_On_Boot aktiviert ist, wenn Sie die serielle Schnittstelle verwenden.
myCodeCell.Init(LIGHT); // Initialisiert die Lichterkennung
FlatFlap1.Init();
FlatFlap2.Init();
FlatFlap1.Tone();
FlatFlap2.Tone();
}
void-Schleife() {
wenn (myCodeCell.Run(10)) {
// Läuft alle 100 ms
uint16_t Nähe = myCodeCell.Light_ProximityRead();
Serial.println(Nähe);
wenn (Nähe < 100) {
// Wenn keine Nähe erkannt wird, flattern die FlatFlaps
FlatFlap1.Run(1, 100, 400);
FlatFlap2.Run(1, 100, 400);
} anders {
// Passen Sie den FlatFlap-Winkel basierend auf der Nähe an
Nähe = Nähe - 100;
Nähe = Nähe / 10;
wenn (Nähe > 100) {
Nähe = 100;
}
FlatFlap1.Drive(0, Nähe);
FlatFlap2.Drive(0, Nähe);
}
}
}
Dieses Projekt vermittelt die Grundlagen der Näherungssensorik mit CodeCell und eröffnet vielfältige interaktive Möglichkeiten. Experimentieren Sie mit dem Code, optimieren Sie die Einstellungen und entdecken Sie das CodeCell GitHub Repository für weitere Codebeispiele und technische Dokumentation!
Erfahren Sie als Erster von neuen Projekten und sichern Sie sich spannende Angebote!
© 2025 Microbots.