Arduino esp32淘晶驰触摸屏画实时正弦波(加注释)
时间: 2023-08-17 11:05:25 浏览: 113
好的,下面是 Arduino esp32 淘晶驰触摸屏画实时正弦波的代码,我已经加上了注释以方便理解:
```C++
#include "SPI.h"
#include "TFT_eSPI.h"
TFT_eSPI tft = TFT_eSPI(); // 初始化 TFT_eSPI 库
#define SCREEN_WIDTH 240 // 屏幕宽度
#define SCREEN_HEIGHT 320 // 屏幕高度
#define MAX_SAMPLES 100 // 最大样本数
#define WAVEFORM_SPEED 1.5 // 波形速度
#define X_OFFSET 0 // 波形 X 轴偏移量
#define Y_OFFSET 160 // 波形 Y 轴偏移量
#define Y_RANGE 120 // 波形 Y 轴范围
float samples[MAX_SAMPLES]; // 存储采样值的数组
int sampleIndex = 0; // 当前采样值的索引
void setup() {
tft.init(); // 初始化屏幕
tft.setRotation(1); // 设置屏幕方向
tft.fillScreen(TFT_BLACK); // 填充黑色背景
analogReadResolution(12); // 设置 ADC 分辨率为 12 位
analogSetAttenuation(ADC_11db); // 设置 ADC 增益为 11dB
// 初始化样本数组
for (int i = 0; i < MAX_SAMPLES; i++) {
samples[i] = 0;
}
}
void loop() {
// 采样并存储当前的 ADC 值
float sampleValue = analogRead(A0) / 4095.0 * 3.3; // 将 ADC 值转换为电压值
samples[sampleIndex] = sampleValue; // 存储采样值
sampleIndex = (sampleIndex + 1) % MAX_SAMPLES; // 更新采样值的索引
// 清空屏幕并画出坐标轴
tft.fillScreen(TFT_BLACK); // 清空屏幕
tft.drawLine(0, Y_OFFSET, SCREEN_WIDTH, Y_OFFSET, TFT_WHITE); // 画 X 轴
tft.drawLine(X_OFFSET, 0, X_OFFSET, SCREEN_HEIGHT, TFT_WHITE); // 画 Y 轴
// 画出波形
for (int i = 0; i < MAX_SAMPLES - 1; i++) {
float x1 = i * SCREEN_WIDTH / MAX_SAMPLES + X_OFFSET;
float x2 = (i + 1) * SCREEN_WIDTH / MAX_SAMPLES + X_OFFSET;
float y1 = Y_OFFSET - samples[i] * Y_RANGE / 3.3;
float y2 = Y_OFFSET - samples[i + 1] * Y_RANGE / 3.3;
tft.drawLine(x1, y1, x2, y2, TFT_GREEN); // 画出相邻两个采样点之间的线段
}
// 休眠一段时间以控制波形的速度
delay(1000 / WAVEFORM_SPEED);
}
```
这个代码可以实现将 ESP32 的 ADC 值转换成电压值并存储到采样数组中,然后在触摸屏上画出实时的正弦波形。根据采样数组中的采样值,通过计算可以得到每个采样点在屏幕上的坐标,从而画出波形。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)