史上最全Arduino ESP32教程 点亮单个数码管


前言

Arduino ESP32 是一种强大且灵活的微控制器,它为各种项目提供了广泛的应用场景。数码管(也称为七段数码管)是一种常见的显示设备,用于显示数字字符。它们被广泛应用于电子时钟、计数器和其他需要数字显示的装置中。本教程将详细介绍如何使用 Arduino ESP32 点亮单个数码管,并通过示例代码解释其工作原理。


数码管的概念

数码管由七个 LED 灯段(A-G)和一个小数点组成。通过控制这些灯段的点亮与熄灭,可以显示不同的数字字符。每个灯段对应一个引脚,通过高电平或低电平信号来控制其状态。

数码管有共阴极和共阳极两种类型:

  • 共阴极数码管:所有的阴极(负极)连接在一起,公共引脚接地,点亮各段时需将对应引脚设置为高电平。
  • 共阳极数码管:所有的阳极(正极)连接在一起,公共引脚接电源正极,点亮各段时需将对应引脚设置为低电平。

在本教程中,我们将使用共阴极数码管,并演示如何使用 Arduino ESP32 点亮单个数码管。

所需材料

  • Arduino E
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用数码管需要连接到ESP32-C3的引脚,可以使用任何数字引脚,例如GPIO0~GPIO19。 以下是一个基本的示例代码,使用数字引脚连接到共阴极数码管: ```c++ #include <Arduino.h> // 数码管引脚定义 #define A_PIN 2 #define B_PIN 3 #define C_PIN 4 #define D_PIN 5 #define E_PIN 6 #define F_PIN 7 #define G_PIN 8 #define DP_PIN 9 // 数码管数字定义 const byte DIGITS[] = { B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, // 3 B01100110, // 4 B10110110, // 5 B10111110, // 6 B11100000, // 7 B11111110, // 8 B11110110 // 9 }; void setup() { // 设定引脚模式 pinMode(A_PIN, OUTPUT); pinMode(B_PIN, OUTPUT); pinMode(C_PIN, OUTPUT); pinMode(D_PIN, OUTPUT); pinMode(E_PIN, OUTPUT); pinMode(F_PIN, OUTPUT); pinMode(G_PIN, OUTPUT); pinMode(DP_PIN, OUTPUT); // 初始化数码管,显示数字0 digitalWrite(A_PIN, HIGH); digitalWrite(B_PIN, HIGH); digitalWrite(C_PIN, HIGH); digitalWrite(D_PIN, HIGH); digitalWrite(E_PIN, HIGH); digitalWrite(F_PIN, HIGH); digitalWrite(G_PIN, LOW); digitalWrite(DP_PIN, HIGH); } void loop() { // 显示 0~9 的数字 for (int i = 0; i < 10; i++) { displayDigit(i); delay(1000); } } // 显示数字 void displayDigit(int digit) { if (digit < 0 || digit > 9) return; byte segments = DIGITS[digit]; digitalWrite(A_PIN, bitRead(segments, 0)); digitalWrite(B_PIN, bitRead(segments, 1)); digitalWrite(C_PIN, bitRead(segments, 2)); digitalWrite(D_PIN, bitRead(segments, 3)); digitalWrite(E_PIN, bitRead(segments, 4)); digitalWrite(F_PIN, bitRead(segments, 5)); digitalWrite(G_PIN, bitRead(segments, 6)); digitalWrite(DP_PIN, HIGH); } ``` 在这个示例中,我们使用共阴极数码管,并将它连接到ESP32-C3的数字引脚。我们还定义了一个数字数组,包含每个数字的段式显示模式。 在setup()函数中,我们将所有的引脚设置为输出模式,并初始化数码管以显示数字0。 在loop()函数中,我们使用displayDigit()函数显示0~9的数字。该函数接受一个数字参数,并设置数码管的引脚以显示相应的数字。 在displayDigit()函数中,我们使用DIGITS数组获取数字对应的段式显示模式,并设置数码管的引脚以显示该数字。 您可以根据需要修改示例代码以显示您想要的数字。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人才程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值