arduino是什么以及arduino能干什么

嵌入式软件/开发板

72人已加入

描述

  你了解什么是Arduino吗?你知道Arduino能做些什么吗?今天就让我们来认识一下Arduino!什么是Arduino?

  一、什么是Arduino?

  Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。

  

  它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。

  Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。

  1、Arduino的来历

  Massimo Banzi之前是意大利Ivrea一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。 2005年冬天, Massimo Banzi跟David Cuartielles讨论了这个问题。 David Cuartielles是一个西班牙籍晶片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了Banzi的学生David Mellis为电路板设计编程语言。两天以后,David Mellis就写出了程式码。又过了三天,电路板就完工了。Massimo Banzi喜欢去一家名叫di Re Arduino的酒吧,该酒吧是以1000年前意大利国王Arduin的名字命名的。为了纪念这个地方,他将这块电路板命名为Arduino。

  

  随后Banzi、Cuartielles和Mellis把设计图放到了网上。版权法可以监管开源软件,却很难用在硬件上,为了保持设计的开放源码理念,他们决定采用Creative Commons(CC)的授权方式公开硬件设计图。在这样的授权下.任何人都可以生产电路板的复制品,甚至还能重新设计和销售原设计的复制品。人们不需要支付任何费用,甚至不用取得Arduino团队的许可。然而,如果重新发布了引用设计,就必须声明原始Arduino团队的贡献。如果修改了电路板,则最新设计必须使用相同或类似的Creative Commons(CC)的授权方式,以保证新版本的Arduino电路板也会一样是自由和开放的。唯一被保留的只有Arduino这个名字,它被注册成了商标,在没有官方授权的情况下不能使用它。

  二、arduino能干什么

  1.趣味彩灯

  Arduino

  void setup()

  {

  for(int i=0;i《=7;i++) //把0-7设置为输入

  pinMode(i,INPUT);

  for(int j=8;j《=13;j++) //把8-13设置为输出

  pinMode(j,OUTPUT);

  }

  void loop()

  {

  if(digitalRead(1)==HIGH)

  {

  if(digitalRead(1)==HIGH)

  {

  for (int x=9; x《=12; x++) //循环方式依次让每个led在1秒内点亮

  {

  digitalWrite(x,HIGH);

  delay(1000);

  }

  }

  delay(10000);

  for (int x=9; x《=12; x++) //循环方式依次让每个led熄灭

  {

  digitalWrite(x,LOW);

  }

  for (int K=1; K《=10; K++) //循环10次,亮0.5秒灭0.5秒,共10秒

  {

  digitalWrite(13,HIGH);

  delay(500);

  digitalWrite(13,LOW);

  delay(500);

  }

  }

  }

  2.楼道延时报警灯

  Arduino

  void setup()

  {

  for(int i=0,j=9;i《=8,j《=13;i++,j++) //设置0-8为输入,9-13为输出

  {pinMode(i,INPUT);pinMode(j,OUTPUT);}

  }

  void loop()

  {

  if(digitalRead(1)==HIGH||digitalRead(2)==HIGH) //引脚1或2置高电平

  {

  digitalWrite(9,HIGH); //9置高电平

  delay(25000); //延时25秒

  digitalWrite(10,HIGH); //10置高电平

  delay(5000); //延时5秒

  digitalWrite(10,LOW); //10置低电平

  digitalWrite(9,LOW); //9置低电平

  }

  }

  3.行程自动往返工件传送带

  Arduino

  void setup()

  {

  for(int i=0;i《=7;i++) //把0-7设置为输入

  pinMode(i,INPUT);

  for(int j=8;j《=13;j++) //把8-13设置为输出

  pinMode(j,OUTPUT);

  }

  void loop() {

  if(digitalRead(1)==HIGH){

  digitalWrite(9,HIGH);

  digitalWrite(10,LOW);

  }

  if(digitalRead(2)==HIGH){

  digitalWrite(10,HIGH);

  digitalWrite(9,LOW);

  }

  if(digitalRead(3)==HIGH){

  digitalWrite(9,LOW);

  digitalWrite(10,LOW);

  }

  }

  4.A、B、C三路智能抢答器(直接用带闪烁灯的蜂鸣器更好)

  Arduino

  void setup()

  {

  for(int i=0,j=9;i《=8,j《=13;i++,j++) //设置0-8为输入,9-13为输出

  {pinMode(i,INPUT);pinMode(j,OUTPUT);}

  }

  void loop()

  { if(digitalRead(1)==HIGH&&digitalRead(11)==LOW&&digitalRead(13)==LOW)

  {

  digitalWrite(8,HIGH);

  digitalWrite(9,HIGH);

  } if(digitalRead(2)==HIGH&&digitalRead(9)==LOW&&digitalRead(13)==LOW)

  {

  digitalWrite(10,HIGH);

  digitalWrite(11,HIGH);

  }

  if(digitalRead(3)==HIGH&&digitalRead(9)==LOW&&digitalRead(11)==LOW)

  {

  digitalWrite(12,HIGH);

  digitalWrite(13,HIGH);

  }

  if(digitalRead(4)==HIGH)

  {

  for(int k=8;k《=13;k++)

  digitalWrite(k,LOW);

  }

  }

  5.机床控制系统

  Arduino

  void setup()

  {

  for(int i=0;i《=7;i++) //把0-7设置为输入

  {pinMode(i,INPUT);}

  for(int j=8;j《=13;j++) //把8-13设置为输出

  {pinMode(j,OUTPUT);}

  }

  void loop() {

  digitalWrite(9,digitalRead(1));

  digitalWrite(10,!digitalRead(2));

  digitalWrite(11,digitalRead(3));

  }

  6.楼上楼下共控一灯(方式2)

  Arduino

  void setup()

  {

  for(int i=0,j=9;i《=8,j《=13;i++,j++) //设置0-8为输入,9-13为输出

  {pinMode(i,INPUT);pinMode(j,OUTPUT);}

  }

  void loop() {

  if(digitalRead(1) == HIGH) //有按键按下

  {

  delay(20); //延时去抖动

  if(digitalRead(1) == HIGH) //有按键按下

  {

  digitalWrite(9,!digitalRead(9)); //LED的状态翻转

  while(digitalRead(1) == HIGH); //等待按键松手

  }

  }

  if(digitalRead(2) == HIGH) //有按键按下

  {

  delay(20); //延时去抖动

  if(digitalRead(2) == HIGH) //有按键按下

  {

  digitalWrite(9,!digitalRead(9)); //LED的状态翻转

  while(digitalRead(2) == HIGH); //等待按键松手

  }

  }

  }

  7.工厂顺序启动反顺序停车控制系统

  Arduino

  void setup()

  {

  for(int i=0;i《=7;i++) //把0-7设置为输入

  {pinMode(i,INPUT);}

  for(int j=8;j《=13;j++) //把8-13设置为输出

  {pinMode(j,OUTPUT);}

  }

  void loop() {

  if(digitalRead(1)==HIGH)

  {digitalWrite(9,HIGH);

  delay(5000);

  digitalWrite(10,HIGH);}

  if(digitalRead(2)==HIGH)

  {digitalWrite(10,LOW);

  delay(5000);

  digitalWrite(9,LOW);}

  }

  8.楼道声光控灯

  Arduino

  void setup()

  {

  for(int i=0;i《=7;i++) //把0-7设置为输入

  {pinMode(i,INPUT);}

  for(int j=8;j《=13;j++) //把8-13设置为输出

  {pinMode(j,OUTPUT);}

  }

  void loop() {

  if(digitalRead(1)==HIGH&digitalRead(2)==HIGH)

  {digitalWrite(9,HIGH);

  delay(20000);

  digitalWrite(9,LOW);}

  }

  9.水塔自动上水装置

  Arduino

  Arduino

  void setup() {

  pinMode(1,INPUT);

  pinMode(9,OUTPUT);}

  void loop()

  {digitalWrite(9,!digitalRead(1));}

  10.电机拖动控制

  Arduino

  void setup()

  {

  for(int i=0;i《=7;i++) //把0-7设置为输入

  pinMode(i,INPUT);

  for(int j=8;j《=13;j++) //把8-13设置为输出

  pinMode(j,OUTPUT);

  }

  void loop()

  {

  if(digitalRead(1)==HIGH&&digitalRead(9)==LOW&&digitalRead(10)==LOW)

  {

  digitalWrite(9,HIGH);

  delay(5000);

  digitalWrite(10,HIGH);

  }

  if(digitalRead(2)==HIGH)

  {digitalWrite(9,HIGH);}

  if(digitalRead(3)==HIGH)

  {digitalWrite(9,LOW);}

  if(digitalRead(4)==HIGH)

  {digitalWrite(10,HIGH);}

  if(digitalRead(5)==HIGH)

  {digitalWrite(10,LOW);}

  }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
hyjqd 2018-01-03
0 回复 举报
深入浅出! 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分