Arduino 笔记

来源:互联网 发布:免费手机音量增大软件 编辑:程序博客网 时间:2024/06/06 00:44

最近开始玩玩ardunio,从官网看有好多examples,自己熟悉下也顺便翻译留个记录吧

1. 裸板最小代码

第一个例子包括了利用裸机能运行起来的最少代码,只是熟悉下代码结构:包括setup()和loop()

硬件:

- Arduino Board (我用的是UNO 3)

电路:

有个板子和usb线能连电脑就行了

(电路设计部分可以用Fritzing)

代码:

setup():这个函数是程序开始运行需要调用的。可以用这个函数来初始化一些变量,引脚的模式,准备用哪些库,等。在板子上电或者reset后,这个函数只执行一次。

执行setup()后,开始执行loop,和名字一样,这个函数会持续的循环,主要的代码就在这里了,可以通过loop里的代码控制响应板子。

下面的例子没有什么实际功能,但是这个是一个基本的代码结构。

以“//”开头的行是注释,不参与编译。(好的代码一定要有良好的注释哈)

<pre name="code" class="objc"><pre name="code" class="cpp">void  setup(){// put your setup code here, to run once:}void  loop(){// put your main code here, to run repeatedly: }


可以参考:setup()  loop()


2. Blink 亮灯

熟悉了基本代码结构,开始弄个led试试吧

大部分板子开始可能都是从点亮led开始的,看似简单,不过这可以很直观的感受和学习整个板子的输入输出方式和状况

硬件:

 - Arduino Board (还是板子一块,我用的UNO 3)

- LED 一个(话说买了一个套件,头会见到这么精致的电子器件,包装也不错,哈哈)

- resistor 220-ohm(220欧姆的电阻一个)

电路:

也试着用用Fritzing,记得大学只用过protel99,当时是个很痛苦的事情,各种参数各种布线,Fritzing完全改观我了对pcb软件的看法,很精简,有点文艺范,哈哈


F1-led接线

一个小灯,就这么接线就行了

原理图就不贴了

代码:

led我这里接在pin 13, 另一个接地,所以要做的是初始化pin 13为输出引脚

pinMode(13, OUTPUT);

为了点亮led,loop里面只要让13高电平就行了:

digitalWrite(13, HIGH);

相反,关灯就给低电平

digitalWrite(13, LOW);

如果要看到闪烁效果,需要用延时进行调节

delay();int led = 13;void setup(){  pinMode(led, OUTPUT);}void loop(){  digitalWrite(led, HIGH);delay(1000);digitalWrite(led, LOW);delay(1000);} 

然后烧到板子里就能看见一闪一闪的led了:)


3.led-without-delay

上个笔记可以点亮led了,不过delay的时候是很浪费时间的,这里可以采用另外一个方法实现,所以要用到一个新的函数mills():

这个函数可以返回从程序开始到现在的时间,单位是毫秒级,大约达到50天的时候会溢出(重置为0),具体参见函数介绍。

连线图和上一个笔记里一样,就不贴了,点这里

代码:

const int ledPin = 13;int ledState = LOW;long previousMillis = 0;  //记录上一次led状态变化的时间long interval = 1000; //led变化频率,毫秒级,这里还是1秒void setup(){pinMode(ledPin, OUTPUT);}void loop(){unsigned long currentMillis = millis();  if(currentMillis - previousMillis > interval){    previousMillis = currentMillis;    if(ledState == LOW)      ledState = HIGH;    else      ledState = LOW;    digitalWrite(ledPin, ledState);  }}




代码结构很简单,效果和用delay是一样的,但是在loop里面可以做其他的事情了,提高了效率。


0 0
原创粉丝点击