LED Maatriksi näidis

Vajaminevad teegid:

lib_deps = WEMOS Matrix Adafruit GFX@1.3, Adafruit GFX Library@1.7.2, adafruit/Adafruit BusIO@^1.6.0

IoT LED maatriksi kasutama õppimiseks on võimalik proovida For learning how to use the IoT Matrix you can try out the example and tasks.

/* Switching boxes */
 
// Librarys that the IoT Matrix uses
#include <Arduino.h>
#include <Adafruit_GFX.h>
#include <WEMOS_Matrix_GFX.h>
#include <SPI.h>
#include <Adafruit_I2CDevice.h>
 
MLED matrix(7); //set intensity=7 (maximum)
 
void setup() {
  Serial.begin(9600);
  Serial.println("8x8 LED Matrix Test");
}
 
void loop() {
  matrix.clear(); // Clear the matrix field
  matrix.drawRect(0,0, 8,8, LED_ON); // Draws a empty square with positions y = 0, x = 0, y length = 8, x length = 8 and telling the leds to be on.
  matrix.fillRect(2,2, 4,4, LED_ON); // Draws a filled square from positions y = 2, x = 2, y length = 4, x length = 4 and telling the leds to turn on
  matrix.writeDisplay();  // Write the changes we just made to the display
  delay(500); // Wait for half a second
  matrix.drawRect(0,0,8,8, LED_OFF); // Turn the leds off
  matrix.drawRect(1,1, 6,6, LED_ON);
  matrix.fillRect(2,2,4,4, LED_OFF);
  matrix.writeDisplay();
  delay(500);
}

Trips-traps-trull

#include <Arduino.h>
#include <Adafruit_GFX.h>
#include <WEMOS_Matrix_GFX.h>
#include <SPI.h>
#include <Adafruit_I2CDevice.h>
 
MLED matrix(7);
 
void setup() {
  Serial.begin(9600);
  Serial.println("8x8 LED Matrix Test");
}
 
void loop() {
  matrix.clear();
  for (int i = 0; i <= 7; i++) {
    matrix.drawRect(i,1, 1,2, LED_ON);
    matrix.writeDisplay();
    delay(100);
  }
  for (int i = 0; i < 8; i++) {
    matrix.drawRect(i,5, 1,2, LED_ON);
    matrix.writeDisplay();
    delay(100);
  }
  for (int i = 0; i < 8; i++) {
    matrix.drawRect(1,i, 2,1, LED_ON);
    matrix.writeDisplay();
    delay(50);
  }
  for (int i = 0; i < 8; i++) {
    matrix.drawRect(5,i, 2,1, LED_ON);
    matrix.writeDisplay();
    delay(50);
  }
  delay(1000);
}

Ringiratast ekraani täitmine:

#include <Arduino.h>
#include <Adafruit_GFX.h>
#include <WEMOS_Matrix_GFX.h>
#include <SPI.h>
#include <Adafruit_I2CDevice.h>
 
MLED matrix(7);
 
void setup() {
  Serial.begin(9600);
  Serial.println("8x8 LED Matrix Test");
}
 
void drawRight(int a, int b, int c) {
  for (int i = c; i <= a+c; i++) {
    matrix.drawRect(i,b,1,1, LED_ON);
    matrix.writeDisplay();
    delay(100);
  }
}
 
void drawDown(int a, int b) {
  for (int i = b; i <= a; i++) {
    matrix.drawRect(a,i,1,1, LED_ON);
    matrix.writeDisplay();
    delay(100);
  }
}
 
void drawLeft(int a, int b) {
  int e = 0;
  for (int i = 0; i <= a; i++) {
    e++;
    matrix.drawRect(b-e,b,1,1, LED_ON);
    matrix.writeDisplay();
    delay(100);
  }
}
 
void drawUp(int a, int b, int c) {
  for (int i = 0; i <= a; i++) {
    matrix.drawRect(c,b-i,1,1, LED_ON);
    matrix.writeDisplay();
    delay(100);
  }
}
 
void loop() {
  matrix.clear();
  drawRight(7,0,0);
  drawDown(7,1);
  drawLeft(6,7);
  drawUp(4,6,0);
  drawRight(6,1,0);
  drawDown(6,2);
  drawLeft(4,6);
  drawUp(2,5,1);
  drawRight(3,2,1);
  drawDown(5,2);
  drawLeft(2,5);
  drawUp(1,4,2);
  drawRight(0,3,3);
  drawDown(4,3);
  drawLeft(0,4);
  delay(400);
}