Weihnachten 2025 – Animierter Schneewürfel - Teil 2 - AZ-Delivery

   In het tweede deel van het kerstproject rusten we het apparaat uit met een mp3-spelermodule, een versterker en twee miniluidsprekers. Er is ook een WS2812B LED-display toegevoegd om felicitaties weer te geven. Indien gewenst kunnen er ook afbeeldingen worden toegevoegd. Om dit te doen, moet de schets worden gewijzigd. Ten slotte voegen we vier ventilatoren toe om het effect van een sneeuwstorm te creëren. Om dit te doen, moeten kleine stukjes veren uit een plumeau worden toegevoegd, omdat ze weinig wegen en met een lichte luchtstroom in de urn bewegen.

   Indien gewenst kan de transparante urn achterwege blijven, waardoor het hele project er ook anders uitziet als de ventilatoren niet in gebruik zijn. Laten we beginnen met het ontwikkelen van dit tweede deel van het project.

 

De materialen die nodig zijn voor het gehele project zijn:

 

De benodigde software is:

        Arduino-IDE

        Adafruit GFX-bibliotheek (Arduino Adafruit_GFX.h)

        Adafruit NeoPixel-bibliotheek (Arduino Adafruit_NeoPixel.h)

        SoftwareSeriële bibliotheek (SoftwareSeriële.h)

        Adafruit_NeoMatrix-bibliotheek (Adrafruit_NeoMatrix.h)                                                                                                    

        DFPlayer Mini-bibliotheek van DFRobot (DFRobotDFPlayerMini.h)

        SPI.h-bibliotheek (inbegrepen in de Arduino IDE)

        001.mp3

        002.mp3

        003.mp3

        sneeuw_cube_animated_part_2.ino

 

De tekeningen van de personages zijn:

      Voor bomen.jpg

       Santa.jpg

      Stadt.jpg

      Zug.jpg

      Afmetingen onderdelen


Schakelschema en beschrijving van de modules die in het tweede deel van het project worden gebruikt

Tekening 2 – Sneeuwkubustekening deel 2


Projectmontage

   Om de projectstructuur compleet te maken is er een achterpaneel toegevoegd om de 256 LED WS2812B matrix en alle elektronica op deze achterkant van het paneel te installeren. Om het LED-paneel en een doorschijnend paneel (in dit geval een wit vel papier) te installeren, zijn er rails bevestigd waarin de randen van het LED-paneel en het doorschijnende paneel worden gestoken. De afmetingen van de nieuw toegevoegde plaat worden weergegeven in de volgende afbeelding. Ook de tekening van het onderste deel van het platform van de ventilatoren en de schachten toegevoegd.

 

Figuur 1 – Afmetingen WS2812B-paneel

 

 

Afbeelding 2 - WS2812B-paneel

 

 

Beschrijving van de schets

   Nadat we de beugel voor het installeren van de WS2812B LED-matrix en elektronische componenten hebben bevestigd, beginnen we met het analyseren van de schets. Aan het begin van elke schets moeten eerst de bibliotheken worden ingevoegd die nodig zijn om de modules te gebruiken. In dit geval zijn er drie bibliotheken nodig om het LED-paneel in dit project te gebruiken. De volgende drie bibliotheken zijn vereist om tekst weer te geven. De bibliotheek Adafruit_GFX.h is nodig om primitieve afbeeldingen zoals lijnen, cirkels, enz. weer te geven. Omdat ons LED-paneel een LED-raster is, hebben we ook de bibliotheek nodig Adafruit_NeoMatrix.h om een groep LED's op het paneel te kunnen besturen. De laatste bibliotheek die we opnemen is Adafruit_NeoPixel.h, wat nodig is om de drie interne LED's van elke LED te besturen.

 

#include <Adafruit_GFX.h>

#include <Adafruit_NeoMatrix.h>

