Arduino UNO
Arduino IDE安装:https://www.arduino.cn/
本系列教程基于UNO系列的单片机
你将会学到
1.基本的Arduino知识
2.简单的点灯程序
3.超声波测距的原理及方法
Arduino数据手册
技术参数
Arduino UNO带有4个LED指示灯,作用分别如下:
ON:
电源指示灯。当Arduino通电时,ON灯会点亮。
TX:
串口发送指示灯。当使用USB连接到计算机且Arduino向计算机传输数据时,TX灯会点亮。
RX:
串口接收指示灯。当使用USB连接到计算机且Arduino接收到计算机传来的数据时,RX灯会点亮。
L:
可编程控制指示灯。该LED通过特殊电路连接到Arduino的13号引脚,当13号引脚为高电平或高阻态时,该LED 会点亮;低电平时,不会点亮。可以通过程序或者外部输入信号,控制该LED亮灭。
按规矩,从点灯入手:
int ledPinIN0 = 13;//定义数字13 接口
void setup() //初始化执行
{
pinMode(ledPinIN0,OUTPUT);//定义小灯接口为输出接口
}
void loop() //循环执行
{
digitalWrite(ledPinIN0, HIGH); //点亮小灯
delay(1000); //延时1 秒
digitalWrite(ledPinIN0, LOW); //熄灭小灯
delay(1000); // 延时1 秒
}
然后我们就能看到小灯隔一秒亮灭。
在这之上,我们可以学习简单的超声波测距原理
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2 这就是所谓的时间差测距法。(有一定的温度误差和测量误差)
接法
使用293D扩展板
将超声波模块接口对应扩展板的SR04,即可。
/*
Arduino UNO与US-100超声波模块测试
电平触发模式
*/
const int TrigPin = 8;
const int EchoPin = 9;
float cm;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT); //设置输出引脚,
pinMode(EchoPin, INPUT);
}
void loop()
{
digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
cm = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm
cm = (int(cm * 100.0)) / 100.0; //保留两位小数
Serial.print("Distance:"); //向串口输出
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(1000);
}
pulseIn()为脉冲宽度,假设声速344m/s,换成cm = (344100)/1000000pulseIn()/2
延迟2微秒 delayMicroseconds(2)
延迟1秒 delay(1000);
结果
总结:
由于最近学习Arduino系列的智能小车,因此,先从简单部分入手,再慢慢增加难度,最后去学习STM32系列的单片机。