Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino Nano Clock met 4x64 LED Matrix (nieuwe versie)

Componenten en benodigdheden

Arduino Nano R3
× 1
LED-matrix
× 1
Fotoweerstand
× 1
Broodplank (algemeen)
× 1
DS3231
× 1

Apps en online services

Arduino IDE

Over dit project


Het lezen van een klokweergave in een kamer op enkele meters vereist zo'n LED-matrixdisplay.

Nadat ik voor een goede prijs een 4-cellig display had gekocht, keek ik op Hackster naar beschikbare projecten:er zijn er verschillende, voor Arduino Nano. Als je uren, minuten en seconden tegelijk wilt zien:er zijn maar een paar projecten die werken, omdat je kleinere cijfers nodig hebt dan de algemeen beschikbare met 5x7 pixels per cijfer. Een optie is om de MD_Parola-bibliotheek te gebruiken, maar de codegrootte is te groot voor een eenvoudige klok. De andere geteste optie was de Max72xxPanel-bibliotheek, maar deze is te oud en roept andere bibliotheken op. Ten slotte is het project gebaseerd op de basisinterfacebibliotheek MD_MAX722XX, opgenomen in alle andere.

De opmerkingen van deze site hebben me doen nadenken over de hardware-aspecten en de code.

- Er zijn veel bibliotheken die DS3231 worden genoemd. Ik gebruik deze:http://www.rinkydinkelectronics.com/library.php?id=73

Arduino/chipKit-bibliotheekondersteuning voor de DS3231 I2C Real-Time ClockCopyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. Alle rechten voorbehouden

- Ten eerste:het LED-matrixdisplay. Er zijn verschillende modellen op de markt, dus het is zeer waarschijnlijk dat het display rare dingen zal vertonen nadat je deze code hebt geüpload. Oplossing:upload dit voorbeeld uit de bibliotheek "MD_MAX72xx_lib.h":"MD_MAX72xx_HW_Mapper.ino" en zoek uw hardwaremodel. In mijn code is het model gedefinieerd:#define HARDWARE_TYPE MD_MAX72XX::ICSTATION_HW, maar dit werkt mogelijk niet totdat u het juiste model instelt!

- De leuke kleine seconden kwamen de laatste tijd niet opdagen? Nu (v2) zijn de lettertypen voor deze seconden opgenomen in de code, dus het is niet nodig om een ​​andere bibliotheek te wijzigen.

- Er is een lange waarschuwingslijst samengesteld vanwege Arduino-updates. Nu staan ​​de maanden in een tweedimensionale tekenreeks en gebruiken ze geen aanwijzer meer. Alle andere waarschuwingen komen uit de DS3231.h-bibliotheek, maar kunnen worden genegeerd.

- De knipperende stippen zijn nu slechts 2 stippen! De nauwkeurige seconden worden weergegeven, met behulp van mijn 3x5-lettertypen, na "uu:mm". Bovendien knipperen de kolompunten ":" bijna twee keer per seconde, gewoon om te laten zien dat het leeft!

- Een verzoek beantwoorden:de tijd wordt elke minuut gedurende 53 seconden weergegeven en gedurende de laatste 7 seconden worden de datum en temperatuur weergegeven.

- De dag van de week kan ook worden weergegeven als u twee regels in de lus() uit de opmerkingen verwijdert. In dit geval kunt u er de voorkeur aan geven het interval van 53 seconden te verkorten tot 51.

- Als je de voorkeur geeft aan het 12-uursformaat, bekijk dan een van mijn oudere antwoorden.

- De RTC-tijd kan worden ingesteld in de Arduino Serial Monitor door in het invoergebied DD/MM/YYYY hh:mm:ss (vergeet de spatie ertussen niet) te schrijven en op Enter/Send te drukken. Dit kan worden gedaan wanneer een USB-kabel is aangesloten en de seriële monitor functioneel is (juiste COM en baudrate).

