【零知ESP8266教程】快速入门13 - 1位数码管显示

本文详细介绍使用ESP8266开发板控制1位共阳数码管的方法,包括硬件连接、代码编写及调试过程,适合电子制作初学者。

本次分享,我们在基础上逐渐要开始加大难度,因为新电子元素的加入,我们的项目会出现各种各样的控制该元器件的代码,因为这个案例接线调试对于入门的小白来说比较复杂,所以我在这里做一次详细的接线解释以及原理解释,对代码调试做一些详细解释。

本次试验的新元素——1位数码管
一、工具原料
电脑,windows系统
零知ESP8266开发板
micro-usb线
数码管1个(共阳)
220Ω 电阻8个
面包板一个+若干跳线

二、硬件连接
(共阳即正极接在电源,负极接在引脚,控制负极电频高低来控制显示)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
我在图中标注了详细的接法(接法不唯一,根据你的代码来接)

a,b,c…dp对应设置了什么,就把a,b,c…dp接到对应的引脚。

三、方法步骤
1、打开零知实验室软件开发工具,如图所示:
在这里插入图片描述

2、然后新建项目,输入以下代码:

/**
*    文件: 数码管-1位.ino      by 零知实验室([url=http://www.lingzhilab.com]www.lingzhilab.com[/url])
*    -- 零知开源,让电子制作变得更简单! --
*    时间: 2018/05/31 6:13
*    说明: 测试1位数码管
**/
   
//下面为定义a~h, dp的引脚
int a = D5;//a段
int b = D6;
int c = D7;
int d = D4;
int e = D2;
int f = D1;
int g = D0;
int dp = D8;
   
int pinArray[8] = {D5,D6,D7,D4,D2,D1,D0,D8};//数组,通过下标获取
   
//分别显示0-9
void digital_show_0(void);
void digital_show_1(void);
void digital_show_2(void);
void digital_show_3(void);
void digital_show_4(void);
void digital_show_5(void);
void digital_show_6(void);
void digital_show_7(void);
void digital_show_8(void);
void digital_show_9(void);
   
// the setup routine runs once when you press reset:
void setup() {
       
   
    // put your setup code here, to run once:
        int i = 0;
        for(i=0; i<=7; i++)
        {
                pinMode( pinArray[i], OUTPUT);
        }
          
           
           
           
}
   
// the loop routine runs over and over again forever:
void loop() {
    // put your main code here, to run repeatedly:
       
        digital_show_0();
       
        delay(1000);
       
        digital_show_1();
        delay(1000);
       
        digital_show_2();
        delay(1000);
        digital_show_3();
        delay(1000);
        digital_show_4();
        delay(1000);
        digital_show_5();
        delay(1000);
        digital_show_6();
        delay(1000);
        digital_show_7();
        delay(1000);
        digital_show_8();
        delay(1000);
        digital_show_9();
        delay(1000);
}
   
void digital_show_0(void) //显示数字0
{
        unsigned char j;
        digitalWrite(a,LOW);
        digitalWrite(b,LOW);
        digitalWrite(c,LOW);
        digitalWrite(d,LOW);
        digitalWrite(e,LOW);
        digitalWrite(f,LOW);
        digitalWrite(g,HIGH);
        digitalWrite(dp,HIGH);
}
   
void digital_show_1(void) //显示数字1
{
        digitalWrite(a,HIGH);
        digitalWrite(b,LOW);
        digitalWrite(c,LOW);
        digitalWrite(d,HIGH);
        digitalWrite(e,HIGH);
        digitalWrite(f,HIGH);
        digitalWrite(g,HIGH);
        digitalWrite(dp,HIGH);
}
   
void digital_show_2(void) //显示数字2
{        
        digitalWrite(a,LOW);
        digitalWrite(b,LOW);
        digitalWrite(c,HIGH);
        digitalWrite(d,LOW);
        digitalWrite(e,LOW);
        digitalWrite(f,HIGH);
        digitalWrite(g,LOW);
        digitalWrite(dp,HIGH);
}
   
