1. Arduino开发板与引脚基础
第一次拿到Arduino Uno开发板时,很多人会被板子上密密麻麻的金属插针吓到。别担心,这些引脚就像乐高积木的接口,只要掌握规律就能玩转它们。我手边这块Uno R3开发板有14个数字引脚(标号0-13)和6个模拟引脚(标号A0-A5),还有电源区和通信接口区。先说说最常用的数字引脚:
数字引脚有个很有趣的特性——它们可以"变身"。通过pinMode()函数,同一个引脚既能当输入用(比如接按钮开关),也能当输出用(比如驱动LED)。我刚开始学的时候,经常忘记设置引脚模式,结果LED死活不亮,排查半天才发现漏写了这行代码。这里有个实用技巧:在setup()函数里集中配置所有引脚模式,就像给演员分配角色一样,开场前先把每个人的任务定好。
模拟引脚则更擅长处理"程度"问题。比如A0引脚接上光敏电阻后,不仅能判断"有没有光",还能测量"光有多强"。实际测试时我发现,analogRead()返回的0-1023数值对应的是电压比例,如果基准电压是5V,那么返回值512就表示检测到约2.5V电压。这个特性在后续的光控项目中会非常有用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境光控小夜灯项目设计
去年我卧室换了个智能夜灯,要两百多块。后来用Arduino自己做了一个,成本不到20元,效果一点也不差。这个项目的核心就是让LED亮度随环境光自动调节,实现"天黑渐亮,天亮渐灭"的效果。
硬件部分需要:
- 光敏电阻(模拟输入)
- LED灯(数字输出)
- 220欧姆电阻(保护LED)
- 10k欧姆电阻(光敏电阻分压用)
接线时有个容易踩的坑:光敏电阻必须配合分压电阻使用。我最初直接把它接在5V和A0之间,结果读数永远接近1023。后来明白需要组成分压电路:5V→光敏电阻→A0→10k电阻→GND。这样当光线变化时,A0点的电压才会正常变化。
软件逻辑分为三层:
- 感知层:用
analogRead()获取环境光强度 - 处理层:将光强读数映射到LED亮度值
- 执行层:用
analogWrite()输出PWM信号
3. 数字信号与模拟信号实战
数字信号就像开关,只有开(1)和关(0)两种状态。用digitalWrite(13,HIGH)点亮LED时,引脚13会稳定输出5V电压。但想让LED半亮怎么办?这就需要PW