#include <Adafruit_NeoPixel.h>

 

   Het volgende Bibliotheken moeten worden toegevoegd: <SoftwareSerieel.h>, waardoor de microcontroller elke digitale pin kan inschakelen voor seriële communicatie. Dit is nodig om de MP3-afspeelmodule en de seriële console te gebruiken om berichten weer te geven bij het opstarten. <DFRobotDFPlayerMini.h> is de bibliotheek die de functies mogelijk maakt die nodig zijn om de MP3-spelermodule te gebruiken.

 

#include <SoftwareSerieel.h>

#include <DFRobotDFPlayerMini.h>

 

      Vervolgens moet een object worden geïmplementeerd om de MP3-afspeelmodule te gebruiken. Dit is wat het voorwerp is mijnSoftwareSerial uit de bibliotheek <SoftwareSerieel.h> geïmplementeerd om aan de microcontroller aan te geven welke digitale pinnen moeten worden gebruikt voor seriële communicatie met de module. In dit project wordt digitale pin 15 van de microcontroller gebruikt om gegevens van de MP3-module te ontvangen en wordt digitale pin 14 gebruikt om gegevens naar de MP3-module te verzenden. Om de methoden en bedieningsopdrachten van de MP3-module te gebruiken, zoals: B. het volume aanpassen of een MP3-bestand afspelen, moet het object mijnDFPlayer uit de bibliotheek <DFRobotDFPlayerMini.h> gemaakt.

 

SoftwareSerieel mijnSoftwareSerial(15, 14);

DFRobotDFPlayerMini mijnDFPlayer;

 

   De volgende regel creëert een eerste constante met het aantal LED's (256) van de WS2812B LED-matrix en een tweede om aan te geven dat de datalijn van de matrix is aangesloten op poort 16 van de microcontroller. Deze twee constanten hebben we nodig om met de LED-matrix te kunnen werken.

 

#define NUM_LEDS 256

#define PIN-code 16

 

   Om de module met 4 relais te kunnen aansturen, moet de microcontroller weten op welke poorten de individuele besturingslijnen van de relaismodule zijn aangesloten. Om dit te doen, worden 3 constanten aangemaakt, waarvan de waarden moeten overeenkomen met de nummers van de poorten waarop de besturingslijnen van de relaismodule zijn aangesloten.

 

#define VENTILATOR_1 17

#define VENTILATOR_2 18

