打印
[Atmel]

Arduino介绍之十二:自己编程

[复制链接]
1258|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主


编写自己的程序
自己写代码,你需要学一个基础的编程语法。换句话说,你不得不学用适当的代码让程序懂它。你能用这种语法和符号去思考。
你可以写一整本没有语法和标点符号的书,但是没有人能懂它。甚至用英语写。

当你写自己的代码时一些重要的事情要在脑中记住:
。一个Arduino程序叫做略图
。所有的代码在Arduino略图中从上到下执行。
。Arduino略图被分成5部分:
1.略图通常有个启始的头,解释略图都是做什么,谁写的它。
2.接下来,定义全局变量。在这里经常给出不同管脚的常量定义。
3.当初始变量设置后,Arduino开始进入设置程序。在设置函数里,我们设置需要的变量初始条件,
4.设置函数结束后就进入循环程序。这是略图的主程序.在这里不但执行主程序,而且可以一遍又一遍执行。略图要执行多长时间就执行多长时间。
5.下循环程序之下,是一些函数的排列。这些函数是用户函数并且在SETUP和LOOP中调用。当这些函数被调用时,Arduino 处理所有函数里的语句从上到下,处理完后回到下一行在略图中。哪里是调中子函数的下一行。函数是好的,因为它可以允许你执行你的程序一遍又一遍,不用写想同的代码一遍又一遍。你只是简单的调用函数多次,函数还可以节省芯片的内存,因为它只写一次。它也很容易被读懂。

。上边所说的,略图只分两个部分Setup和Loop程序。
。代码必须用Arduino 语言写,它是一个以C语言为基础的粗略版本
。几乎所有语句必须以;结尾
。判断语句不用加;
。变量是数据的存贮室。你可以把数据存入变量也可从变量取出数据。变量在使用之前必须被定义,变量被定义成与数据类型相关的变量类型。

好下边我们来写程序。读光电管在A0脚,然后控制LED亮在D9脚。
首先:
File --> Examples --> 1.Basic --> BareMinimum

显示如:

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

然后加入头部分说明

Controls the brightness of an LED on pin D9
based on the reading of a photocell on pin A0

This code is in the Public Domain
*/

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}
再次,建立变量:
// name digital pin 9 a constant name
const int LEDPin = 9;

//variable for reading a photocell
int photocell;

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

接下来写定义的管脚的行为:
/*
LED Dimmer
by Genius Arduino Programmer
2012

Controls the brightness of an LED on pin D9
based on the reading of a photocell on pin A0

This code is in the Public Domain
*/

// name analog pin 0 a constant name
const int analogInPin = A0;

// name digital pin 9 a constant name
const int LEDPin = 9;

//variable for reading a photocell
int photocell;

void setup() {
//nothing here right now

}

void loop() {
  //read the analog in pin and set the reading to the photocell variable
  photocell = analogRead(analogInPin);

  //control the LED pin using the value read by the photocell
  analogWrite(LEDPin, photocell);

  //pause the code for 1/10 second
  //1 second = 1000
  delay(100);  
}

如果你想知道光电管上读进的数字,你可以加入串口程序

/*
LED Dimmer
by Genius Arduino Programmer
2012

Controls the brightness of an LED on pin D9
based on the reading of a photocell on pin A0

This code is in the Public Domain
*/

// name analog pin 0 a constant name
const int analogInPin = A0;

// name digital pin 9 a constant name
const int LEDPin = 9;

//variable for reading a photocell
int photocell;

void setup() {
  Serial.begin(9600);

}

void loop() {
  //read the analog in pin and set the reading to the photocell variable
  photocell = analogRead(analogInPin);

  //print the photocell value into the serial monitor
  Serial.print("Photocell = " );                       
  Serial.println(photocell);

  //control the LED pin using the value read by the photocell
  analogWrite(LEDPin, photocell);

  //pause the code for 1/10 second
  //1 second = 1000
  delay(100);  
}


相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6955

帖子

67

粉丝