全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

Arduino Uno R4首发:告白专用板(WiFi版)

时间:2023-08-02 16:43

人气:

作者:admin

标签: 主控芯片  W  ARM  WIFI  arduino 

导读:Arduino Uno R4首发LED点阵点灯告白...

十二年磨一剑,今年Arduino官方终于发布了Ardui Uno R4,上一版Arduino Uno R3还是2011年发布的。

1.两个版本.png

相较于12年前的R3,R4的硬件,确实提升了一大截:

2.R4R3对比.jpg

主控芯片终于从8位的AVR升级到了32位的Arm cortex M4。芯片是瑞萨的,谁叫人家给Arduino基金会投钱了,还是大把大把的。

另外,这次终于推出了带有WiFi功能的版本,闪亮登场:

3.UNO-light.png

WiFi功能,由一块ESP32-S3-Mini提供,全面吊打主控芯片:

4.主控与WiFi芯片.png

吐槽归吐槽,还是第一时间抢购了一块Arduino Uno R4 WiFi版,因为只有WiFi版,板载一个LED点阵。不过这个点阵,还真是个点阵,直接怼了10个引脚上去,可真是虱多不痒,引脚多了放开手脚用啊:

6.LED阵列.png

这要换个WS2812阵列,不香吗?


板子到手后,和上任大哥对比了一下:

5.R4R3.jpg

大小一样,扩展板可以直接使用,这点不错。

先点个灯玩玩,毕竟有8*12个灯可以点,又不用额外接线,还是不错的。

点灯代码如下:

#include "Arduino_LED_Matrix.h"

ArduinoLEDMatrix matrix;

// 参考:https://juejin.cn/post/7128690033669701639
unsigned char Light[8][8] = //'全亮'
{
  1, 1, 1, 1, 1, 1, 1, 1,
  1, 1, 1, 1, 1, 1, 1, 1,
  1, 1, 1, 1, 1, 1, 1, 1,
  1, 1, 1, 1, 1, 1, 1, 1,
  1, 1, 1, 1, 1, 1, 1, 1,
  1, 1, 1, 1, 1, 1, 1, 1,
  1, 1, 1, 1, 1, 1, 1, 1,
  1, 1, 1, 1, 1, 1, 1, 1,
};
 
unsigned char Dark[8][8] = //'全灭'
{
  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,
};

unsigned char bigheart[8][8] = //'大心'
{
  0, 0, 0, 0, 0, 0, 0, 0,
  0, 1, 1, 0, 0, 1, 1, 0,
  1, 1, 1, 1, 1, 1, 1, 1,
  1, 1, 1, 1, 1, 1, 1, 1,
  1, 1, 1, 1, 1, 1, 1, 1,
  0, 1, 1, 1, 1, 1, 1, 0,
  0, 0, 1, 1, 1, 1, 0, 0,
  0, 0, 0, 1, 1, 0, 0, 0,
};
 
