(4.22~4.27)arduino学习+51学习准备

本文介绍了如何使用for循环控制ArduinoUno或类似单片机的LED灯亮度,包括analogWrite()函数的应用,以及通过analogRead()获取模拟输入并利用map()进行等比映射。还提及了51单片机的学习资源,如江协科技入门教程和Keil5/STC-ISP开发工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,用for循环控制LED灯亮度

代码:

void setup() {
  pinMode(9,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
for (int bright = 0; bright<255;bright++){
  analogWrite(9,bright);
  Serial.println(bright);
  delay(10);
}
for (int bright =255; bright>0;bright--){
  analogWrite(9,bright);
  Serial.println(bright);
  delay(10);
}
}

for

2.analogRead()的熟悉与电位器控制LED亮度

analogRead()

说明

本指令用于从Arduino的模拟输入引脚读取数值。Arduino控制器有多个10位数模转换通道。这意味着Arduino可以将0-5伏特的电压输入信号映射到数值0-1023。

换句话说,我们可以将5伏特等分成1024份。0伏特的输入信号对应着数值0,而5伏特的输入信号对应着1023。

注意:在模拟输入引脚没有任何连接的情况下,用analogRead()指令读取该引脚,这时获得的返回值为不固定的数值。这个数值可能受到多种因素影响,如将手靠近引脚也可能使得该返回值产生变化。

map()函数-等比映射

map()可以用来将某一数值从一个区间等比映射到一个新的区间。

语法
map (x, in_min, in_max, out_min, out_max)

注意

map()不会将数值限制在映射区间内。

 注:不同的开发板的模拟输出与输入不同

代码:

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
pinMode(9,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
int analogInputVal = analogRead(A0);
int bright = map(analogInputVal,0,1023,0,255);//将模拟输入数值(0~1023)等比映射到(0~255)
Serial.println(analogInputVal);
analogWrite(9,bright);
}

实物演示

LED

51单片机的学习准备:

学习视频:江协科技51单片机入门教程

学习软件下载:Keil5,与STC-ISP

下载链接:https://jiangxiekeji.com/download.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值