wokwi arduino mega 2560 - 键盘与LCD显示
截图:

链接:
https://wokwi.com/projects/414520193913760769
代码:
//cslg lcd key
#include <LiquidCrystal.h> // 引入LiquidCrystal库,用于LCD显示
#include <Keypad.h> // 引入Keypad库,用于键盘输入/* Display (LCD显示屏设置) */
LiquidCrystal lcd(12, 11, 10, 9, 8, 7); // 初始化LCD,参数为连接LCD的RS, E, D4, D5, D6, D7引脚/* Keypad setup (键盘设置) */
const byte KEYPAD_ROWS = 4; // 键盘行数
const byte KEYPAD_COLS = 4; // 键盘列数
byte rowPins[KEYPAD_ROWS] = {5, 4, 3, 2}; // 键盘行连接的引脚
byte colPins[KEYPAD_COLS] = {A3, A2, A1, A0}; // 键盘列连接的引脚
char keys[KEYPAD_ROWS][KEYPAD_COLS] = { // 键盘按键布局{'1', '2', '3', '+'},{'4', '5', '6', '-'},{'7', '8', '9', '*'},{'.', '0', '=', '/'}
};Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, KEYPAD_ROWS, KEYPAD_COLS); // 初始化键盘void setup() {lcd.begin(16, 2); // 初始化LCD为16x2字符lcd.print("Welcome To CSLG"); // 在LCD上显示欢迎信息lcd.setCursor(0, 1); // 设置光标到第二行的开始位置lcd.print(" "); // 清除第二行的内容
}void loop() {char key = keypad.getKey(); // 从键盘获取按键if (key) {// 如果检测到按键被按下lcd.setCursor(0, 1); // 设置光标到第二行的开始位置lcd.print(" "); // 清除第二行的内容,为显示新按键做准备lcd.setCursor(0, 1); // 再次设置光标到第二行的开始位置lcd.print(key); // 在LCD上显示被按下的按键}
}
Wokwi Arduino Mega 2560 - 键盘与LCD显示实验报告
实验目的
本实验旨在通过Arduino Mega 2560微控制器实现键盘输入与LCD显示的交互功能。用户通过4x4矩阵键盘输入字符,Arduino接收输入并在LCD显示屏上显示相应的字符。此实验演示了键盘输入处理、LCD显示控制以及基本的用户交互逻辑。
实验器材
- Arduino Mega 2560 微控制器
- 16x2 LCD显示屏
- 4x4矩阵键盘
- 连接线
- Wokwi在线仿真平台(用于代码测试和仿真)
实验原理
-
LCD显示屏:LCD(Liquid Crystal Display)是一种常用的显示设备,通过控制液晶分子的排列来显示字符或图形。本实验中使用16x2 LCD,即每行可显示16个字符,共2行。
-
矩阵键盘:4x4矩阵键盘由4行和4列组成,共16个按键。通过扫描行和列,可以检测哪个按键被按下。
-
Keypad库:Keypad库是一个用于处理矩阵键盘输入的Arduino库,它简化了键盘扫描和按键检测的过程。
-
LiquidCrystal库:LiquidCrystal库是一个用于控制LCD显示屏的Arduino库,它提供了初始化LCD、设置光标位置、显示字符等功能。
实验步骤
- 硬件连接:
- 将LCD的RS、E、D4、D5、D6、D7引脚分别连接到Arduino Mega 2560的数字引脚12、11、10、9、8、7。
- 将4x4矩阵键盘的行引脚(5, 4, 3, 2)和列引脚(A3, A2, A1, A0)连接到Arduino的相应引脚。
- 软件编程:
- 导入LiquidCrystal和Keypad库。
- 初始化LCD显示屏和键盘。
- 在
setup()函数中设置LCD的初始显示内容。 - 在
loop()函数中不断检测键盘输入,如果检测到按键被按下,则在LCD上显示该按键。
- 仿真测试:
- 在Wokwi在线仿真平台上上传并运行代码。
- 使用仿真平台上的虚拟键盘输入字符,观察LCD显示屏上的显示情况。
实验代码
cpp复制代码
#include <LiquidCrystal.h> | |
#include <Keypad.h> | |
/* Display (LCD显示屏设置) */ | |
LiquidCrystal lcd(12, 11, 10, 9, 8, 7); | |
/* Keypad setup (键盘设置) */ | |
const byte KEYPAD_ROWS = 4; | |
const byte KEYPAD_COLS = 4; | |
byte rowPins[KEYPAD_ROWS] = {5, 4, 3, 2}; | |
byte colPins[KEYPAD_COLS] = {A3, A2, A1, A0}; | |
char keys[KEYPAD_ROWS][KEYPAD_COLS] = { | |
{'1', '2', '3', '+'}, | |
{'4', '5', '6', '-'}, | |
{'7', '8', '9', '*'}, | |
{'.', '0', '=', '/'} | |
}; | |
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, KEYPAD_ROWS, KEYPAD_COLS); | |
void setup() { | |
lcd.begin(16, 2); | |
lcd.print("Welcome To CSLG"); | |
lcd.setCursor(0, 1); | |
lcd.print(" "); | |
} | |
void loop() { | |
char key = keypad.getKey(); | |
if (key) { | |
lcd.setCursor(0, 1); | |
lcd.print(" "); | |
lcd.setCursor(0, 1); | |
lcd.print(key); | |
} | |
} |
实验结果
- 当用户按下键盘上的任意按键时,LCD显示屏的第二行会显示该按键对应的字符。
- 如果连续按下多个按键,LCD显示屏会不断更新显示最新的按键字符。
- 未按下按键时,LCD显示屏的第二行保持空白(或显示之前按下的字符,直到新的按键被按下)。
实验结论
本实验成功实现了通过Arduino Mega 2560微控制器处理键盘输入并在LCD显示屏上显示相应字符的功能。通过编程控制键盘扫描和LCD显示,验证了键盘输入处理和LCD显示控制的基本原理。同时,实验也展示了如何使用Keypad库和LiquidCrystal库简化键盘和LCD的控制过程。
Wokwi Arduino Mega 2560 - 键盘详细课程教程
一、课程简介
本课程将详细介绍如何在 Wokwi 平台上使用 Arduino Mega 2560 读取键盘输入。通过本课程的学习,你将掌握键盘矩阵扫描的原理、硬件连接方法、编程技巧以及如何在 Arduino 上实现键盘输入的检测。
二、课程内容
1. 键盘基础
- 键盘类型:
- 独立按键:每个按键独立连接到一个输入引脚。
- 矩阵键盘:多个按键通过行列交叉连接,减少引脚使用。
- 矩阵键盘扫描原理:
- 通过逐行扫描和列检测,确定哪个按键被按下。
- 使用二极管或电阻防止按键之间的干扰。
2. 硬件连接
- 准备材料:
- Arduino Mega 2560 开发板
- 4x4 矩阵键盘(或根据需要选择其他尺寸的键盘)
- 电阻(用于限流,可选)
- 面包板及跳线
- 连接方法:
- 将键盘的行引脚连接到 Arduino 的数字输出引脚(如 2-5)。
- 将键盘的列引脚连接到 Arduino 的数字输入引脚(如 6-9)。
- 如果需要,可以在行列之间串联电阻。
3. 编程基础
- Arduino IDE:
- 安装并打开 Arduino IDE。
- 选择正确的开发板(Arduino Mega 2560)和端口。
- 编程思路:
- 初始化行列引脚。
- 逐行扫描键盘,检测列引脚的状态。
- 当检测到按键按下时,记录按键值。
- 使用延时或去抖算法防止误触。
4. 示例代码
#define ROW_PIN_COUNT 4 // 行引脚数量
#define COL_PIN_COUNT 4 // 列引脚数量#define ROW_PINS {2, 3, 4, 5} // 行引脚定义
#define COL_PINS {6, 7, 8, 9} // 列引脚定义void setup() {// 初始化行引脚为输出模式for (int i = 0; i < ROW_PIN_COUNT; i++) {pinMode(ROW_PINS[i], OUTPUT);digitalWrite(ROW_PINS[i], HIGH); // 默认拉高}// 初始化列引脚为输入模式for (int i = 0; i < COL_PIN_COUNT; i++) {pinMode(COL_PINS[i], INPUT_PULLUP); // 使用内部上拉电阻}Serial.begin(9600); // 初始化串口通信
}void loop() {for (int row = 0; row < ROW_PIN_COUNT; row++) {digitalWrite(ROW_PINS[row], LOW); // 拉低当前行for (int col = 0; col < COL_PIN_COUNT; col++) {if (digitalRead(COL_PINS[col]) == LOW) { // 检测列引脚是否为低电平Serial.print("Key pressed: ");Serial.print(row * COL_PIN_COUNT + col); // 计算按键值Serial.println();while (digitalRead(COL_PINS[col]) == LOW); // 等待按键释放(简单去抖)}}digitalWrite(ROW_PINS[row], HIGH); // 拉高当前行,准备扫描下一行}delay(10); // 扫描延时
}
cpp复制代码
#define ROW_PIN_COUNT 4 // 行引脚数量 | |
#define COL_PIN_COUNT 4 // 列引脚数量 | |
#define ROW_PINS {2, 3, 4, 5} // 行引脚定义 | |
#define COL_PINS {6, 7, 8, 9} // 列引脚定义 | |
void setup() { | |
// 初始化行引脚为输出模式 | |
for (int i = 0; i < ROW_PIN_COUNT; i++) { | |
pinMode(ROW_PINS[i], OUTPUT); | |
digitalWrite(ROW_PINS[i], HIGH); // 默认拉高 | |
} | |
// 初始化列引脚为输入模式 | |
for (int i = 0; i < COL_PIN_COUNT; i++) { | |
pinMode(COL_PINS[i], INPUT_PULLUP); // 使用内部上拉电阻 | |
} | |
Serial.begin(9600); // 初始化串口通信 | |
} | |
void loop() { | |
for (int row = 0; row < ROW_PIN_COUNT; row++) { | |
digitalWrite(ROW_PINS[row], LOW); // 拉低当前行 | |
for (int col = 0; col < COL_PIN_COUNT; col++) { | |
if (digitalRead(COL_PINS[col]) == LOW) { // 检测列引脚是否为低电平 | |
Serial.print("Key pressed: "); | |
Serial.print(row * COL_PIN_COUNT + col); // 计算按键值 | |
Serial.println(); | |
while (digitalRead(COL_PINS[col]) == LOW); // 等待按键释放(简单去抖) | |
} | |
} | |
digitalWrite(ROW_PINS[row], HIGH); // 拉高当前行,准备扫描下一行 | |
} | |
delay(10); // 扫描延时 | |
} |
5. 仿真与调试
- Wokwi 平台:
- 将代码上传到 Wokwi 平台上的 Arduino Mega 2560 仿真器。
- 使用虚拟键盘或外部键盘模块进行仿真测试。
- 观察串口监视器输出,确保按键检测正确。
- 调试技巧:
- 检查硬件连接是否正确。
- 使用万用表或逻辑分析仪检测引脚电平。
- 逐步调试代码,确保每行每列都能正确扫描。
6. 实际应用
- 密码输入:使用键盘输入密码,进行身份验证。
- 菜单选择:通过键盘选择菜单项,执行相应操作。
- 游戏控制:将键盘作为游戏控制器,实现方向控制或功能选择。
三、课程总结
通过本课程的学习,你掌握了矩阵键盘扫描的原理、硬件连接方法以及编程技巧。通过示例代码和仿真调试,你能够成功地在 Wokwi 平台上使用 Arduino Mega 2560 读取键盘输入。希望你在后续的学习中能够继续探索更多有趣的应用,并将所学知识应用到实际项目中。
四、学习资源
- Arduino 官方文档:获取更多关于 Arduino Mega 2560 和矩阵键盘的信息。
- Wokwi 平台教程:学习如何在 Wokwi 平台上进行仿真和调试。
- 在线社区和论坛:与其他开发者交流经验,解决遇到的问题。同时,也可以参考其他开发者的项目案例,获取更多灵感和创意。
Wokwi Arduino Mega 2560 - LCD 显示详细课程教程
一、课程简介
本课程将详细介绍如何在 Wokwi 平台上使用 Arduino Mega 2560 控制 LCD 显示屏进行文本显示。通过本课程的学习,你将掌握 LCD 显示屏的基本工作原理、硬件连接方法、编程技巧以及如何在 Arduino 上实现 LCD 显示功能。
二、课程内容
1. LCD 显示屏基础
- LCD 类型:
- 字符型 LCD:如 16x2 LCD,用于显示字符和数字。
- 图形型 LCD:如 128x64 LCD,用于显示图形和图像。
- 接口方式:
- 并行接口:使用多条数据线传输数据,速度快但占用引脚多。
- 串行接口:如 I2C 接口,使用较少的引脚传输数据,速度相对较慢。
2. 硬件连接
- 准备材料:
- Arduino Mega 2560 开发板
- 16x2 字符型 LCD 显示屏
- 电位器(用于调节对比度)
- 面包板及跳线
- 连接方法(以并行接口为例):
- 将 LCD 的 VSS 引脚连接到 Arduino 的 GND 引脚。
- 将 LCD 的 VDD 引脚连接到 Arduino 的 5V 引脚。
- 将 LCD 的 VO 引脚连接到电位器的中间引脚,电位器的两端分别连接到 GND 和 5V。
- 将 LCD 的 RS、E、D4-D7 引脚分别连接到 Arduino 的数字引脚(如 12、11、5-2)。
- 将 LCD 的 R/W 引脚连接到 GND(写模式)。
- 将 LCD 的 A 和 K 引脚分别连接到 Arduino 的 5V 和 GND(用于背光)。
3. 编程基础
- Arduino IDE:
- 安装并打开 Arduino IDE。
- 选择正确的开发板(Arduino Mega 2560)和端口。
- LiquidCrystal 库:
- Arduino 提供了 LiquidCrystal 库用于控制字符型 LCD。
- 在代码中包含库头文件
#include <LiquidCrystal.h>。 - 实例化 LiquidCrystal 对象,并传入控制引脚编号参数,如
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);。
4. 示例代码
#include <LiquidCrystal.h>// 初始化 LiquidCrystal 对象,并传入控制引脚编号参数
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);void setup() {// 设置 LCD 宽度和高度lcd.begin(16, 2);// 打印消息到 LCDlcd.print("Hello, World!");
}void loop() {// 主循环中不需要执行任何操作,因为消息已经在 setup 中显示
}
cpp复制代码
#include <LiquidCrystal.h> | |
// 初始化 LiquidCrystal 对象,并传入控制引脚编号参数 | |
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); | |
void setup() { | |
// 设置 LCD 宽度和高度 | |
lcd.begin(16, 2); | |
// 打印消息到 LCD | |
lcd.print("Hello, World!"); | |
} | |
void loop() { | |
// 主循环中不需要执行任何操作,因为消息已经在 setup 中显示 | |
} |
5. 仿真与调试
- Wokwi 平台:
- 将代码上传到 Wokwi 平台上的 Arduino Mega 2560 仿真器。
- 在仿真器中观察 LCD 显示屏的显示情况。
- 如果显示不正常,检查硬件连接和代码是否正确。
- 调试技巧:
- 使用串口监视器输出调试信息,帮助定位问题。
- 逐步调试代码,确保每个部分都能正确执行。
6. 高级功能
- 滚动显示:使用
scrollDisplayLeft()和scrollDisplayRight()函数实现文本滚动显示。 - 自定义字符:使用
createChar()函数创建自定义字符,并显示在 LCD 上。 - 动态更新:在主循环中动态更新 LCD 显示的内容,如显示传感器数据。
三、课程总结
通过本课程的学习,你掌握了 LCD 显示屏的基本工作原理、硬件连接方法以及编程技巧。通过示例代码和仿真调试,你能够成功地在 Wokwi 平台上使用 Arduino Mega 2560 控制 LCD 显示屏进行文本显示。希望你在后续的学习中能够继续探索更多高级功能,并将所学知识应用到实际项目中。
四、学习资源
- Arduino 官方文档:获取更多关于 Arduino Mega 2560 和 LiquidCrystal 库的信息。
- Wokwi 平台教程:学习如何在 Wokwi 平台上进行仿真和调试。
- 在线社区和论坛:与其他开发者交流经验,解决遇到的问题。同时,也可以参考其他开发者的项目案例,获取更多灵感和创意。
相关文章:
wokwi arduino mega 2560 - 键盘与LCD显示
截图: 链接: https://wokwi.com/projects/414520193913760769 代码: //cslg lcd key #include <LiquidCrystal.h> // 引入LiquidCrystal库,用于LCD显示 #include <Keypad.h> // 引入Keypad库,用于键盘输…...
Linux设置SSH免密码密钥登录
文章目录 设置SSH免密码密钥登录第一步: 生成SSH密钥对(在客户端操作)方式一:Windows 10/11 内置的 OpenSSH 客户端(推荐)常用选项:密钥算法选择建议生成秘钥 方式二:借用Xshell工具…...
深度剖析HTTP协议—GET/PUT请求方法的使用-构造请求的方法
活动发起人小虚竹 想对你说: 这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!…...
GPU算力哪家好?GpuGeek推出高性能GPU云服务
在人工智能和深度学习领域,GPU算力租赁已成为推动技术创新的关键因素。随着越来越多的企业和个人开发者投身于AI研究和应用开发,如何高效、灵活地获取GPU算力成为了一个亟待解决的问题。GpuGeek作为一站式AI基础设施平台,凭借其独特的优势&am…...
蓝桥杯算法实战分享
蓝桥杯算法实战分享 蓝桥杯是国内知名的程序设计竞赛,涵盖算法、数据结构、编程技巧等多个领域。本文将从实战角度分享蓝桥杯算法竞赛的常见题型、解题思路和优化技巧,帮助参赛者更好地备战。 1. 常见题型与解题思路 蓝桥杯的题型主要包括以下几类&…...
【每日算法】Day 9-1:贪心算法精讲——区间调度与最优选择(C++实现)
掌握高效决策的核心思想!今日深入解析贪心算法的底层逻辑,聚焦区间调度与最优选择两大高频场景,结合大厂真题与严谨证明,彻底掌握“局部最优即全局最优”的算法哲学。 一、贪心算法核心思想 贪心算法(Greedy Algorit…...
构建稳健的机器学习系统:应对数据偏移挑战
构建稳健的机器学习系统:应对数据偏移挑战 1. 引言:数据偏移类型与挑战 在机器学习系统从实验室到生产环境的转变过程中,数据偏移(Data Shift)是最常见也最具挑战性的问题之一。所谓数据偏移,指的是训练数…...
从零构建大语言模型全栈开发指南:第二部分:模型架构设计与实现-2.1.3前馈网络(FFN)与激活函数(GELU)优化
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 2.1.3 前馈网络(FFN)与激活函数(GELU)优化1. 前馈网络(FFN)的架构设计与数学原理1.1 FFN在Transformer中的核心作用2. GELU激活函数的数学特性与优化2.1 GELU的数学形式与近似计算3. 逐行代码实现…...
3个版本的Unity项目的异同
根据搜索结果,以下是关于 SPR 3D Sample Scene(URP)、SPR Universal 3D 和 3D(Built-In Render Pipeline) 的定义及区别分析: 1. 定义与用途 SPR 3D Sample Scene(URP) 是基于 Universal Render Pipeline (URP) 的 3D 示例场景,专为展示 URP …...
组态软件之万维组态介绍(web组态、html组态、vue2/vue3组态、组态软件、组态编辑器)
一、什么是组态软件 组态软件是一种用于创建、配置和管理监控和控制系统的软件工具。组态是指不需要编写计算机程序、通过配置的方式完成工业应用开发的系统。它们通常用于工业自动化领域,用于实时监视和控制工业过程。组态软件提供了丰富的功能和工具,使…...
Linux系统perf命令使用介绍,如何用此命令进行程序热点诊断和性能优化
Linux perf 命令使用指南:程序热点诊断与性能优化 perf 是 Linux 系统上一个强大的性能分析工具,它能够帮助开发者进行程序热点诊断和性能优化。下面详细介绍 perf 的使用方法。 1. perf 简介 perf (Performance Event Counters) 是 Linux 内核提供的…...
《Linux运维实战:Ubuntu 22.04使用pam_faillock实现登录失败处理策略》
总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:Linux运维实战总结 一、背景信息 在ubuntu 22.04中,pam_tally2模块已被弃用,取而代之的是pam_faillock模块。因此…...
AI Agent开发大全第八课-Stable Diffusion 3的本地安装全步骤
前言 就像我们前面几课所述,本系列是一门体系化的教学,它不像网上很多个别存在的单篇博客走“吃快餐”模式,而是从扎实的基础来带领大家一步步迈向AI开发高手。所以我们的AI课程设置是相当全面的,除了有牢固的基础知识外还有外面互联网上也搜不到的生产级实战。 前面讲过…...
Spring MVC 深度解析:原理、源码剖析与实战
Spring MVC 深度解析:原理、源码剖析与实战 在 Spring 体系中,Spring MVC 作为 Web 层的核心框架,承担着请求处理、参数解析、视图渲染等关键任务。今天,我们将深入剖析 Spring MVC 的执行流程,结合 源码分析…...
347 前k个高频元素
步骤1:统计元素频率 使用哈希表(unordered_map)统计每个元素的出现次数,时间复杂度为 O(n)。 步骤2:构建最小堆维护Top K 优先队列(最小堆):用priority_queue维护当前频率最高的k…...
BUUCTF-web刷题篇
1.EASYSQL破解密码 万能公式: 1 and 11 1 and 11 1 or 11 1 or 11 解释:payload SELECT * FROM tables WHERE username1 or 11 and password1 or 11 优先级排序:and 优先级高于 or,所以要计算 and 然后再计算 or username1…...
LeetCode 第31~33题
目录 LeetCode 第31题:下一个排列 LeetCode 第32题:最长有效括号 LeetCode 第33题:搜索旋转排序数组 LeetCode 第31题:下一个排列 题目描述 整数数组的一个排列就是将所有成员以序列或线性顺序排列。例如arr[1,2,3],以…...
【NLP 44、实践 ⑪ 用Bert模型结构实现自回归语言模型的训练】
目录 数据文件 一、模型定义 1.模型初始化 代码运行流程 2.前向传播,计算损失 ⭐ 代码运行流程 二、加载语料 代码运行流程 三、 随机生成样本 代码运行流程 四、建立模型 五、采样策略选择 代码运行流程 六、模型效果测试 代码运行流程 七、模型训练 代码运行流程 …...
Go 语言规范学习(1)
文章目录 IntroductionNotation示例(Go 语言的 if 语句): Source code representationCharacters例子:变量名可以是中文 Letters and digits Lexical elementsCommentsTokensSemicolons例子:查看程序所有的token Ident…...
ShapeCrawler:.NET开发者的PPTX操控魔法
引言 在当今的软件开发领域,随着数据可视化和信息展示需求的不断增长,处理 PPTX 文件的场景日益频繁。无论是自动化生成报告、批量制作演示文稿,还是对现有 PPT 进行内容更新与格式调整,开发者都需要高效的工具来完成这些任务。传…...
微信小程序如何接入直播功能
一、小程序直播开通背景 1.政府资质要求 政府的要求,小程序开通直播需要注册主体具备互联网直播的资质,普通企业需要《信息网络传播视听节目许可证》,表演性质的直播需要《网络文化经营许可证》,政府主体需要《社会信用代码》及…...
ArrayList<E>案例//定义一个方法,将价格低于3000的手机信息返回
import java.util.ArrayList;public class ArrayListphone {public static void main(String[] args){//定义一个方法,将价格低于3000的手机信息返回Phone p1new Phone("小米",1000);Phone p2new Phone("苹果",8000);Phone p3new Phone("锤…...
基于Spring Boot的停车场管理系统的设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
慧通测控汽车智能座舱测试技术
一、引言 随着科技的飞速发展,汽车正从单纯的交通工具向智能化移动空间转变。智能座舱作为这一转变的核心体现,融合了多种先进技术,为用户带来前所未有的驾驶体验。从简单的信息娱乐系统到高度集成的人机交互、智能驾驶辅助以及车辆状态监测…...
Qt进程间通信:QSharedMemory 使用详解
1. 什么是 QSharedMemory? QSharedMemory 是 Qt 中用于进程间共享内存的类。它允许多个进程共享一块内存区域,从而避免数据传输时的 IO 操作,提高通信速度。通过共享内存,多个进程可以直接读写这块内存,而无需经过文件…...
kettle插件-rabbitmq插件
场景:kettle本身可以直接链接rabbitmq,但是需要配置rabbitmq开启mqtt协议,本次讲解下自定义开发组件RabbitMQ consumer,无需开启mqtt协议即可使用。 1、docker 安装rabbitmq 1)下载镜像 docker pull rabbitmq 2&…...
为Windows10的WSL Ubuntu启动sshd服务并使用Trae远程连接
Windows10的WSL Ubuntu,使用起来非常方便,但是美中不足的是,无法从Windows主机ssh到Ubuntu 。 解决的方法是在Ubuntu安装sshd服务 Ubuntu安装sshd服务 执行命令 sudo apt install openssh-server 安装好后,先本地测试&#x…...
【C#.NET】VS2022创建Web API项目
C# Web API 是一种基于 .NET 平台(包括但不限于.NET Framework 和 .NET Core)构建 HTTP 服务的框架,用于创建 RESTful Web 服务。REST(Representational State Transfer)是一种软件架构风格,它利用HTTP协议…...
体育直播系统趣猜功能开发技术实现方案
功能概述 趣猜功能是“东莞梦幻网络科技”体育直播系统源码中的互动功能,主播可以发起竞猜题目,观众使用虚拟货币进行投注,增加直播间的互动性和趣味性。所有货币均为虚拟货币,通过系统活动获取,不可充值提现。 数据…...
33.[前端开发-JavaScript基础]Day10-常见事件-鼠标事件-键盘事件-定时器-案例
1 window定时器 window定时器方法 setTimeout的使用 setInterval的使用 2 轮播消息提示 案例实战一 – 轮播消息提示 3 关闭隐藏消息 案例实战二 – 关闭隐藏消息 4 侧边栏展示 案例实战三 – 侧边栏展示 5 tab切换实现 案例实战四 – 登录框(作业)…...
