下载IDE:https://www.arduino.cc/

helloworld实验

需要材料:Arduino UNO, 下载线,连接UNO,确定device和port选的都没有问题,打开Serial Monitor, 输入源码,烧录,并输入’R’

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int val;
int ledpin = 13;

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);//设置波特率为9600
pinMode(ledpin,OUTPUT);//设置13为输出端口
}

void loop() {
// put your main code here, to run repeatedly:
val = Serial.read();
if(val == 'R') {
digitalWrite(ledpin, HIGH);
delay(500);
digitalWrite(ledpin, LOW);
delay(500);
Serial.println("Hello world");
}
}

LED 闪烁实验

需要器件:

  • 直插二极管LED(复习高中物理:二极管有P/N两级),二极管在正向的时候会导通,反向的时候回截止。 http://www.jianshe99.com/upload/news/2008/1/9/liusiy95722008191332435945.gif
    LED引脚比较长的是正极,引脚比较短的是负极
  • 220欧直插电阻(限制电流不能过大导致led灯被烧毁)
  • 面包板(相邻的五个点是导通的,相隔的区域是不导通的,两侧是整一横排打通)
  • 面包板条线

原理图如下,控制数字10输出口,输出高低,控制led是否发亮

pasted image
pasted image

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int ledPin = 10;

void setup() {
// put your setup code here, to run once:
pinMode(ledPin, OUTPUT);
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}

模拟接口实验

原理是给了5V的电压,通过可调电阻(电位器)链接到A0口,并读取值

  • arduino有A0-A5六个模拟接口,这六个模拟接口也可以作为数字接口使用,为数字14-19。
    需要器件:
  • 可调电阻
  • 面包板
  • 面包板跳线
    pasted image
    pasted image
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int potpin = 0;
int ledpin = 13;
int val = 0;

void setup() {
// put your setup code here, to run once:
pinMode(ledpin, OUTPUT);
Serial.begin(9600);//设置波特率
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ledpin, HIGH);
delay(50);
digitalWrite(ledpin, LOW);
delay(50);
val = analogRead(potpin);
Serial.println(val);
}

广告灯实验

循环给2-7个输出口高和低信号,行程广告灯效果

  • 220欧电阻6个
  • led二极管6个
  • 线

pasted image
pasted image

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int BASE = 2;
int NUM = 6;
int i = 0;

void setup() {
// put your setup code here, to run once:
for (i=BASE;i<BASE+NUM, i++){
pinMode(i, OUTPUT);
}
}

void loop() {
// put your main code here, to run repeatedly:
for(i=BASE;i<BASE+NUM;i++){
digitalWrite(i,LOW);
delay(200);
}
for(i=BASE;i<base+NUM;i++){
digitalWrite(i, HIGH);
delay(200);
}
}