笔者补修:本来在老博客中,这是分开的两篇文章,鉴于两篇文章过于浪费读者时间且知识浅显,特此合并一篇文章,希望大家读得开心,看的开心,感受我那时候的simple和naive。
记于2026.1.20
年轻人的第一块Arduino开发板

这里主要记录chi捣鼓他的第一块Arduino开发板的一些小事和注意事项(x
因为chi没有钱钱,所以退其次而求之,买了个国产Arduino小板,虽然还是很贵,要28呜呜呜
如果你是有意的,那么你又蠢又坏;如果你是无意的,那么你就很幼稚 —— 张莉莉
声明:这里引用的话属实,本人不对此发表任何看法。
显然NBFLS进入了高一下学期,马上就要四门学考,学业压力变大,板板也只能回家玩(悲
所以更新什么的不要催啦(
0x01 拿到板子
拿到板子第一件事是做什么?当然是拆开啦(x

这是我拿到的板子,花掉了我28大洋(全恼
因为人比较傻,买的是39套件,根本没有传感器(全恼

这怎么玩啊 rnm,退钱!
0x02 安装驱动
如果你买的是国产小板子,需要去找卖家要驱动,否则没法用(x
如果你有钱,买的是Arduino意大利原产板,就不需要这一步啦
windows无脑.exe即可(x
0x03 下载安装arduino IDE
https://www.arduino.cc/en/software 链接自取 不想做保姆式教程了
我买的这个小板子是兼容UNO的,驱动装好之后打开设备管理器看一下连接的串口,在Arduino IDE里面选择串口和板子就行了。
0x04 Start Coding!
这个是基本的代码:
void setup() // setup函数 顾名思义 拿来做初始工作的
{
}
void loop() // loop函数里面是循环做的事情
{
}
这个是写Hello World的代码:
void setup()
{
Serial.begin(9600); // 设定串口波特率为9600 后面在Serial Monitor里面就要使用这个波特率和板板通信
}
void loop()
{
Serial.println("Hello world!");\t// 串口输出Hello world!
delay(1000);\t// 延时1s 相当于sleep
}
你可以打开Tools -> Serial Monitor观察板子给你发送的内容。当然,Ctrl+Shift+M也可以食用~
这个代码 与 浙教版《信息技术》选择性必修六 (它上面实现的是基于micro:bit的 但是看了下人家都把micro:bit当微电脑 而且套件比arduino不知道贵了多少倍(全恼)) 3.2 开源硬件编程基础 例一 “闪烁的小星星” 有异曲同工之妙
#define led 2 //定义数字IO 2[就是DIGITIAL 2]的名字为led
void setup()//初始化部分
{
pinMode(led,OUTPUT);//定义led引脚为输出模式
}
void loop()
{
digitalWrite(led,LOW);//led引脚输出低电平,点亮led
delay(100);//延时100ms
digitalWrite(led,HIGH);//led引脚输出高电平,熄灭led
delay(100);//延时100ms
}
在烧录好之前使用公转母杜邦线一头插3.3V一头插LED灯的长边,另一个一头插输出2,另一头插LED灯的短边。然后就可以食用啦~
0x05 食用I2C
Arduino UNO的I2C口分别是:A4(SDA) A5(SCL) 要使用I2C的只能接这两个口啦
因为自己买了个I2C版小LCD显示屏回来,所以就拿来玩玩I2C
我们这里使用Arduino自带库让LCD显示 LCD模块编号1602 电压5V
我们首先要把SDA插到A4 SCL插到A5 然后就是 GND接地 VCC接5V 啦
然后就 start coding 啦~
接上之后你就会发现LCD屏会亮 但并没有任何信息
然后就是coding啦
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); //配置LCD地址及行列
// lcd地址默认为0x27 具体看你买的商家提供内容
void setup()
{
lcd.init(); //初始化LCD
lcd.backlight(); //打开背光
Serial.begin(9600);
}
void loop()
{
lcd.setCursor(0,0);//设置显示位置
lcd.print("Hello World!");
}
LCD会显示Hello World的(
0x06 UART
众所周知就是Serial啦~
Arduino的默认波特率为9600,这点要注意(
只要把TX插RX,RX插TX,GND互插就能玩啦(
Serial.begin([Baudrate]) 用于setup函数中
Serial.print/printlnm([Text]) 输出串口
0x07 模拟数据
Arduino的模拟数据口是A0-A3(A4和A5已经被占用成SCL和SDA)
这里用模拟版温度传感器写一段小代码(
analogRead([PIN])读取模拟PIN值(
#include <math.h>
#define TEMP 0 //针脚A0
double Thermister(int RawADC) { //温度转换函数
double Temp;
Temp = log(((10240000/RawADC) - 10000));
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp );
Temp = Temp - 273.15; // Convert Kelvin to Celcius
return Temp;
}
void setup() {
// put your setup code here, to run once:
// pinMode(TEMP, INPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println(Thermister(analogRead(0))); // 读取摄氏度值
delay(500);
}
0x08 小坑
如果出现编译错误的话,Arduino Nano换个处理器(在Tools->Processor里面)(ATmel Amega 168P,默认328P,甚至还有Old Bootloader 建议逐个尝试)
在编译的时候也必须记住 RX(D0) TX(D1) 口在编译的时候不能占用,否则也没办法编译成功!!!
不要跑死循环!!!(delay没加的那种)
0x09 小结
这些仅仅是chi玩电子垃圾的开始(
下一期:年轻人的第一块WIFI/蓝牙模块(
年轻人的第一块WiFi/蓝牙模块
这里主要记录chi捣鼓他的第一块ESP8266和ESP32小板的一些小事和注意事项(x
最近补了点货,买了传感器来了,当然还有ESP32啦~(
chi的100,没力(悲
最近的一个好消息:昨天把“主板坏了”的笔记本修好了,合张影。

rnm修电脑的,退钱!!!还好没有换主板。
其实笔记本只是LVDS接口接触不良导致电脑屏幕没亮而已(全恼(因为我换过屏幕)
然后就速速把台式机里面的nvme拆下来给笔记本用了,之后这台笔记本会黑果(
好了唠嗑结束 进入正文啦(
0x01 开玩
众所周知ESP8266和ESP32是国产板!!!感动中国!!!
ESP8266和ESP32造价低廉(我买的ESP8266要12CNY,ESP32要22CNY),还支持WiFi和蓝牙(ESP32),支持arduino IDE,但是Arduino IDE默认不提供ESP8266和ESP32的板子,需要我们自行安装下载。
打开Arduino IDE -> Perferences -> Additional Board URLs 添加以下的开发板包链接:
https://arduino.esp8266.com/stable/package_esp8266com_index.json
https://githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
如果ghusercontent无法访问 可以把域名调整到
ghraw.chicdn.cn
然后在Boards Manager中搜索ESP8266和ESP32就可以安装了~
ESP32和ESP8266板的文件都是从gh下下来的,如果嫌慢,请自行使用魔法。
0x02 亮起来吧,LED
如何测试一个ESP8266/ESP32模块呢,当然是测试LED啦~
这是测试代码:
#define lcd 2
void setup () {
pinMode(lcd, OUTPUT);
}
void loop () {
writeDigital(lcd, HIGH);
delay(100);
writeDigital(lcd, LOW);
}
亮瞎你的眼
0x03 跑起来吧,Web服务器!
那怎么开个服务器呢(
这是例程:
ESP8266用这个:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#define AP_ssid "WIFINAme" //这里改成你的设备当前环境下要连接的接入点名字
#define password "passw0rd" //这里改成你的设备当前环境下要连接的接入点密码
ESP8266WebServer server(80); //创建Web服务器 80端口监听
int i = 0; //用来判定连接是否超时的累加量
void homepage () {
Server.send(200, "text/html;charset=utf8", "<h1>小黑子食不食油饼</h1><hr/><p>Powered by <a href=\\"https:\\/\\/\\im.chihuo2104.dev/\\" target=\\"_blank\\">chihuo2104</a>.All rights reserved©2018-2023.<br/>Served by ESP32.");
}
void setup() {
Serial.begin(9600); // 启动串口通讯,波特率设置为9600
Serial.println("Start Connection");
//调用 WiFi.begin()函数,开始连接接入点
WiFi.begin(AP_ssid, password);
Serial.print("Connecting to");
Serial.print(AP_ssid);
//这里的循环用来判断是否连接成功的。连接过程中每隔500毫秒会检查一次是否连接成功,,并打一个点表示正在连接中
//连接成功后会给出提示,但是若60秒后还是没有连接上,则会提示超时
while (WiFi.status() != WL_CONNECTED) {
i++;
delay(500);
Serial.print(".");
if (i > 120) { //60秒后如果还是连接不上,就判定为连接超时
Serial.print("Connect Failed!");
break;
}
}
Serial.println("Connect Successful!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
//初始化WebServer
server.on("/", homepage);
server.begin();
Serial.println("HTTP server started");
}
void loop() {
server.handleClient(); //没有这个Web服务器无法提供服务~
}
ESP32用这个:
#include <WiFi.h>
#include <WebServer.h>
WebServer Server(80);
void homeRoute () {
Server.send(200, "text/html;charset=utf8", "<h1>小黑子食不食油饼</h1><hr/><p>Powered by <a href=\\"https:\\/\\/\\im.chihuo2104.dev/\\" target=\\"_blank\\">chihuo2104</a>.All rights reserved©2018-2023.<br/>Served by ESP32.");
}
void setup()
{
WiFi.begin("wifiname", "password"); //连接wifi名称和密码
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.println("Connecting to WiFi..");
}
Serial.println("Connect success.");
Serial.println(WiFi.localIP()); //打印出服务器的IP
Server.on("/", homeRoute);
Server.begin();
}
void loop()
{
Server.handleClient();
}
效果是这样的:

0x04 跑起来吧,Bluetooth!
ESP32是支持蓝牙的,我们可以通过蓝牙和它进行串口通讯~
这是回声例程:
#include <BluetoothSerial.h>
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled!
#endif
BluetoothSerial btSerial;
void setup()
{
btSerial.begin("esp32"); //将作为esp32设备被发现
}
void loop ()
{
if (btSerial.available()) {//有没有内容
btSerial.write(btSerial.read());//返回读取的内容
}
}
这时候我们可以打开手机/电脑来连接蓝牙,进行串口调试:

0x05 小点
烧录出现错误请保持冷静,多次刷写肯定能成功(
下一篇:不知道欸