去年三月份在淘宝购得一块ESP8266开发板
刚刚看了一下居然还涨价了(现在¥27)
按照官方给出的方法烧录 一直没有成功
… …
直到最近我关注的哔哩哔哩UP主 @咩2016 更新了一期视频,上面有提到使用 Arduino IDE 开发 ESP8266的方法
这才想起来我的ESP8266还在吃灰,于是把它找出准备好好研究一下。
具体如何配置才能在Arduino IDE上开发ESP8266呢?
1.首先用数据线连接ESP8266和计算机
2.打开Arduino IDE
选择:文件 -> 首选项
3.
在附加开发板管理器网址处填写:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
4.
工具 -> 开发板 -> 开发板管理器
安装 esp8266 包
5.搞定,接下来就可以像开发Arduino 一样方便地开发ESP8266了!!!
配置好了就得试一试看好不好使(滑稽)
就拿上一次写的 四位数码管来测试一下吧!
先看一下ESP8266针脚定义图
根据此图规划一下针脚
接下来就是简单地修改一下代码了
four_digital_tube_driver_for_esp8266.ino
/*
// Four Digits Tube Driver(common anode)
// Last-Modified:2019-2-10 20:28:13
// Copyright (C) 2019 SENCOM <sencom1997@outlook.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
const int pin_w[4] = {5,4,0,2}; // 四位位选(高电平有效)
const int pin_n[8] = {14,12,13,15,3,1,16,17}; // 八位数字产生(低电平有效)
const int n_0[8] = {0,0,0,0,0,0,1,1}; // 0~9 数字
const int n_1[8] = {1,0,0,1,1,1,1,1};
const int n_2[8] = {0,0,1,0,0,1,0,1};
const int n_3[8] = {0,0,0,0,1,1,0,1};
const int n_4[8] = {1,0,0,1,1,0,0,1};
const int n_5[8] = {0,1,0,0,1,0,0,1};
const int n_6[8] = {0,1,0,0,0,0,0,1};
const int n_7[8] = {0,0,0,1,1,1,1,1};
const int n_8[8] = {0,0,0,0,0,0,0,1};
const int n_9[8] = {0,0,0,0,1,0,0,1};
#define SLEEP 500 //延时
void setup()
{ //初始化
for(int i = 0; i < 4; i++)
pinMode(pin_w[i], OUTPUT);
for(int i = 0; i < 7; i++)
pinMode(pin_n[i], OUTPUT);
}
void print_a_number(int n) //输出 一位数字
{
switch(n)
{
case 0:
for(int i = 0; i < 8; i++)
digitalWrite(pin_n[i],n_0[i] );break;
case 1:
for(int i = 0; i < 8; i++)
digitalWrite(pin_n[i],n_1[i] );break;
case 2:
for(int i = 0; i < 8; i++)
digitalWrite(pin_n[i],n_2[i] );break;
case 3:
for(int i = 0; i < 8; i++)
digitalWrite(pin_n[i],n_3[i] );break;
case 4:
for(int i = 0; i < 8; i++)
digitalWrite(pin_n[i],n_4[i] );break;
case 5:
for(int i = 0; i < 8; i++)
digitalWrite(pin_n[i],n_5[i] );break;
case 6:
for(int i = 0; i < 8; i++)
digitalWrite(pin_n[i],n_6[i] );break;
case 7:
for(int i = 0; i < 8; i++)
digitalWrite(pin_n[i],n_7[i] );break;
case 8:
for(int i = 0; i < 8; i++)
digitalWrite(pin_n[i],n_8[i] );break;
case 9:
for(int i = 0; i < 8; i++)
digitalWrite(pin_n[i],n_9[i] );break;
}
}
void print_number(int nums) //输出一个数字(最多四位)
{
int num[4];
for(int i = 3; i >= 0; i--)
{
num[i] = nums % 10;
nums /= 10;
}
for(int i = 0; i < 4; i++)
{
digitalWrite(pin_w[i], HIGH);
for(int k = 0; k < 4; k++)
{
if(k != i)
digitalWrite(pin_w[i], LOW);
}
print_a_number(num[i]);
}
}
void tube_dance(int spd)
{
for(int i = 0 ;i < 4; i++) //四位同输出
{
digitalWrite(pin_w[i], HIGH);
}
digitalWrite(pin_n[6],HIGH); //禁用h 和 dp
digitalWrite(pin_n[7],HIGH);
for(int i = 0; i < 6; i++)
{
for(int j = 0; j < 6; j++)
{
if(j == i)
digitalWrite(pin_n[j],LOW);
else
digitalWrite(pin_n[j],HIGH);
}
delay(spd);
}
}
void loop()
{
print_number(2019);
}
接线图如下
效果图如下
咦? 这么好的开发板用来点灯也太浪费了吧!
ESP8266 引以为豪 的WIFI 还没用上啊!
END