ESP8266从点灯到APP控制小车(一)——初识单片机,点亮LED

ESP8266从点灯到APP控制小车(一)——初识单片机,点亮LED

所需组件

  • ESP8266开发板
  • Arduino IDE
  • 数据线

一、五分钟了解单片机的使用方法

在这里插入图片描述

在这里插入图片描述

二、ESP8266开发板环境搭建

1.下载Arduino IDE

前往Arduino官网下载,这里推荐1.8.13版本

在这里插入图片描述

选择相应的系统下载即可

在这里插入图片描述

2.安装驱动

此压缩包可一键安装驱动和开发板:ESP8266一键安装驱动及开发板包(2.7.4)

驱动官网:https://cn.silabs.com/developers/usb-to-uart-bridge-vcp-drivers

根据自己系统选择相应版本,这里以windows为例

在这里插入图片描述

解压后运行安装包

(操作系统版本64位的操作系统使用x64的安装包,32位的操作系统使用x86的安装包)

在这里插入图片描述

可以看到驱动程序Silicon Lab的状态为可以使用了,说明安装成功

在这里插入图片描述

用USB数据线将ESP8266开发板连接电脑,之后桌面上右键”我的电脑“点击管理,打开设备管理器,,在展开端口那一列,可以看到USB-SERIAL CH340即ok

在这里插入图片描述

3.导入开发包

打开Arduino,点左上角”文件“,点击首选项(此时,ESP8266与电脑成功连接)

在这里插入图片描述

http://arduino.esp8266.com/stable/package_esp8266com_index.json

上面网址复制到首选项的附加开发板管理器网址

在这里插入图片描述

添加好后点击”工具“->”开发板“->”开发板管理器"

在这里插入图片描述

搜索esp8266,下载即可

在这里插入图片描述

下载完毕之后,在工具-开发板-ESP8266,选择NodeMCU 1.0 (ESP-12E Module)

在这里插入图片描述

选择好端口,方便程序上传(在前面的设备管理器查看,我的是COM5)

在这里插入图片描述

三、上传程序,点亮LED

1.示例点亮

选择示例代码

在这里插入图片描述

编译并上传

在这里插入图片描述

上传成功

在这里插入图片描述

当开发板的板载LED灯在闪烁的时候,说明成功了

在这里插入图片描述

2.自行编程点亮

Arduino IDE自带例程使用的是宏 LED_BUILTIN,在大部分 ESP8266 开发板上,这个宏定义对应的是2引脚,以下代码只是将2引脚显式写出来也可达到效果,代码如下

/* Blink*/
 
// 2号引脚连接到了板载LED, 我们将该引脚设置一个别名“led”
int led = 2;
 
// 在板子启动或者复位重启后, setup部分的程序只会运行一次
void setup() {
  // 将“led”引脚设置为输出状态
  pinMode(led, OUTPUT);
}
 
// setup部分程序运行完后,loop部分的程序会不断重复运行
void loop() {
  digitalWrite(led, HIGH);    // 点亮LED,把对应引脚拉高,高电平输出
  delay(500);                // 等待500毫秒
  digitalWrite(led, LOW);     // 通过将引脚电平拉低,关闭LED
  delay(500);                // 等待500毫秒
}
好的,我会尽量详细地回答你的问题。 首先,需要准备以下硬件设备: - AVR单片机(如ATmega328P) - ESP8266单片机 - 一颗LED灯 - 杜邦线若干 - 电源和USB转串口模块(用于烧录程序) 接下来,我们将通过以下步骤来实现你的要求: 1. 确认硬件连接 将AVR单片机ESP8266单片机通过杜邦线连接起来,具体连接方式如下: AVR单片机ESP8266单片机连接 | AVR单片机 | ESP8266单片机 | | --------- | -------------- | | RX | TX | | TX | RX | | GND | GND | | VCC | VCC | 将LED的长脚连接到AVR单片机的PB0引脚,短脚连接到GND。 2. 烧录AVR单片机程序 使用AVR单片机开发环境(如AVR Studio)编写以下程序,并通过USB转串口模块将程序烧录到AVR单片机中: ```c #include <avr/io.h> #include <util/delay.h> #define F_CPU 16000000UL // CPU频率为16MHz #define BAUD 9600 // 波特率为9600 void USART_Init(void) { UBRR0H = (unsigned char)(F_CPU/(16UL*BAUD)-1)>>8; // 设置波特率 UBRR0L = (unsigned char)(F_CPU/(16UL*BAUD)-1); UCSR0B = (1<<TXEN0)|(1<<RXEN0); // 使能UART收发 UCSR0C = (1<<UCSZ00)|(1<<UCSZ01); // 数据位为8位,无校验位,1位停止位 } void USART_Transmit(unsigned char data) { while (!(UCSR0A & (1<<UDRE0))); // 等待缓冲区为空 UDR0 = data; // 发送数据 } int main(void) { DDRB |= (1<<DDB0); // 设置PB0为输出模式 USART_Init(); // 初始化UART while (1) { USART_Transmit('A'); // 向ESP8266发送数据 _delay_ms(500); // 等待500ms } return 0; } ``` 这个程序初始化了AVR单片机的UART模块,并设置波特率为9600。然后程序进入一个死循环,不断向ESP8266发送字母'A',并等待500ms。 3. 烧录ESP8266单片机程序 使用ESP8266单片机开发环境(如Arduino IDE)编写以下程序,并通过USB转串口模块将程序烧录到ESP8266单片机中: ```c #include <SoftwareSerial.h> SoftwareSerial mySerial(2, 3); // 设置软串口接收和发送引脚 void setup() { mySerial.begin(9600); // 设置波特率为9600 pinMode(LED_BUILTIN, OUTPUT); // 设置LED_BUILTIN为输出模式 } void loop() { if (mySerial.available()) { char c = mySerial.read(); // 读取从AVR单片机发送过来的数据 if (c == 'A') { digitalWrite(LED_BUILTIN, HIGH); // 点亮LED delay(500); // 等待500ms digitalWrite(LED_BUILTIN, LOW); // 熄灭LED delay(500); // 等待500ms } } } ``` 这个程序初始化了ESP8266单片机的软串口,并设置波特率为9600。然后程序进入一个死循环,不断读取从AVR单片机发送过来的数据,如果读取到字母'A',则点亮LED,等待500ms后熄灭LED,再等待500ms。 4. 测试 将AVR单片机ESP8266单片机分别连接到电源,打开串口调试工具,设置波特率为9600,打开连接。当AVR单片机发送字母'A'时,ESP8266单片机应该会接收到数据,并控制LED点亮和熄灭。如果一切正常,恭喜你,你已经成功实现了你的要求!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

索子也敲代码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值