De nieuwe code gebruikt 13558 bytes (44%) en 372 bytes (18%) voor variabelen, dus het is iets korter!

De datum wordt weergegeven als "dd Mon" en kamertemperatuur in graden. Celsius (geschat met behulp van de interne RTC-sensor) wordt op een aparte pagina weergegeven. De helderheid wordt geregeld door een fotoweerstand. De code werkt echter ook zonder lichtsensor.

Bedankt voor uw interesse, weergegeven door de "respect"-knop!

Code

  • OUDE versie - Arduino Nano Dot Matrix-klok
  • Nieuwe versie (v2) - Arduino Nano Dot Matrix-klok
OUDE versie - Arduino Nano Dot Matrix klokArduino
Aangezien veel bibliotheken zijn gewijzigd sinds de eerste release, is deze code verouderd. Gebruik de nieuwe versieAlle verbindingen worden beschreven in de code. Wijzig voor kleine lettertypen een paar regels in MD_MAX72xx_font.cpp, zoals uitgelegd in de code.
/* WAARSCHUWING:De oorspronkelijke code is nu verouderd. Gebruik de nieuwe (versie 2) * Arduino Nano DS3231 klok met LED Matrix 4x(8x8) SPI * * Arduino Nano 5V logic - 32kB prog. ruimte * Gereedschap:Bord:Arduino Nano; Processor:ATmega328P (Old Bootloader)!!* LED Matrix 4x(8x8) SPI met connector aan de rechterkant (laatste module)* https://www.banggood.com/MAX7219-Dot-Matrix-Module-4-in- 1-Display-For-Arduino-p-1072083.html?rmmds=myorder&cur_warehouse=CN* * VERBINDINGEN:*>> LCD 4x64 -> Arduino Nano:(met behulp van Hardware SPI):* 5V -> 5V pin* GND -> GND pin* CLK_PIN -> 13 // of SCK* DATA_PIN -> 11 // of MOSI* CS_PIN -> 10 // of SS * *>> DS3231 RTC -> Arduino Nano:* SDA (DAT) -> A4* SCL ( CLK) -> A5 * Geïnspireerd door:1) Arduino Clock van AnthoTRONICS Laatst bewerkt:22 maart 2019* maar zonder MD_parola vanwege zijn grote footprint! Nieuwe getdate-functie.* 2) Eenvoudigste UNO digitale klok ooit door plouc68000:* https://create.arduino.cc/projecthub/plouc68000/simplest-uno-digital-clock-ever-4613aa?ref=user&ref_id=680368&offset=1* 3) LEDDotMatrixClock.ino door Leonardo Sposina, maar hier zonder "Max72xxPanel.h"* https://github.com/leonardosposina/arduino-led-dot-matrix-clock/blob/master/LEDDotMatrixClock/LEDDotMatrixClock.ino* Niet in gebruik Max72xxPanel.h, maar kleine cijfers worden nog steeds gebruikt. Kleine footprint code hier.* Vervang in bibliotheek MD_MAX72XX/src/MD_MAX72xx_font.cpp :* 1) #define USE_NEW_FONT 1* 2) fonts #148 ... 158 moeten worden vervangen door 3x5 fonts:3, 248, 136, 248, / / 48 0 3, 144, 248, 128, // 49 1 3, 200, 168, 184, // 50 2 3, 136, 168, 248, // 51 3 3, 112, 72, 224, // 52 4 3, 184, 168, 232, // 53 5 3, 248, 168, 232, // 54 6 3, 8, 232, 24, // 55 7 3, 248, 168, 248, // 56 8 3 , 184, 168, 248, // 57 9 1, 80, // 58 :* * project:13790 bytes (44%); variabelen 361 bytes (17%)* Auteur:MVP https://www.hackster.io/MVP*/#include #include "DS3231.h"#include "MD_MAX72xx_lib.h"//#include " Font_Data.h"DS3231 rtc(SDA, SCL); // Realtime klokconstbyte LDR_PIN =A2; // LDR Sensor pin#define MAX_DEVICES 4// Define pins#define CLK_PIN 13 // of SCK#define DATA_PIN 11 // of MOSI#define CS_PIN 10 // of SS#define HARDWARE_TYPE MD_MAX72XX::ICSTATION_HW#define USE_NEW_F BUF_SIZE 20 // tekstbuffergrootte#define CHAR_SPACING 1 // pixels tussen tekenschar buf[BUF_SIZE], secs[4];uint8_t dots;// SPI hardware-interface// Max72xxPanel matrix =Max72xxPanel(CS_PIN, H_DISPLAYS, V_DISPLAYS matrix); =MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);const byte WAIT =100;const byte SPACER =1;byte FONT_WIDTH;bool timeset=false;void adjustClock(String data) {byte _day =data.substring(0,2).toInt (); byte _maand =data.substring(3,5).toInt(); int _jaar =data.substring(6,10).toInt(); byte _hour =data.substring(11,13).toInt(); byte _min =data.substring(14,16).toInt(); byte _sec =data.substring (17,19).toInt(); rtc.setTime(_uur, _min, _sec); rtc.setDate(_dag, _maand, _jaar); Serial.println(F(">> Datumtijd succesvol ingesteld!")); timeset=true;}byte ledintensitySelect(int light) {byte _value =0; if (licht>=0 &&licht <=127) { _value =12; } else if (light>=128 &&light <=319) { _value =3; } else if (light>=320 &&light <=512) { _value =0; } return _value;};void printText(uint8_t modStart, uint8_t modEnd, char *pMsg)// Druk de tekstreeks af naar de gespecificeerde LED-matrixmodules.// Berichtengebied wordt opgevuld met lege kolommen na het afdrukken.{ uint8_t state =0; uint8_t curLen; uint16_t showLen; uint8_t cBuf[FONT_WIDTH]; int16_t col =((modEnd + 1) * COL_SIZE) - 1; matrix.control(modStart, modEnd, MD_MAX72XX::UPDATE, MD_MAX72XX::OFF); do // finite state machine om de tekens in de beschikbare ruimte af te drukken { switch(state) { case 0:// Laad het volgende teken uit de lettertypetabel // als we het einde van het bericht hebben bereikt, reset dan de berichtaanwijzer als (*pMsg =='\0') { showLen =col - (modEnd * COL_SIZE); // opvultekens staat =2; pauze; } // haal het volgende teken op uit het lettertypebestand showLen =matrix.getChar(*pMsg++, sizeof(cBuf)/sizeof(cBuf[0]), cBuf); krullen =0; staat++; // !! val opzettelijk door naar de volgende status om case 1 weer te geven:// toon het volgende deel van het teken matrix.setColumn(col--, cBuf[curLen++]); // klaar met lettertypeteken, toon nu de spatie tussen tekens if (curLen ==showLen) { showLen =CHAR_SPACING; staat =2; } pauze; geval 2:// initialiseer de status voor het weergeven van lege kolommen curLen =0; staat++; // doorval geval 3:// toon inter-tekenafstand of einde van berichtopvulling (lege kolommen) matrix.setColumn(col--, 0); curLen++; if (curLen ==showLen) staat =0; pauze; standaard:col =-1; // dit beëindigt zeker de do-lus } } while (col>=(modStart * COL_SIZE)); matrix.control(modStart, modEnd, MD_MAX72XX::UPDATE, MD_MAX72XX::ON);}void setup() { pinMode(LDR_PIN, INPUT_PULLUP); Serieel.begin(9600); Serial.println(F(">> Arduino 32x8 LED Dot Matrix Clock!")); Serial.println(F(">> Gebruik het 
formaat om de datum en het uur van de klok in te stellen!")); rtc.begin(); matrix.begin(); matrix.clear(); FONT_WIDTH=5 + SPACER; // De letterbreedte is 5 pixels matrix.control (MD_MAX72XX::INTENSITY, 2);; // Gebruik een waarde tussen 0 en 15 voor helderheid}void getDate()// Date Setup:Code voor het lezen van de klokdatum{ char* months[]={"Jan","Feb","Mar","Apr", "mei","juni","juli","aug","sep","okt","nov","dec"}; String dts =rtc.getDateStr(); // Get dd/mm/yyyy string String dds=dts.substring(0,2); // Datum uitpakken String mms=dts.substring (3,5); // Extraheer maand int mm=mms.toInt(); // Converteren naar maandnummer dds.concat(" "); dds.concat(String(maanden[mm-1])); // Herbouw datumstring als "dd Mmm" dds.toCharArray(buf,sizeof(buf)); // return buffer}void getHour()// Date Setup:Code voor het lezen van klokdatum{ String dts =rtc.getTimeStr(); // Get hh:mm:ss string String hhs=dts.substring(0,2); // Extraheer uur int hh=hhs.toInt(); // Converteren naar nummer als (hh <10) dots =7; if(uu> 19 &&uu <24) punten=13; if ((uu> 9 &&uu <20) || (uu ==21)) punten=11; als (hh ==1) punten=5; als (uu ==11) punten=10; //String outmsg=dts.substring(0,5); // Extraheer hh:mm (optioneel) String outmsg=String(hh); // Extraheer h als h<10 outmsg.concat(":"); // voeg toe:outmsg.concat (dts.substring (3,5)); // voeg mm outmsg.toCharArray(buf,BUF_SIZE);}void showsec(){ String dts =rtc.getTimeStr(); // Get hh:mm:ss string String scs1=dts.substring (6,7); String scs2=dts.substring(7); char sc1=148+scs1.toInt(); // Converteren naar index van char char sc2=148+scs2.toInt(); // Converteren naar index van char matrix.setChar (6,sc1); matrix.setChar(2,sc2);}void loop() {byte ledIntensity =ledintensitySelect(analogRead(LDR_PIN)); matrix.control(MD_MAX72XX::INTENSITY, ledIntensity);; // Gebruik een waarde tussen 0 en 15 voor helderheid // Toon hh:mm van buf getHour(); printText(0,MAX_DEVICES-1,buf); vertraging (WACHT); // Knipperende twee stippen:for (uint8_t i=0; i<8; i++){matrix.setColumn(MAX_DEVICES*8-dots,36); showsec(); vertraging (250); matrix.setColumn(MAX_DEVICES*8-dots,0); showsec(); vertraging (250); } // Sluit af door naar boven te scrollen:for (uint8_t i=0; i<8; i++){ matrix.transform(MD_MAX72XX::TSU); vertraging (2*WACHT); vertraging (WACHT); } krijg datum(); printText(0,MAX_DEVICES-1,buf); vertraging (20*WACHT); int temp =rtc.getTemp(); temp=temp-1; // Offset -1 C String outmsg =String (temp); outmsg.concat(" C"); outmsg.toCharArray(buf,BUF_SIZE); printText(0,MAX_DEVICES-1,buf); vertraging (20*WACHT); // Tijdinstelling in RTC:if (Serial.available()> 0 &×et==false) {adjustClock(Serial.readString()); }}
Nieuwe versie (v2) - Arduino Nano Dot Matrix-klokArduino
Bijgewerkt in overeenstemming met nieuwe bibliotheken.
/* Arduino Nano DS3231 klok met LED Matrix 4x(8x8) SPI * Versie 2 - bijgewerkt 15/05/2-21 * Arduino Nano 5V logic - 32kB prog. ruimte * Gereedschap:Bord:Arduino Nano; Processor:ATmega328P (Old Bootloader)!!* LED Matrix 4x(8x8) SPI met connector aan de rechterkant (laatste module)* https://www.banggood.com/MAX7219-Dot-Matrix-Module-4-in- 1-Display-For-Arduino-p-1072083.html?rmmds=myorder&cur_warehouse=CN* * VERBINDINGEN:*>> LCD 4x64 -> Arduino Nano:(met behulp van Hardware SPI):* 5V -> 5V pin* GND -> GND pin* CLK_PIN -> 13 // of SCK* DATA_PIN -> 11 // of MOSI* CS_PIN -> 10 // of SS * *>> DS3231 RTC -> Arduino Nano:* SDA (DAT) -> A4* SCL ( CLK) -> A5 * Geïnspireerd door:1) Arduino Clock van AnthoTRONICS Laatst bewerkt:22 maart 2019* maar zonder MD_parola vanwege zijn grote footprint! Nieuwe getdate-functie.* 2) Eenvoudigste UNO digitale klok ooit door plouc68000:* https://create.arduino.cc/projecthub/plouc68000/simplest-uno-digital-clock-ever-4613aa?ref=user&ref_id=680368&offset=1* 3) LEDDotMatrixClock.ino door Leonardo Sposina, maar hier zonder "Max72xxPanel.h"* https://github.com/leonardosposina/arduino-led-dot-matrix-clock/blob/master/LEDDotMatrixClock/LEDDotMatrixClock.ino* Niet in gebruik Max72xxPanel.h, maar kleine cijfers worden nog steeds gebruikt. Kleine footprint code hier.* * project:113558 bytes (44%); variabelen 372 bytes (17%)* Auteur:MVP https://www.hackster.io/MVP*/#include #include "DS3231.h"#include "MD_MAX72xx_lib.h"//#include " Font_Data.h"DS3231 rtc(SDA, SCL); // Realtime klokconstbyte LDR_PIN =A2; // LDR Sensor pin#define MAX_DEVICES 4// Define pins#define CLK_PIN 13 // of SCK#define DATA_PIN 11 // of MOSI#define CS_PIN 10 // of SS// Definieer hieronder uw LED-matrix hardwaremodel://# definieer HARDWARE_TYPE MD_MAX72XX::ICSTATION_HW#define HARDWARE_TYPE MD_MAX72XX::FC16_HW#define USE_NEW_FONT 1#define BUF_SIZE 20 // tekstbuffergrootte#define CHAR_SPACING 1 // pixels tussen tekenschar buf[BUF_4ZE];, secuint8_SIZE]; ss, dots;// Definitie van de kleine lettertypen:uint8_t Font3x5 [ 10 ][ 3 ]={ { 248, 136, 248}, // 48 0 {144, 248, 128}, // 49 1 {200, 168 , 184}, // 50 2 {136, 168, 248}, // 51 3 {112, 72, 224}, // 52 4 {184, 168, 232}, // 53 5 {248, 168, 232 }, // 54 6 {8, 232, 24}, // 55 7 {248, 168, 248}, // 56 8 {184, 168, 248}}; // 57 9char months[12][4]={"jan","feb","maart","apr","mei","jun","juli","aug","sep"," okt","nov","dec"};char* wday;// SPI hardware-interface// Max72xxPanel matrix =Max72xxPanel(CS_PIN, H_DISPLAYS, V_DISPLAYS);MD_MAX72XX matrix =MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);const byte WAIT =100;const byte SPACER =1;byte FONT_WIDTH;bool timeset=false;void adjustClock(String data) { byte _day =data.substring(0,2).toInt(); byte _maand =data.substring(3,5).toInt(); int _jaar =data.substring(6,10).toInt(); byte _hour =data.substring(11,13).toInt(); byte _min =data.substring(14,16).toInt(); byte _sec =data.substring (17,19).toInt(); rtc.setTime(_uur, _min, _sec); rtc.setDate(_dag, _maand, _jaar); Serial.println(F(">> Datumtijd succesvol ingesteld!")); timeset=true;}byte ledintensitySelect(int light) {byte _value =0; if (licht>=0 &&licht <=127) { _value =12; } else if (light>=128 &&light <=319) { _value =3; } else if (light>=320 &&light <=512) { _value =0; } return _value;};void printText(uint8_t modStart, uint8_t modEnd, char *pMsg)// Druk de tekstreeks af naar de gespecificeerde LED-matrixmodules.// Berichtengebied wordt opgevuld met lege kolommen na het afdrukken.{ uint8_t state =0; uint8_t curLen; uint16_t showLen; uint8_t cBuf[FONT_WIDTH]; int16_t col =((modEnd + 1) * COL_SIZE) - 1; matrix.control(modStart, modEnd, MD_MAX72XX::UPDATE, MD_MAX72XX::OFF); do // finite state machine om de tekens in de beschikbare ruimte af te drukken { switch(state) { case 0:// Laad het volgende teken uit de lettertypetabel // als we het einde van het bericht hebben bereikt, reset dan de berichtaanwijzer als (*pMsg =='\0') { showLen =col - (modEnd * COL_SIZE); // opvultekens staat =2; pauze; } // haal het volgende teken op uit het lettertypebestand showLen =matrix.getChar(*pMsg++, sizeof(cBuf)/sizeof(cBuf[0]), cBuf); krullen =0; staat++; // !! val opzettelijk door naar de volgende status om case 1 weer te geven:// toon het volgende deel van het teken matrix.setColumn(col--, cBuf[curLen++]); // klaar met lettertypeteken, toon nu de spatie tussen tekens if (curLen ==showLen) { showLen =CHAR_SPACING; staat =2; } pauze; geval 2:// initialiseer de status voor het weergeven van lege kolommen curLen =0; staat++; // doorval geval 3:// toon inter-tekenafstand of einde van berichtopvulling (lege kolommen) matrix.setColumn(col--, 0); curLen++; if (curLen ==showLen) staat =0; pauze; standaard:col =-1; // dit beëindigt zeker de do-lus } } while (col>=(modStart * COL_SIZE)); matrix.control(modStart, modEnd, MD_MAX72XX::UPDATE, MD_MAX72XX::ON);}void setup() { pinMode(LDR_PIN, INPUT_PULLUP); Serieel.begin(9600); Serial.println(F(">> Arduino 32x8 LED Dot Matrix Clock!")); Serial.println(F(">> Gebruik het 
formaat om de datum en het uur van de klok in te stellen!")); rtc.begin(); matrix.begin(); matrix.clear(); FONT_WIDTH=5 + SPACER; // De letterbreedte is 5 pixels matrix.control (MD_MAX72XX::INTENSITY, 2);; // Gebruik een waarde tussen 0 en 15 voor helderheid rtc.setDOW(); // Vereist voor een nieuwe RTC}void getDate()// Datuminstelling:Code voor het lezen van klokdatum{ String dts =rtc.getDateStr(); // Get dd/mm/yyyy string String dds=dts.substring(0,2); // Datum uitpakken String mms=dts.substring (3,5); // Extraheer maand int mm=mms.toInt(); // Converteren naar maandnummer dds.concat(" "); dds.concat(String(maanden[mm-1])); // Herbouw datumstring als "dd Mmm" dds.toCharArray(buf,sizeof(buf)); // return buffer wday =rtc.getDOWStr(2);}void getHour()// Datuminstelling:Code voor het lezen van klokdatum{ String dts =rtc.getTimeStr(); // Get hh:mm:ss string String hhs=dts.substring(0,2); // Extract uur String mms=dts.substring(3,5); // Minuten extraheren hh=hhs.toInt(); // Converteren naar nummer mm=mms.toInt(); // Converteren naar nummer mm ss=(dts.substring (6,8)).toInt(); // Extraheer seconden als getal als (hh>=0 &&hh <10) dots=7; if (uu> 9 &&uu <20) punten=11; if (uu> 19 &&uu <25) punten=13; if (uu%10 ==1) punten-=2; //String outmsg=dts.substring(0,5); // Extraheer hh:mm (optioneel) String outmsg=String(hh); // Extraheer h als h<10 // outmsg.concat(":"); // voeg toe:maar op 2 kolommen!! outmsg.concat(char (124)); // voeg 1 volledige kolom toe tussen getallen outmsg.concat(dts.substring(3,5)); // add mm outmsg.toCharArray(buf,BUF_SIZE);}// Nieuwe versie van de functie, met gebruik van de kleine ingesloten fontsvoid showsec(uint8_t secs){ uint8_t secs1=secs%10; uint8_t secs2=sec/10; for (uint8_t k=0; k<3; k++){matrix.setColumn(MAX_DEVICES*8-26-k,Font3x5 [secs2][k]); matrix.setColumn(MAX_DEVICES*8-30-k,Font3x5 [sec1][k]); }}void loop() { byte ledIntensity =ledintensitySelect(analogRead(LDR_PIN)); matrix.control(MD_MAX72XX::INTENSITY, ledIntensity);; // Gebruik een waarde tussen 0 en 15 voor helderheid getHour(); // Leestijd van RTC printText (0,MAX_DEVICES-1,buf); // Toon hh | mm van buf matrix.setColumn (MAX_DEVICES * 8-dots, 0); // Wis de | unsigned long inst =millis(); // markeer dit moment while (ss <53){ // Eerste 53 seconden van elke minuut tonen tijd while (millis() - inst> 1000){ inst =millis(); ss++; // Verhoog seconden showsec (ss); // Toon seconden voor (uint8_t i =0; i <2; i++) {matrix.setColumn (MAX_DEVICES * 8-dots, 36); // Knipperende twee stippen:vertraging (240); matrix.setColumn(MAX_DEVICES*8-dots,0); vertraging (240); } } } // Dan schuift "time" naar boven:for (uint8_t i=0; i<8; i++){ matrix.transform(MD_MAX72XX::TSU); vertraging (3*WACHT); } // Schrijf de huidige datum:getDate(); printText(0,MAX_DEVICES-1,buf); vertraging (20*WACHT); // Schrijf de weekdag (indien niet becommentarieerd)://printText(0,MAX_DEVICES-1,wday); //vertraging (20*WACHT); // Schrijf de geschatte kamertemperatuur van de RTC-sensor int temp =rtc.getTemp(); temp=temp-1; // Offset -1 C String outmsg =String (temp); outmsg.concat(" C"); outmsg.toCharArray(buf,BUF_SIZE); printText(0,MAX_DEVICES-1,buf); vertraging (20*WACHT); // Tijdinstelling in RTC als seriële monitor is geactiveerd in Arduino IDE:if (Serial.available()> 0 &×et==false) {adjustClock(Serial.readString()); }}

Schema's

Geïnspireerd door Leonardo Sposina, maar #define CS_PIN(Matrix)<--> 10(Nano)
Het schema is BIJNA hetzelfde voor alle Matrix-projecten. Hier is de fotoweerstand origineel. Zoals vermeld in de code:#define CS_PIN(Matrix)<--> 10(Nano) https://github.com/leonardosposina/arduino-led-dot-matrix-clock

Productieproces

  1. Arduino klok met islamitische gebedstijden
  2. Arduino Temp. Monitor en realtimeklok met 3.2-weergave
  3. Arduino met Bluetooth om een ​​LED te bedienen!
  4. Spelen met Nextion Display
  5. LED-matrix + bewegingssensor deurdisplay [Arduino Holiday]
  6. Arduino Nano:bedien 2 stappenmotoren met joystick
  7. Enkele LED Matrix Arduino Flip Clock
  8. Een LED-matrix besturen met Arduino Uno
  9. Handheld geigerteller met Arduino Nano
  10. Smart Battery Charger Multiplexer met Smart Display
  11. Arduino OLED-temperatuurweergave met realtime klok