#define VENTILATOR_3 19

 

   Er wordt vervolgens een object met de naam gemaakt matrix uit de bibliotheek Adafruit_NeoMatrix.h geïmplementeerd om tekst op het LED-paneel weer te geven. De argumenten of parameters die moeten worden opgegeven, zijn:

        Aantal LED's in de breedte en hoogte van het paneel (16 LED's in de breedte en 16 LED's in de hoogte) en de pincode van de microcontroller waarop de datalijn van het paneel is aangesloten.

        Locatie van LED-nummer 0 op het bedieningspaneel (het aantal LED's is 256, maar de nummering begint bij 0 en eindigt bij 255). LED 0 bevindt zich rechtsonder op het bedieningspaneel.

        Rangschikking van LED's in de matrix en opeenvolgende nummering: De LED's zijn zo gerangschikt in kolommen dat wanneer LED-nummer 0 zich in de rechter benedenhoek bevindt, LED-nummer 1 de bovenste is. Wanneer LED nummer 15 (eerste kolom en laatste LED) wordt bereikt, bevindt de volgende LED (nummer 16) zich links ervan, d.w.z. h. de nummering loopt zigzagvormig als een slang.

        De opstelling en bedrading van de drie interne LED's, de interne opstelling is groen, rood en blauw (NEO_GRB). De laatste parameter is de werkfrequentie (800 KHz).

 

Adafruit_NeoMatrix-matrix = Adafruit_NeoMatrix(16, 16, Pincode,

                 NEO_MATRIX_BOTTOM + NEO_MATRIX_RIGHT +

                 NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,

                 NEO_GRB + NEO_KHZ800);

 

   Dan moet de variabele x kan worden aangemaakt waarbij eerst het aantal LED’s dat het paneel in de breedte heeft wordt opgeslagen. Deze waarde wordt ingesteld met het commando matrix.breedte() bepaald. Deze gegevens zijn eerder gemaakt toen het object werd gemaakt matrix ingevoerd. Deze variabele bevindt zich in een voorwaarde als wordt gebruikt om het aantal kolommen te tellen dat naar links moet worden verplaatst om een ​​bericht op het paneel weer te geven. Deze voorwaarde bevindt zich in een lus doe-terwijl. De wijze waarop de tekst wordt gepresenteerd, wordt later uitgelegd.

 

int x = matrix.breedte();

 

   U kunt het object implementeren foto de la libreria Adafruit_NeoPixel.h met het aantal LED's van het paneel, de pin van verbinding met de microcontroller, de plaatsing en kabel van de drie interne LED's, is de interne plaatsing van de LED's groen, rood en blauw (NEO_GRB).  De uiteindelijke waarde van de argumenten is de werkfrequentie (800 KHz). Deze objecten en definities van posterieure kleuren zijn nodig als ze afbeeldingen in het LED-paneel vertegenwoordigen, maar ze hoeven niet alleen door tekst te worden weergegeven.

 

Adafruit_NeoPixel afbeelding(NUM_LEDS, Pincode, NEO_GRB + NEO_KHZ800);

 

   Er wordt een reeks kleuren gedefinieerd, ook al worden ze niet allemaal gebruikt.

 

uint32_t p_rood = foto.Kleur(150,0,0);

uint32_t p_groen = foto.Kleur(0,150,0);

uint32_t p_blauw = foto.Kleur(0,0,150);

uint32_t p_geel = foto.Kleur(150,150,0);

uint32_t p_paars = foto.Kleur(150,0,150);

uint32_t p_licht_blauw = foto.Kleur(0,150,150);

uint32_t p_wit = foto.Kleur(150,150,150);

uint32_t p_kastanjebruin = foto.Kleur(150,51,0);

uint32_t p_zwart = foto.Kleur(0,0,0);

 

   De lijnen die in het eerste deel van het project zijn gemaakt en die de definitie vertegenwoordigen van de microcontroller-pinnen waarop de contacten van de L298N-module die elke motor aanstuurt, zullen worden aangesloten, blijven ongewijzigd.

 

#define enable_Santa_motor 7

#define aansluiting_1_Kerstman_motor 5

#define aansluiting_2_Kerstman_motor 6

 

#define enable_train_motor 2

#define verbinding_1_trein_motor 3

#define verbinding_2_trein_motor 4

 

   Ook blijven de constanten van de zes LED's behouden, die het nummer krijgen van de poort van de microcontroller waarop ze zijn aangesloten.

 

#define led_house_1 8

#define led_huis_2 9

#define led_house_3 10

#define led_house_4 11

#define led_house_5 12

#define led_house_6 13          

 

   Nadat de bibliotheken zijn toegevoegd en de variabelen die nodig zijn voor dit tweede deel van het project zijn gedefinieerd, moeten de beginvoorwaarden van de toegevoegde modules worden geïnitialiseerd en ingesteld. Dit gebeurt in de methode opstelling(), waarmee de beschrijving begint van de code die het bevat.

   Eerst moeten de parameters van het LED-paneel worden geïnitialiseerd en geconfigureerd zodat er tekst op kan worden weergegeven. Het paneel moet door het object worden geïnitialiseerd matrix met matrix moet worden geïnitialiseerd. beginnen(); De tekst moet beginnen met de weergave aan de rechterkant van het paneel en eindigen aan de linkerkant met behulp van de opdracht matrix gebruik. setTextWrap(false.false) voorkomt dat de tekst die aan de linkerkant verschijnt, weer aan de rechterkant verschijnt. Met het commando wordt de helderheid van de LED's aangepast matrix.setHelderheid(7) ingesteld op een waarde van 7 om de tekst weer te geven. Dit is een lage helderheid. De beginkleur van de tekst wordt ingesteld met het commando matrix.setTextColor(matrix.Kleur(Rood, Groen, Blauw)) , omdat zowel de rode als de groene LED de waarden weergeven 0 zijn volledig uitgeschakeld en de blauwe LED met de waarde 254 is ingeschakeld.

 

matrix.beginnen();

matrix.setTextWrap(false.false);

matrix.setHelderheid(7);

matrix.setTekstKleur(matrix.Kleur(0, 0, 254));

 

   Als u afbeeldingen op het LED-paneel wilt weergeven, initialiseert u het object foto met foto. beginnen()om indien gewenst afbeeldingen op het LED-paneel weer te geven. In dit project is hiervoor niet gekozen, maar het wordt in deze methode geïnitialiseerd en als u afbeeldingen wilt weergeven, hoeft u alleen maar de vereiste code toe te voegen om de afbeelding in de methode weer te geven lus() toevoegen. Het eindigt met een pauze van 2 seconden.

 

foto.beginnen();

vertraging(2000);

 

   Vervolgens moet de MP3-afspeelmodule worden geïnitialiseerd en met de microcontroller communiceren mijnSoftwareSerial.beginnen(9600), waarbij 9600 de gegevensoverdrachtsnelheid in baud is. Bovendien vindt de communicatie met de seriële monitor plaats via Serieel.begin (115200) met een snelheid van 115200 baud (de snelheid moet rechtsonder op de seriële monitor worden geselecteerd wanneer de console wordt geopend) om de berichten over de initialisatiestatus of fouten van de MP3-module weer te geven. Met de lijn Serieel.println („Kerstmis 2025: Sneeuwbal”) er wordt een bericht naar de seriële console verzonden. Om dit bericht te bekijken, is het erg belangrijk om de snelheidswaarde in de seriële console te wijzigen.

 

mijnSoftwareSerial.beginnen(9600);

Serieel.beginnen(115200);

Serieel.println ("Kerstmis 2025: Sneeuwbal");

 

   Het volgende dat u in de code moet controleren, is de initialisatie van de MP3-module. Dit gebeurt met behulp van een voorwaardelijke verklaring als gebruikt. In de instructie als De code tussen de accolades wordt uitgevoerd als de voorwaarde van de parameter waar is. In dit geval controleert of de MP3-module om een of andere reden niet is geïnitialiseerd. De genegeerde initialisatie was met het symbool ! geschreven. Dit symbool wordt gebruikt als ontkenningsmethode, zodat als de module niet wordt geïnitialiseerd, de voorwaarde waar is en de code tussen de accolades wordt uitgevoerd en de seriële console rapporteert om de verbindingen en het plaatsen van de microSD-kaart te controleren. Als de MP3-afspeelmodule correct is geïnitialiseerd, wordt niet aan de voorwaarde voldaan en wordt de hierboven beschreven code niet uitgevoerd. De methode opstelling () bleef via de seriële console met de lijn lopen Serieel.println(F("Correcte DFPlayer-initialisatie.")) om te melden dat de MP3-afspeelmodule correct is geïnitialiseerd.

 

mijnSoftwareSerial.beginnen(9600);

Serieel.beginnen(115200);

Serieel.println ("Kerstmis 2025: Sneeuwbal");

 

als (!mijnDFPlayer.beginnen(mijnSoftwareSerial)) {

         Serieel.println(F("Fout bij het initialiseren van de mp3-module:"));

         Serieel.println(F("1. Controleer de aansluitingen!"));

         Serieel.println(F("2. Plaats het microSD-geheugen!"));

         terwijl(waar){

                 vertraging(0);

         }

}

 

Serieel.println(F("Correcte DFPlayer-initialisatie."));

 

  Na de initialisatiecode van de MP3-module worden de pinnen van de microcontroller die worden gebruikt om de motoren aan te sturen geconfigureerd. Ze moeten worden gebruikt als uitgangssignaalpinnen pinModus(pincode, UITGANG)  geconfigureerd omdat ze signalen naar de pinnen van de L298N-regelmodule moeten sturen.

 

pinModus(schakel_Santa_motor in,UITGANG);

pinModus(aansluiting_1_Kerstman_motor,UITGANG);

pinModus(aansluiting_2_Kerstman_motor,UITGANG);

 

pinModus(inschakelen_trein_motor,UITGANG);

pinModus(aansluiting_1_trein_motor,UITGANG);

pinModus(aansluiting_2_trein_motor,UITGANG);

 

   De pinnen van de microcontroller waarop de LED's voor de binnenverlichting van de huizen zijn aangesloten, moeten ook als uitgangssignaalpinnen worden geconfigureerd, omdat ze spanning moeten leveren om de LED's te laten oplichten.

pinModus(led_huis_1,UITGANG);

pinModus(led_huis_2,UITGANG);

pinModus(led_huis_3,UITGANG);

pinModus(led_huis_4,UITGANG);

pinModus(led_huis_5,UITGANG);

pinModus(led_huis_6,UITGANG);

 

   Om de methode te programmeren opstelling() Om het geheel compleet te maken, hoeft u alleen nog maar de poorten van de microcontroller te configureren waarop de relaismodule is aangesloten die het in- en uitschakelen van de ventilatoren regelt. Dit moeten uitgangen zijn en de beginstatus moet hoog zijn, waarbij 5Vdc naar de relaismodule wordt gestuurd.

 

pinModus(FAN_1, UITGANG);

digitaalSchrijf(FAN_1, HOOG);

pinModus(FAN_2, UITGANG);

digitaalSchrijf(FAN_2, HOOG);

pinModus(FAN_3, UITGANG);

digitaalSchrijf(FAN_3, HOOG);

 

   Nadat de beginvoorwaarden van alle modules en componenten van het project zijn geconfigureerd, moet nu de methode worden geconfigureerd lus() zo geprogrammeerd worden dat het gehele systeem de gewenste bewegingen, geluiden en lichtmeldingen uitvoert. De eerste regel toont het volume van de geluidsweergave mijnDFPlayer.volume(20) ingesteld op een waarde van 20 van de 30, wat resulteert in het bestand met de naam 001.mp3 mijnDFPlayer.spelen (001) gespeeld. Dit bestand moet worden opgeslagen op de microSD-kaart die in de MP3-afspeelmodule is geplaatst en zal het treinfluitgeluid precies afspelen wanneer de trein in beweging komt. Met de lijn vertraging(1700) stelt de tijd in tussen de voorbereiding van het audiobestand en het afspelen ervan.

 

mijnDFPlayer.volume(20);

mijnDFPlayer.spelen(001);

vertraging(1700);

 

   Vervolgens wordt de beweging van de trein geprogrammeerd met behulp van de lijn analoogSchrijven(pincode, waarde) het toerental van de motor wordt ingesteld met een analoge waarde waarvan de maximale waarde 244 is. De twee worden gebruikt voor de draairichting van de motor digitaalSchrijf(pincode, staat) gedefinieerde lijnen worden gebruikt. Als de motor in de tegenovergestelde richting van de gewenste richting draait, kan dit worden gecorrigeerd door de status van deze twee lijnen te wijzigen of door de kabels tussen de L298N-module en de motor te verwisselen.

 

analoogSchrijven(inschakelen_trein_motor,128);

digitaalSchrijf(aansluiting_1_trein_motor,HOOG);

digitaalSchrijf(aansluiting_2_trein_motor,LAAG);

 

   Om de LED te laten branden, kunt u de positie van de pin op de aansluiting veranderen. Normaal gesproken heeft het een spanning op een microcontrollerbord of is het reinicia, de beginstatus van de poorten is laag (LAAG), deze neemt af, geen lagere spanning, maar het is noodzakelijk om de toestand naar hoog (HOOG) te veranderen om een spanning van 5 Vcc te verkrijgen. Het wordt gerealiseerd met het commando digitalWrite(pin_number, STATE). Als de LED's worden uitgeschakeld, worden ze gerealiseerd in een pauze van 1 seconde.

 

digitaalSchrijf(led_huis_1, HOOG);

vertraging(1000);

digitaalSchrijf(led_huis_2, HOOG);

vertraging(1000);

digitaalSchrijf(led_huis_3, HOOG);

vertraging(1000);

digitaalSchrijf(led_huis_4, HOOG);

vertraging(1000);

digitaalSchrijf(led_huis_5, HOOG);

vertraging(1000);

digitaalSchrijf(led_huis_6, HOOG);

vertraging(1000);

 

   Als alle huizen verlicht zijn, moet de Kerstman door het dorp gaan lopen, maar daarvoor moet het luiden van de rendierklokken te horen zijn, waarvoor het volume van het geluid moet worden aangepast myDFPlayer is ingesteld op een waarde van 25 van de 30. volume(25), dan wordt het bestand met de naam 002.mp3 meegeleverd mijnDFPlayer. spelen(002). Dit bestand moet worden opgeslagen op de microSD-kaart die in de MP3-afspeelmodule is geplaatst en reproduceert het geluid van de klokken. Met de lijn vertraging(800) stelt de tijd in tussen de voorbereiding van het audiobestand en het afspelen ervan.

 

mijnDFPlayer.volume(25);

mijnDFPlayer.spelen(002);

vertraging(800);

 

   Dan begint de Kerstman rond het dorp te draaien wanneer de lijn begint analoogSchrijven(pincode, waarde) wordt uitgevoerd. De snelheid van de motor wordt ingesteld met een analoge waarde, waarvan de maximale waarde 244 is, zoals al vermeld in het eerste deel. Het toerental was te hoog, maar als de waarde van deze variabele lager is dan 128 zal de motor niet draaien. Daarom is besloten om een 5 Kohm potentiometer te installeren. In de lijn met positieve polariteit die van de L298N-module naar de motor loopt, wordt het gewenste toerental ingesteld door de waarde van deze potentiometer aan te passen. De twee worden gebruikt voor de draairichting van de motor digitaalSchrijf(pincode, staat) gedefinieerde lijnen worden gebruikt. Als de motor van de Kerstman in de tegenovergestelde richting draait, kan dit worden gecorrigeerd door de status van deze twee draden te wijzigen of door de kabels van de L298N-module naar de motor te verwisselen. Met de lijn vertraging(2000) Er is een pauze van 2 seconden totdat de volgende coderegel wordt uitgevoerd.    

 

analoogSchrijven(schakel_Santa_motor in,128);

digitaalSchrijf(aansluiting_1_Kerstman_motor,HOOG);

digitaalSchrijf(aansluiting_2_Kerstman_motor,LAAG);

vertraging(2000);

 

  Vervolgens wordt het volume van de geluidsweergave aangepast mijnDFPlayer.volume(15) ingesteld op een waarde van 15 uit 30 om het audiobestand met de naam 003.mp3 op te nemen mijnDFPlayer. spelen(003) instellen. Dit bestand moet worden opgeslagen op de microSD-kaart die in de MP3-spelermodule is geplaatst en speelt een kerstmelodie af.

mijnDFPlayer.volume(15);

mijnDFPlayer.spelen(003);

 

De volgende drie regels veranderen de status van de poorten waarmee de relaismodule is verbonden van "hoog" naar "laag", waardoor de relaismodule de drie relais activeert en de ventilatoren worden bekrachtigd en beginnen te draaien, waardoor lucht in de urn wordt geïntroduceerd, waardoor de neerwaartse vlokken in alle richtingen zouden moeten bewegen.

digitaalSchrijf(FAN_1,LAAG);

digitaalSchrijf(FAN_2,LAAG);

digitaalSchrijf(FAN_3,LAAG);

 

   Dan de volgende regel code show_message_az() geëxecuteerd. Deze regel is een aanroep om de methode met die naam uit te voeren, die de code in die methode uitvoert. Na voltooiing van de uitvoering keert het programma terug naar de regel vertraging (3000) uitgevoerd om een pauze van 3 seconden te nemen vóór de volgende regel code lus() wordt uitgevoerd.

 

show_message_az();

vertraging(3000);

 

   Als de methode show_message_az() wordt aangeroepen, wordt deze uitgevoerd en bevindt er zich een lus tussen de accolades doe-terwijldie zal worden uitgevoerd zolang de voorwaarde aanwezig is terwijl is waar. Zoals we ons herinneren was de variabele: x oorspronkelijk geïnitialiseerd met het aantal LED's dat het paneel in de breedte heeft, d.w.z. 16. Deze lus wordt uitgevoerd totdat de voorwaarde terwijl de waarde x bereikt door -109, wat de laatste uitvoering is, aangezien -109 groter is dan -110 (het zijn negatieve getallen), het opdrachtblok doen geëxecuteerd.

leegte show_message_az() {

         doen {

                

                

                

         } terwijl (x > -110);

}

 

   Binnen de lus doen De eerste uit te voeren instructie is het uitschakelen van alle LED's op het paneel met de instructie matrix.vulScherm(0). De tweede instructie stelt de tekstkleur in matrix.setTekstKleur(matrix.Kleur(254, 0, 0)) op rood gezet, met matrix. setCursor(x, 5) de cursor wordt in kolom 16 geplaatst (d.w.z. de eerste kolom wordt 16 posities naar links verplaatst) en regel 5, waarna de tekst wordt opgenomen die in het paneel moet worden weergegeven matrix. afdrukken(F(" Van AZ-Delivery ")). De volgende voorwaarde als is een teller die begint bij 16 en doorgaat naar -110. Het wordt gebruikt om de waarde van de cursor in te stellen x (de kolommen) om de tekst weer te geven en de indruk van beweging te wekken. Het neemt af met één eenheid en voert de volgende instructie uit, namelijk matrix.tonen(), waardoor de overeenkomstige LED's voor die positie oplichten. Met vertraging(35) Er zal een pauze van 35 milliseconden zijn, aangezien dit het einde van de lus is. Vervolgens zal de beoordeling plaatsvinden terwijl uitgevoerd, wat zegt dat de lus vanaf het begin begint, zolang de waarde van x groter is dan -110. Samenvattend: configureer de kleur van de tekst, verplaats de kolommen en schakel de bijbehorende LED's in voor het weergeven van elk deel van de letters van de tekst en met de vertraging van 35 milliseconden geeft de indruk van beweging in de tekst.

 

matrix.vulScherm(0);

matrix.setTekstKleur(matrix.Kleur(254, 0, 0));

matrix.setCursor(x, 5);

matrix.afdrukken(F("Van AZ-Delivery "));

     

als(--x < -110) {

         x = matrix.breedte();

}

    

matrix.tonen();

vertraging(35);

   Nadat deze methode is voltooid, keert deze terug naar de volgende instructie van waaruit de oproep is gedaan, waarbij een wachtperiode van 3 seconden wordt uitgevoerd.

vertraging(3000);

 

   Met de aanroepen van de methoden show_message_germany() en show_message_spanish() Deze methoden worden uitgevoerd in overeenstemming met de eerder uitgelegde methode show_message_az() lijken.

   Als je naast tekst ook afbeeldingen wilt in je kerstblogpost 2022”3e advent: geanimeerde LED-kerstversieringen – UPDATEHier vindt u instructies voor het weergeven van afbeeldingen op zowel het AZ-MEGA2560-bord als het AZ-ATmega328-bord.

   Dit project kan ook zonder ventilatoren en zonder de transparante urn. De look is anders, maar zorgt toch voor een uniek gevoel.

   Wij van AZ-Delivery Vertriebs GmbH wenst u prettige kerstdagen, een succesvol nieuwjaar en veel plezier met uw gezin.

Für arduinoGrundlagen elektronikProjekte für fortgeschritteneSpecials

Laat een reactie achter

Alle opmerkingen worden voor publicatie gecontroleerd door een moderator

Aanbevolen blogberichten

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery