arduino analogread_Arduino编程语言教程,Arduino和单片机的区别

众所周知,Arduino是一个开放性源码电子平台,拥有灵活、易用的硬件和软件。Arduino作为知名度很高的微控制器,已经融入到好多领域。现在很多中小学生、老师、创客们、设计师、艺术家等都在玩arduino。

Arduino可以接受各种传感器的输入信号从而检测出运行环境,并通过控制光源,电机以及其他驱动器来影响其周围环境。板上的微控制器使用Arduino编程语言和Arduino开发环境,Arduino可以独立运行也可以与计算机进行通信。

那Arduino编程语言入门难吗?很多朋友会问,其实如果你会编程语言C或者C++的话那一点都不难,如果您是小白用户那估计要费点功夫学习了。
Arduino使用C/C++编写程序,虽然C++兼容C语言,但这是两种语言,C语言是一种面向过程的编程语言,C++是一种面向对象的编程语言。早期的Arduino核心库使用C语言编写,后来引进了面向对象的思想,目前最新的Arduino核心库采用C与C++混合编写而成。
通常我们说的Arduino语言,是指Arduino核心库文件提供的各种应用程序编程接口(Application Programming Interface,简称API)的集合。这些API是对更底层的单片机支持库进行二次封装所形成的。例如,使用AVR单片机的Arduino的核心库是对AVR-Libc(基于GCC的AVR支持库)的二次封装。
这些封装好的API,使得程序中的语句更容易被理解,我们不用理会单片机中繁杂的寄存器配置,就能直观的控制Arduino,增强程序的可读性的同时,也提高了开发效率,这也是arduino与单片机的最大区别,使用更简单,效率更高。
下面我们就来学习下arduino编程语言入门教程:


1. 关键字
语法符号:
;
;是一条语句结束的标志,供编译器识别,必须得有。
{}
{}将多条语句合成一个复合语句,能划分语句的作用域,增强整体整体的可读性。
//
//行注释,该行//后的所有语句,文字将不被编译器所编译、执行。相似的,还有,在中的所有语句,文字将不被编译器所编译、执行。
if(表达式)
{
语句A;
}
if(表达式1)
{
语句1;
}
else if(表达式2)
{
语句2;
}
...
else if(表达式n)
{
语句n;
}
else
{
语句n+1;
}
for(初始表达式;条件表达式;循环变量表达式)
{
循环体语句;
}
switch(表达式)
{
case 表达式常量1:语句序列1;
case 表达式常量2:语句序列2;
...
case 表达式常量i:语句序列i;
case 表达式常量n:语句序列n;
default:语句序列n+1;
}
while(条件表达式)
{
循环语句;
循环变量表达式;
}
do
{
循环体语句;
}while(条件表达式);
break;
continue;
return x;
goto 语句标号;
2. 数据类型:

8a3954b8f15eb8b4313365862a7f2736.png


3. 常量
HIGH | LOW 表示数字IO口的高低电平。HIGH 表示高电(1),LOW 表示低电平(0)。
INPUT | OUTPUT 表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT 表示输出(AVR单片机能提供5V电压 40mA电流)。
true | false true 表示真(1),false表示假(0)。
4. 程序结构
声明变量及接口名称(例如:int i;int ledPin=13;)。
void setup() 函数在程序开始时使用,初始化变量,管脚模式,调用库函数等(例如:pinMode(ledPin,OUTUPT);)。
void loop() 在void setup()函数之后,即初始化之后,loop() 让你的程序循环地被执行。使用它来运转Arduino。
5. 数字 I/O
以下型号为UNO
pinMode(pin, mode);
数字IO口输入输出模式定义函数,pin表示为0~13, mode表示INPUT或OUTPUT。
digitalWrite(pin, value) ;
数字IO口输出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。
必须先定义为输入或输出模式digitalWrite才能生效。
int digitalRead(pin);
数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。比如可以读数
字传感器。
6. 模拟IO
int analogRead(pin);
模拟IO口读函数,pin表示为0~5(ArduinoDiecimila为0~5,Arduino nano为0~7)。比如可以读模拟传感器(10位AD,0~5V表示为0~1023)。
analogWrite(pin, value) - PWM
数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数通常在引脚的旁边标注~,pin表示3, 5, 6, 9,10, 11,value表示为0~255。比如可用于电机PWM调速或音乐播放。
7. 扩展 I/O
shiftOut(dataPin, clockPin, bitOrder,value);
SPI外部IO扩展函数,通常使用带SPI接口的74HC595做8个IO扩展,dataPin为数据口,clockPin为时钟口,bitOrder为数据传输方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要传送的数据(0~255),另外还需要一个IO口做74HC595的使能控制。
unsigned long pulseIn(pin, value);脉冲长度记录函数,返回时间参数(us),pin表示为0~13,value为HIGH或LOW。比如value为HIGH,那么当pin输入为高电平时,开始计时,当pin输入为低电平时,停止计时,然后返回该时间。
8. 时间函数
unsigned long millis();返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大概需要50天时间。
delay(ms);延时函数(单位ms)。
delayMicroseconds(us);延时函数(单位us)。
9. 数学函数
min(x, y) ;求最小值。
max(x, y) ;求最大值。
abs(x) ; 计算绝对值。
constrain(x, a, b) ; 约束函数,下限a,上限b,x必须在ab之间才能返回。
map(value, fromLow, fromHigh, toLow,toHigh);约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间。
pow(base, exponent);开方函数,base的exponent次方。
sq(x); 平方。
sqrt(x);开根号。
三角函数:
sin(rad);
cos(rad);
tan(rad);
10. 随机数函数
randomSeed(seed);随机数端口定义函数,seed表示读模拟口analogRead(pin)函数 。
long random(max);随机数函数,返回数据大于等于0,小于max。
long random(min, max);随机数函数,返回数据大于等于min,小于max。
11. 外部中断函数
attachInterrupt(interrupt, , mode;外部中断只能用到数字IO口2和3,interrupt表示中断口初始0或1,表示一个功能函数,mode:LOW低电平中断,CHANGE有变化就中断,RISING上升沿中断,FALLING 下降沿中断。
detachInterrupt(interrupt);中断开关,interrupt=1 开,interrupt=0 关。
interrupts();中断使能函数,用于使能中断。
noInterrupts();中断禁止函数,禁止中断。
12. 串口收发函数
Serial.begin(speed);串口定义波特率函数,speed表示波特率(串行每秒传输数据位数的速率),如9600,19200等。
int Serial.available() 判断缓冲器状态。
int Serial.read();读串口并返回收到参数。
Serial.flush();清空缓冲器。
Serial.print(data);串口输出数据。Serial.print(数据,数据的进制) 默认为十进制(DEC)
Serial.println(data);串口输出数据并带回车符。
13. 重要
以上列举了一些较常用的函数,事实上,在Arduino的安装目录下的libraries还有众多函数可以根据需要进行调用和学习。
也可以自己编写函数然后按照libraries目录下其他函数的格式打包好。放置在libraries目录下,然后自己就可以在IDE环境下调用自己编写的函数了。

c8d200d3255732162630fae0e9abfc46.png


通过以上介绍,其实大家可以看到arduino编程语言入门并不难,以上内容分享出来给大家作为参考,想要了解更多更专业的arduino编程语言教程可以去DF创客社区Arduino教程专栏学习。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我不太清楚 Arduino 是什么,但是我可以告诉你 analog read 是一种从模拟信号中读取数据的技术。Arduino是一款开源的电子开发板,可以通过编写代码控制各种电子设备。analogRead()是Arduino中的一个函数,用于读取模拟输入引脚的电压值。它的用法如下: ``` int sensorValue = analogRead(A0); ``` 其中A0是模拟输入引脚的编号,可以根据需要更改。函数返回的值是一个整数,表示输入引脚的电压值,范围从0到1023(10位精度)。例如,如果输入引脚上的电压为3.3V,则函数将返回约为675的值(因为$3.3V \times \frac{1023}{5V} \approx 675$)。 ### 回答2: Arduino是一款非常流行的开源电子平台,由一个硬件板和一个基于C语言的软件库组成。在Arduino中,有一个允许读取模拟值的函数,称为analogRead()。这个函数是用来读取从某个传感器的输出引脚上接收到的模拟信号的。 Arduino基于Atmel的AVR微控制器,并且这些微控制器具有ADC模块。ADC模块是一种用于将模拟信号转换为数字信号的电路。这个电路把输入的模拟信号量化为数字量,并通过串行方式将它们发送到微控制器的寄存器中,然后在程序中使用analogRead()函数读取这些数字值。 在Arduino中,analogRead()函数的使用非常简单。它需要一个参数,就是引脚号。这个参数告诉Arduino,要从哪个引脚接收模拟信号。对于标准Arduino板,有6个引脚可以用于模拟输入。这6个引脚的数字编号分别为0到5,它们对应的模拟输入引脚是A0到A5。 analogRead()函数返回一个0到1023之间的整数值,表示读取到的模拟信号的电压值。返回值意味着读取的电压值所占电压范围(一般是0到5伏)的比例,因此我们可以通过一定的计算将其转换为实际的电压值。例如,如果我们把一个传感器输出引脚连接到Arduino的A0引脚,然后调用analogRead(A0)函数,返回值为512,这意味着传感器输出的模拟电压为(512/1023)*5 V = 2.49 V。 analogRead()函数是Arduino中非常基础、常用和重要的函数之一。它使得我们可以轻松地读取各种模拟传感器的输出值,并在程序中进行进一步的处理和控制。同时,需要注意的是,analogRead()函数并不是精度和速度最高的模拟转换方式,因此在一些高要求的应用中需要选择更高精度、更快速的模拟转换方式。 ### 回答3: Arduino是一种非常方便的开源硬件,它拥有强大的功能,可以用来实现各种各样的物联网应用。其中一个重要功能是analogread,这是用于读取模拟信号的函数。 模拟信号是指连续变化的信号,通常是在某个范围内的电压或电流。Arduino的一个重要特点就是它可以读取模拟信号。在Arduino Uno和其他类似的板子中,有一些引脚被标记为“模拟输入”,这些引脚是用于读取模拟信号的。 在使用analogread函数之前,你需要定义一个变量来存储读取到的数据值。这个变量可以是一个整数或一个浮点数,不过通常会用整数来存储,这会节省内存空间。 analogread函数有一个参数,即要读取的引脚号。引脚号可以是一个数字,也可以用一个常量来代替,比如A0、A1等。在读取模拟信号时,理论上来说它的值是0到1023之间的整数,其中0代表的是信号的最小值,1023代表的是信号的最大值。 需要注意的是,在Arduino使用analogread函数进行模拟信号读取时,可能会有一些误差。这些误差来自于实际电路中的噪声、时钟频率等因素,因此需要在实际应用中进行调试和测试。 总的来说,analogread函数是Arduino板子上非常有用的功能之一,它可以用于读取各种类型的模拟信号,并为基于Arduino的各种应用提供更多的功能和灵活性。因此,如果你正在开发物联网应用或想挖掘Arduino板子的更多潜力,现在就开始使用analogread函数吧!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值