记录一下自学的一些成果,教程参考自b站罗大富Bigrich
首先是控制esp32引脚输出高电平利用数码管显示数字3
这里是代码,我把显示数字的代码封装成了函数
#include <Arduino.h>
// put function declarations here:
int pin_a = 22;
int pin_b = 23;
int pin_c = 32;
int pin_d = 12;
int pin_e = 33;
int pin_f = 18;
int pin_g = 19;
int pin_dp = 14;
//定义引脚数组
int pin_array[8]={pin_a,pin_b,pin_c,pin_d,pin_e,pin_f,pin_g,pin_dp};
//定义数字逻辑显示数组
int num_array[][8]=
{//a,b,c,d,e,f,g,dp
{1,1,1,1,1,1,0,0},//0
{0,1,1,0,0,0,0,0},//1
{1,1,0,1,1,0,1,0},//2
{1,1,1,1,0,0,1,0},//3
{0,1,1,0,0,1,1,0},//4
{1,0,1,1,0,1,1,0},//5
{1,0,1,1,1,1,1,0},//6
{1,1,1,0,0,0,0,0},//7
{1,1,1,1,1,1,1,0},//8
{1,1,1,1,0,1,1,0},//9
};
void display_number(int num)
{
for(int i=0;i<8;i++)
{
digitalWrite(pin_array[i],num_array[num][i]);
}
}
void setup() {
// put your setup code here, to run once:
for(int i=0;i<8;i++)
{
pinMode(pin_array[i],OUTPUT);
digitalWrite(pin_array[i],LOW);
}
}
void loop() {
// put your main code here, to run repeatedly:
display_number(3);
}
下一个是按顺序显示数字的代码
#include <Arduino.h>
// put function declarations here:
int pin_a = 22;
int pin_b = 23;
int pin_c = 32;
int pin_d = 12;
int pin_e = 33;
int pin_f = 18;
int pin_g = 19;
int pin_dp = 14;
//定义引脚数组
int pin_array[8]={pin_a,pin_b,pin_c,pin_d,pin_e,pin_f,pin_g,pin_dp};
//定义数字逻辑显示数组
int num_array[][8]=
{//a,b,c,d,e,f,g,dp
{1,1,1,1,1,1,0,0},//0
{0,1,1,0,0,0,0,0},//1
{1,1,0,1,1,0,1,0},//2
{1,1,1,1,0,0,1,0},//3
{0,1,1,0,0,1,1,0},//4
{1,0,1,1,0,1,1,0},//5
{1,0,1,1,1,1,1,0},//6
{1,1,1,0,0,0,0,0},//7
{1,1,1,1,1,1,1,0},//8
{1,1,1,1,0,1,1,0},//9
};
void display_number(int num)
{
for(int i=0;i<8;i++)
{
digitalWrite(pin_array[i],num_array[num][i]);
}
}
void setup() {
// put your setup code here, to run once:
for(int i=0;i<8;i++)
{
pinMode(pin_array[i],OUTPUT);
digitalWrite(pin_array[i],LOW);
}
}
void loop() {
// put your main code here, to run repeatedly:
//display_number(3);
display_number(0);
delay(1000);
display_number(1);
delay(1000);
display_number(2);
delay(1000);
display_number(3);
delay(1000);
display_number(4);
delay(1000);
display_number(5);
delay(1000);
display_number(6);
delay(1000);
display_number(7);
delay(1000);
display_number(8);
delay(1000);
display_number(9);
delay(1000);
}
// put function definitions here: