Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Door Seeed StudioSeeed Volg meer door de auteur:
Over: Hallo, wij zijn applicatie-ingenieurs in Seeed. Het delen van projecten met de maker-community is geweldig. Ik hoop dat je het leuk vindt XD Seeed is de IoT-hardware-enabler die services biedt die IoT-ontwikkelaars in staat stellen om snel … Meer over Seeed Studio »
Valentijnsdag komt eraan, ontmoet je iemand die op het eerste gezicht verliefd werd?
Stap 1: Dingen die in dit project worden gebruikt
Hardware onderdelen
- Seeeduino V4.2
- Basisschild V2
- Grove - RGB LED-matrix met stuurprogramma
- Grove - Watersensor
Software-apps en online services
Arduino IDE
Stap 2: Hardwareverbinding
In dit project gebruiken we een watersensor om water te detecteren, als er water is, wordt een kloppend hart weergegeven in RGB LED Matrix.
Om dit effect te bereiken, moet u Grove - Water Sensor aansluiten op de D2-poort in Base Shield en ook Grove - RGB LED Matrix aansluiten op de I2C-poort erin. Sluit vervolgens Base Shield aan op Seeeduino, net zoals op de afbeelding hierboven.
Stap 3: Softwareprogrammering
Om RGB LED-matrix in uw programma te gebruiken, moet u de bibliotheek toevoegen aan uw Arduino IDE. De bibliotheek is te downloaden in
Seeed_RGB_LED_Matrix
Voeg na het toevoegen van de bibliotheek het headerbestand van de matrix toe aan uw code:
#include "grove_two_rgb_led_matrix.h"
Het definiëren van macro's is een goede gewoonte, het kan uw code gemakkelijker te lezen of aan te passen maken. Zo kun je macro's definiëren om aan te geven op welke poort de watersensor is aangesloten, of welke snelheid het kloppende hart moet aangeven.
#define SENSOR_PIN 2
#define INTERVAL 500
Wanneer alles klaar is, declareert u een matrixinstantie voor later gebruik.
GroveTwoRGBLedMatrixClass-matrix;
En klik hier om de afbeeldingseditor te krijgen om uw eigen afbeeldingen te maken. Als u een kleur in de kleurenbalk kiest, op stippen in het tekengebied klikt om te tekenen en op de knop Bijwerken of Invoegen onder in het tekengebied drukt, wordt uw afbeelding geconverteerd naar code en weergegeven in het vak aan de rechterkant.
Mijn afbeelding ziet er als volgt uit. U kunt die code die wordt weergegeven naar uw project kopiëren en ze vervolgens in RGB LED-matrix weergeven door te coderen.
De setup()-procedure wordt één keer uitgevoerd wanneer uw programma start, dus we initialiseren de pin van de matrix en de watersensor erin.
ongeldige setup() {
Draad.begin(); pinMode (SENSR_PIN, INPUT); WAIT_MATRIX_READY(); }
De loop()-procedure wordt herhaaldelijk uitgevoerd, dus we gebruiken deze om te detecteren of er water is of niet door de volgende code te volgen:
if (digitalRead (SENSOR_PIN) == LAAG) {
}
Wanneer de watersensor LAAG aangeeft, betekent dit dat er water is, dus het kloppend hart moet worden weergegeven in de RGB LED-matrix
for (uint8_t i = 0; i <EMOJI_COUNT(voorbeeld); ++i) {matrix.displayFrames(EMOJI(voorbeeld, i), INTERVAL, false, 1); vertragingsinterval); }
De voltooide loop()-procedure ziet er als volgt uit en u kunt de volledige code downloaden aan het einde van dit artikel.
lege lus() {
if (digitalRead (SENSOR_PIN) == LAAG) { for (uint8_t i = 0; i < EMOJI_COUNT (voorbeeld); ++i) { matrix.displayFrames (EMOJI (voorbeeld, i), INTERVAL, false, 1); vertragingsinterval); } } }
Klik op de knop Uploaden in Arduino IDE om uw programma naar Seeeduino te uploaden en probeer iets nats in de watersensor te plaatsen, kijk wat er gebeurt.
BELANGRIJK:
In deze versiefirmware van RGB LED-matrix als u uw eigen afbeelding met UNO-serie wilt maken, moet u het bestand van Arduino wijzigen. Als u mega of lotus gebruikt, is de wijziging niet nodig.
Zoek de Arduino-installatiemap Arduino\hardware\arduino\avr\libraries\Wire\src en open het Wire.h-bestand
verandering
#define BUFFER_LENGTH 32
naar binnen
#define BUFFER_LENGTH 128
Zoek vervolgens de Arduino-installatiemap Arduino\hardware\arduino\avr\libraries\Wire\src\utility en open het twi.h-bestand.
verandering
#define TWI_BUFFER_LENGTH 32
naar binnen
#define TWI_BUFFER_LENGTH 128