void digital_show_3(void) //显示数字3
{        
        digitalWrite(a,LOW);
        digitalWrite(b,LOW);
        digitalWrite(c,LOW);
        digitalWrite(d,LOW);
        digitalWrite(e,HIGH);
        digitalWrite(f,HIGH);
        digitalWrite(g,LOW);
        digitalWrite(dp,HIGH);
}
   
void digital_show_4(void) //显示数字4
{
        digitalWrite(c,LOW);
        digitalWrite(b,LOW);
        digitalWrite(f,LOW);
        digitalWrite(g,LOW);
        digitalWrite(dp,HIGH);
        digitalWrite(a,HIGH);
        digitalWrite(e,HIGH);
        digitalWrite(d,HIGH);
}
void digital_show_5(void) //显示数字5
{
        digitalWrite(a,LOW);
        digitalWrite(b, HIGH);
        digitalWrite(c,LOW);
        digitalWrite(d,LOW);
        digitalWrite(e, HIGH);
        digitalWrite(f,LOW);
        digitalWrite(g,LOW);
        digitalWrite(dp,HIGH);
}
void digital_show_6(void) //显示数字6
{        
        digitalWrite(a,LOW);
        digitalWrite(b,HIGH);
        digitalWrite(c,LOW);
        digitalWrite(d,LOW);
        digitalWrite(e,LOW);
        digitalWrite(f,LOW);
        digitalWrite(g,LOW);
        digitalWrite(dp,HIGH);
}
void digital_show_7(void) //显示数字7
{        
        digitalWrite(a,LOW);
        digitalWrite(b,LOW);
        digitalWrite(c,LOW);
        digitalWrite(d,HIGH);
        digitalWrite(e,HIGH);
        digitalWrite(f,HIGH);
        digitalWrite(g,HIGH);
        digitalWrite(dp,HIGH);
}
void digital_show_8(void) //显示数字8
{        
        digitalWrite(a,LOW);
        digitalWrite(b,LOW);
        digitalWrite(c,LOW);
        digitalWrite(d,LOW);
        digitalWrite(e,LOW);
        digitalWrite(f,LOW);
        digitalWrite(g,LOW);
        digitalWrite(dp,HIGH);
}
void digital_show_9(void) //显示数字9
{
        digitalWrite(a,LOW);
        digitalWrite(b,LOW);
        digitalWrite(c,LOW);
        digitalWrite(d,LOW);
        digitalWrite(e, HIGH);
        digitalWrite(f,LOW);
        digitalWrite(g,LOW);
        digitalWrite(dp,HIGH);
}

2、按照之前的方式先【验证】,然后【上传】到开发板中。
四、成果展示
上面步骤成功完成后,我们就可以看到预期的结果了,如下:
效果视频:点我传送

### ESP8266 模块接入面包板的方法 为了将ESP8266模块成功连接到面包板并进行开发,需遵循特定的硬件连接指南。具体来说: #### 连接电源 确保给ESP8266提供稳定的3.3V电压是非常重要的。可以采用Arduino或其他稳压源来供电。红色导线应连接至Arduino的3.3V引脚,并延伸至面包板上的相应置[^3]。 #### 接地处理 黑色导线用于接地(GND),一端同样接到Arduino的GND引脚,另一端则放置于面包板内的公共负极区域,以此建立完整的电流回路。 #### 数据传输线路 对于数据交换而言,TXD(发送)和RXD(接收)针脚需要被正确配对。通常情况下,ESP8266的TXD要连向微控制器MCU或计算机USB转串口适配器的RXD;反之亦然,即ESP8266的RXD对接对方的TXD接口[^1]。 #### GPIO引脚操作 依据项目需求,可利用额外的颜色编码跳线把其他功能性的GPIO引脚映射到面包板上来实现更多样化的交互逻辑。值得注意的是,在初次启动时可能还需要短时间拉低RST/CH_PD引脚以触发复动作[^2]。 ```cpp // 示例代码展示如何初始化ESP8266作为Wi-Fi客户端 #include <ESP8266WiFi.h> const char* ssid = "yourSSID"; const char* password = "yourPASSWORD"; void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to the Wi-Fi network"); } void loop() { } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值