unsigned char smallheart[8][8] = //'小心'
{
  0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 1, 0, 0, 1, 0, 0,
  0, 1, 1, 1, 1, 1, 1, 0,
  0, 1, 1, 1, 1, 1, 1, 0,
  0, 0, 1, 1, 1, 1, 0, 0,
  0, 0, 0, 1, 1, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0,
};
unsigned char I[8][8] = //'I'
{
  0, 1, 1, 1, 1, 1, 1, 0, 
  0, 1, 0, 1, 1, 0, 1, 0,
  0, 0, 0, 1, 1, 0, 0, 0,
  0, 0, 0, 1, 1, 0, 0, 0,
  0, 0, 0, 1, 1, 0, 0, 0,
  0, 0, 0, 1, 1, 0, 0, 0, 
  0, 1, 0, 1, 1, 0, 1, 0,
  0, 1, 1, 1, 1, 1, 1, 0,
};
unsigned char L[8][8] = //'L'
{
  0, 0, 1, 1, 1, 1, 0, 0, 
  0, 0, 0, 1, 1, 0, 0, 0,
  0, 0, 0, 1, 1, 0, 0, 0,
  0, 0, 0, 1, 1, 0, 0, 0,
  0, 0, 0, 1, 1, 0, 0, 0,
  0, 0, 0, 1, 1, 0, 0, 0,
  0, 0, 0, 1, 1, 0, 0, 1,
  0, 0, 1, 1, 1, 1, 1, 1,
};
unsigned char O[8][8] = //'O'
{
  0, 0, 1, 1, 1, 1, 0, 0, 
  0, 1, 0, 0, 0, 0, 1, 0,
  1, 0, 0, 0, 0, 0, 0, 1,
  1, 0, 0, 0, 0, 0, 0, 1,
  1, 0, 0, 0, 0, 0, 0, 1,
  1, 0, 0, 0, 0, 0, 0, 1,
  0, 1, 0, 0, 0, 0, 1, 0,
  0, 0, 1, 1, 1, 1, 0, 0,
};
unsigned char V[8][8] = //'V'
{
  0, 0, 0, 0, 0, 0, 0, 0, 
  1, 0, 0, 0, 0, 0, 0, 1,
  1, 0, 0, 0, 0, 0, 0, 1,
  0, 1, 0, 0, 0, 0, 1, 0,
  0, 1, 0, 0, 0, 0, 1, 0,
  0, 0, 1, 0, 0, 1, 0, 0,
  0, 0, 1, 0, 0, 1, 0, 0,
  0, 0, 0, 1, 1, 0, 0, 0,
};
unsigned char E[8][8] = //'E'
{
  0, 0, 0, 0, 0, 0, 0, 0, 
  0, 1, 1, 1, 1, 1, 1, 0,
  0, 1, 0, 0, 0, 0, 0, 0,
  0, 1, 0, 0, 0, 0, 0, 0,
  0, 1, 1, 1, 1, 1, 1, 0,
  0, 1, 0, 0, 0, 0, 0, 0,
  0, 1, 0, 0, 0, 0, 0, 0,
  0, 1, 1, 1, 1, 1, 1, 0,
};
unsigned char U[8][8] = //'U'
{
  1, 0, 0, 0, 0, 0, 0, 1, 
  1, 0, 0, 0, 0, 0, 0, 1,
  1, 0, 0, 0, 0, 0, 0, 1,
  1, 0, 0, 0, 0, 0, 0, 1,
  1, 0, 0, 0, 0, 0, 0, 1,
  1, 1, 0, 0, 0, 0, 1, 1,
  0, 1, 1, 0, 0, 0, 1, 1,
  0, 0, 1, 1, 1, 1, 0, 0,
};
 
void setup() {
  Serial.begin(115200);
  matrix.begin();
  Clear();
  delay(3000);
}
void loop() {
  //主代码循环运行:
  unsigned int d = 500;
  unsigned int d2 = 100;
  Display(I);delay(d);Clear();
  Display(L);delay(d);Clear();
  Display(O);delay(d);Clear();
  Display(V);delay(d);Clear();
  Display(E);delay(d);Clear();
  Display(U);delay(d);Clear();
  for(int i=0;i< 5;i++) {
    Display(bigheart);delay(d2);Clear();
    Display(smallheart);delay(d2);Clear();
  }
  uint8_t arr[NUM_LEDS] = {1};
  for(int i=0;i< NUM_LEDS;i++)
  {
    arr[i] = 1;
  }
  for(int i=0;i< 5;i++) {
    Display(bigheart);delay(d2);Clear();
    Display(smallheart);delay(d2);Clear();
    matrix.loadPixels(arr, NUM_LEDS);delay(d2);Clear();
  }
}

void Display(unsigned char lattice[8][8])//显示函数
{
  uint8_t arr[NUM_LEDS] = {0};
  for(int r = 0; r < 8; r++)
  {
    for(int c = 0; c < 8; c++)
    {
      arr[r*12+c+2] = lattice[r][c];
    }
  }
  matrix.loadPixels(arr, NUM_LEDS);
}

void Clear()//清除函数
{
  uint8_t arr[NUM_LEDS] = {0};
  matrix.loadPixels(arr, NUM_LEDS);
}

上述代码,参考8*8的点阵图形数据,扩展到8 * 12的,然后使用Arduino 官方提供的专用点灯库点亮。

点完灯如下:

7.点灯.jpg

视频演示:

效果还是不错的,赶紧来一块,告白你心爱的Ta吧!!!

审核编辑 黄宇

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信