Arduino UNO R4 WiFi COM51, R28

Fr106,000

In stock

SKU: BRD2094 Category:

Description

The Arduino UNO R4 WiFi combines the processing power and exciting new peripherals of the RA4M1 microcontroller from Renesas with the wireless connectivity power of the ESP32-S3 from Espressif. On top of this, the UNO R4 WiFi offers an onboard 12×8 LED matrix, QWIIC connector, VRTC pin for backup battery and OFF pin, covering all potential needs makers will have for their next project.

With the UNO R4 WiFi, you can easily upgrade your project and add wireless connectivity to expand the reach of your current setup. If this is your first project, this board has everything you need to spark your creativity.

Let’s explore what the UNO R4 WiFi has to offer:

  • Hardware compatibility with UNO form factor: The UNO R4 WiFi maintains the same form factor, pinout, and 5 V operating voltage as its predecessor, the UNO R3, ensuring a seamless transition for existing shields and projects.
  • Expanded memory and faster clock: The UNO R4 WiFi boasts increased memory and a faster clock speed, enabling more precise calculations and effortless handling of complex projects.
  • Extra onboard peripherals: The UNO R4 WiFi introduces a range of onboard peripherals, including a 12-bit DAC, CAN BUS, and OP AMP, providing expanded capabilities and design flexibility.
  • Extended 24 V tolerance: The UNO R4 WiFi supports a wider input voltage range, allowing seamless integration with motors, LED strips, and other actuators using a single power source.
  • HID support: With built-in HID support, the UNO R4 WiFi can simulate a mouse or keyboard when connected to a computer via USB, making it easy to send keystrokes and mouse movements.
  • Wi-Fi® and Bluetooth®: The UNO R4 WiFi hosts an ESP32-S3 module, enabling makers to add wireless connectivity to their projects. Combined with the Arduino IoT Cloud, makers can monitor and control their projects remotely.
  • QWIIC connector: The UNO R4 WiFi features a Qwiic I2C connector, allowing easy connection to nodes from the extensive QWIIC ecosystem. Adapter cables also enable compatibility with sensors and actuators based on other connectors.
  • Support for battery-powered RTC: The UNO R4 WiFi includes additional pins, including an “OFF” pin to turn off the board and a “VRTC” pin to keep the internal Real-Time Clock powered and running.
  • LED matrix: The UNO R4 WiFi incorporates a bright 12×8 red LED matrix, ideal for creative projects with animations or plotting sensor data, eliminating the need for additional hardware.
  • Diagnostics for runtime errors: The UNO R4 WiFi includes an error-catching mechanism that detects runtime crashes and provides detailed explanations and hints about the code line causing the crash.

With all these features packed into the well-known UNO form factor, now is the perfect
time to upgrade your project or embark on your maker journey. The UNO R4 WiFi offers unparalleled versatility and possibilities for makers of all levels.

Tech Specs

Microcontroller Renesas RA4M1 (Arm® Cortex®-M4 with Floating
Point Unit)
Wireless connectivity ESP32-S3
USB USB-C® Programming Port / HID
Pins Digital I/O Pins 14
Analog input pins 6
DAC 1
PWM pins 6
Communication UART 1
I2C 2 (SDA, SCL / A4, A5 and QWIIC conn)
SPI 1
CAN 1 (requires an external
transceiver)
Misc VRTC & OFF pin
Power Circuit operating voltage 5 V (ESP32-S3 is 3.3 V)
Input voltage (VIN) 6-24 V
DC Current per I/O Pin 8 mA
Clock speed RA4M1 48 MHz
ESP32-S3 up to 240 MHz
Memory RA4M1 256 kB Flash, 32 kB RAM
ESP32-S3 384 kB ROM, 512 kB SRAM
Dimensions Width 68.85 mm
Length 53.34 mm

 

Codes

Real Digital Time Clock  Display on LED Matrix

