内容介绍
内容介绍
一、核心性能
Teensy 4.1搭载了恩智浦的i.MX RT1062处理器,该处理器基于ARM Cortex-M7内核,运行频率高达600MHz。它提供了高CPU性能和最佳实时响应,适用于工业和物联网应用。此外,Teensy 4.1还配备了1MB的片上RAM和7936K的闪存,以及4K的EEPROM(仿真),为开发提供了充足的资源。
二、丰富的I/O接口
Teensy 4.1提供了丰富的输入输出接口,包括55个数字输入/输出引脚、35个PWM输出引脚和18个模拟输入引脚。此外,它还配备了8个串行端口、3个SPI端口、3个I2C端口、2个I2S/TDM和1个S/PDIF数字音频端口。这些接口为开发者提供了广泛的连接选项,可以满足各种应用场景的需求。
三、网络通信与存储
Teensy 4.1内置了以太网控制器和以太网PHY芯片(DP83825),支持10/100Mbit的速度,方便开发者进行网络通信开发。
安装teensyduino 后arduino 可以显示teensy4.1
4.电气设计框图
这里使用是串口转网口的模块,配置串口转模块成服务器,IP地址是192.168.1.100 通讯速率是460800 端口8080
编写arduino 使用 网口调整 WS2812 的颜色
变红
变蓝
变粉
显示WS2812的颜色配置
调试代码
#include <Adafruit_NeoPixel.h>
#include <SoftwareSerial.h>
#include <FlexCAN_T4.h>
FlexCAN_T4<CAN1, RX_SIZE_256, TX_SIZE_16> Can0;
// LED环参数 - 调整以匹配你所使用的设置
#define PIN 6 // 连接到WS2812的数据引脚
#define NUMPIXELS 30 // 如果你有多个LED,更改此数值
SoftwareSerial MySerial1(0, 1);
// 创建一个NeoPixel对象
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void canSniff(const CAN_message_t &msg)
{
MySerial1.print("MB "); MySerial1.print(msg.mb);
MySerial1.print(" OVERRUN: "); MySerial1.print(msg.flags.overrun);
MySerial1.print(" LEN: "); MySerial1.print(msg.len);
MySerial1.print(" EXT: "); MySerial1.print(msg.flags.extended);
MySerial1.print(" TS: "); MySerial1.print(msg.timestamp);
MySerial1.print(" ID: "); MySerial1.print(msg.id, HEX);
MySerial1.print(" Buffer: ");
for ( uint8_t i = 0; i < msg.len; i++ )
{
MySerial1.print(msg.buf[i], HEX); MySerial1.print(" ");
} MySerial1.println();
}
void setup() {
pixels.begin(); // 初始化Neopixel
MySerial1.begin(460800); // 初始化串行通信
Can0.begin();
Can0.setBaudRate(1000000);
Can0.setMaxMB(16);
Can0.enableFIFO();
Can0.enableFIFOInterrupt();
Can0.onReceive(canSniff);
Can0.mailboxStatus();
}
void loop() {
if (MySerial1.available() > 0)
{ // 检查是否有可用的数据
String colorCommand = MySerial1.readStringUntil('\n'); // 读取一行数据
setColor(colorCommand); // 设置颜色
}
}
void setColor(String command)
{
CAN_message_t msg;
Can0.events();
command.toLowerCase();
if (command == "蓝色")
{
msg.id = 1 ;
msg.buf[0] = 255 ;
msg.buf[1] = 0 ;
msg.buf[2] = 0 ;
setPixelColor(255, 0, 0); // 红色
MySerial1.print(" 蓝色: ");
Can0.write(msg);
}
else if (command == "粉色")
{
msg.id = 2 ;
msg.buf[0] = 255 ;
msg.buf[1] = 165 ;
msg.buf[2] = 0 ;
setPixelColor(255, 165, 0); // 黄色
MySerial1.print(" 粉色: ");
Can0.write(msg);
}
else if (command == "红色")
{
msg.id = 3 ;
msg.buf[0] = 0 ;
msg.buf[1] = 255 ;
msg.buf[2] = 0 ;
setPixelColor(0, 255, 0); // 绿色
MySerial1.print(" 红色: ");
Can0.write(msg);
}
}
void setPixelColor(byte red, byte green, byte blue)
{
for(int i=0; i<NUMPIXELS; i++)
{
pixels.setPixelColor(i, pixels.Color(red, green, blue)); // 设置像素颜色
}
pixels.show(); // 更新显示
}
附件下载
col.ino
团队介绍
robot_zhi
评论
0 / 100
查看更多
猜你喜欢
Funpack第三季第5期-网口控制的LED该项目使用了teensy4.1,实现了led控制的设计,它的主要功能为:基于以太网口通信,通过手机或电脑的网业访问,控制板载led的亮灭。
LISHIYANG
11
Teensy4.1网口通信控制LED灯该项目使用了Teensy4.1开发板,实现了网络点灯的设计,它的主要功能为:使用Teensy4.1开发板通过网口链接路由器实现远程控制。
颜七岁
9
Funpack3-5-基于teensy4.1通过网口实现控制LED该项目使用了TEENSY4.1板卡,通过自己设计网口扩展板,连接本地局域网,通过PC网络调试助手,UDP发送固定报文,进行点亮与关闭LED。
林伟521
6