Building a clock with just a microcontroller board. As all needed components like RTC and LED matrix are already built in.

 

#include "RTC.h"
#include "Arduino_LED_Matrix.h"
ArduinoLEDMatrix matrix;

byte Time[8][12] = {
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
};

byte  Digits  [5][30]{                                                                 
{ 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1 },
{ 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1 },
{ 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1 },
};                                   


int currentSecond;
boolean secondsON_OFF = 1;
int hours, minutes, seconds, year, dayofMon;
String dayofWeek, month;

void displayDigit(int d, int s_x, int s_y){
  for (int i=0;i<3;i++)
    for (int j=0;j<5;j++)
      Time[i+s_x][11-j-s_y] = Digits[j][i+d*3];   
    
  matrix.renderBitmap(Time, 8, 12);
}


DayOfWeek convertDOW(String dow){
  if (dow == String("Mon")) return DayOfWeek::MONDAY;
  if (dow == String("Tue")) return DayOfWeek::TUESDAY;
  if (dow == String("Wed")) return DayOfWeek::WEDNESDAY;
  if (dow == String("Thu")) return DayOfWeek::THURSDAY;
  if (dow == String("Fri")) return DayOfWeek::FRIDAY;
  if (dow == String("Sat")) return DayOfWeek::SATURDAY;
  if (dow == String("Sun")) return DayOfWeek::SUNDAY;
}

Month convertMonth(String m){
 if (m == String("Jan")) return Month::JANUARY;
  if (m == String("Feb")) return Month::FEBRUARY;
  if (m == String("Mar")) return Month::MARCH;
  if (m == String("Apr")) return Month::APRIL;
  if (m == String("May")) return Month::MAY;
  if (m == String("Jun")) return Month::JUNE;
  if (m == String("Jul")) return Month::JULY;
  if (m == String("Aug")) return Month::AUGUST;
  if (m == String("Sep")) return Month::SEPTEMBER;
  if (m == String("Oct")) return Month::OCTOBER;
  if (m == String("Nov")) return Month::NOVEMBER;
  if (m == String("Dec")) return Month::DECEMBER;
}

void getCurTime(String timeSTR,String* d_w,int* d_mn, String* mn,int* h,int* m,int* s,int* y){
  
  *d_w = timeSTR.substring(0,3);
  *mn = timeSTR.substring(4,7);
  *d_mn = timeSTR.substring(8,11).toInt();
  *h = timeSTR.substring(11,13).toInt();
  *m = timeSTR.substring(14,16).toInt();
  *s = timeSTR.substring(17,19).toInt();
  *y = timeSTR.substring(20,24).toInt();

}


void setup() {  
  Serial.begin(9600);  
  matrix.begin();
  RTC.begin();    
  String timeStamp = __TIMESTAMP__;
  getCurTime(timeStamp,&dayofWeek,&dayofMon,&month,&hours,&minutes,&seconds,&year);
  RTCTime startTime(dayofMon, convertMonth(month) , year, hours, minutes, seconds, 
                    convertDOW(dayofWeek), SaveLight::SAVING_TIME_ACTIVE); 
  RTC.setTime(startTime);
}

void loop(){
  RTCTime currentTime;
  RTC.getTime(currentTime);
  if (currentTime.getSeconds()!=currentSecond){
    secondsON_OFF ?  secondsON_OFF = 0 : secondsON_OFF = 1;
    displayDigit((int)(currentTime.getHour()/10),0,0 );
    displayDigit(currentTime.getHour()%10,4,0 );
    displayDigit((int)(currentTime.getMinutes()/10),1,6 );
    displayDigit(currentTime.getMinutes()%10,5,6 );
    Time[0][2]=secondsON_OFF;
    Time[0][4]=secondsON_OFF;
    currentSecond=currentTime.getSeconds();
    matrix.renderBitmap(Time, 8, 12);
    Serial.println(secondsON_OFF);
  }
}





Package includes: UNO WIFI R4 and USB Cable