艾巴生活网

您现在的位置是:主页>科技 >内容

科技

arduino是干什么的_arduino是什么以及arduino能干什么

2024-03-11 10:02:02科技帅气的蚂蚁
你知道Arduino是什么吗?你知道Arduino能做什么吗?今天就来认识一下Arduino吧!Arduino是什么?一、什么是Arduino?Arduino是一个方便、灵

arduino是干什么的_arduino是什么以及arduino能干什么

你知道Arduino是什么吗?你知道Arduino能做什么吗?今天就来认识一下Arduino吧!Arduino是什么?

一、什么是Arduino?Arduino是一个方便、灵活、易用的开源电子原型平台。包括硬件(各种型号的Arduino板)和软件(Arduino IDE)。由一个欧洲开发团队在2005年冬天开发。其成员包括马西莫班齐、戴维夸蒂耶莱斯、汤姆伊戈、吉安卢卡马蒂诺、戴维梅利斯和尼古拉斯赞贝蒂。

它建立在开源的简单I/O接口版本上,具有类似于Java和C语言的处理/布线开发环境。主要包括两个主要部分:硬件部分是Arduino电路板,可用于电路连接;另一个是你电脑里的程序开发环境Arduino IDE。只要你在IDE里写好程序代码,把程序上传到Arduino电路板上,程序就会告诉Arduino电路板该怎么做。

Arduino可以通过各种传感器感知环境,并通过控制灯光、电机等设备反馈和影响环境。板上的微控制器可以通过Arduino编程语言编写程序,编译成二进制文件,烧录到微控制器中。Arduino的编程是通过Arduino编程语言(基于接线)和Arduino开发环境(基于处理)实现的。基于Arduino的项目可以只包含Arduino,也可以包含Arduino和其他运行在PC上的软件,它们之间互相通信(比如Flash,Processing,MaxMSP)。

1、 Arduino的来源

马西莫班兹曾经是意大利伊夫雷亚一所高科技设计学校的老师。他的学生经常抱怨说,他们找不到便宜易用的微控制器。2005年冬天,马西莫班齐与大卫库阿蒂尔斯讨论了这个问题。David Cuartielles是一名西班牙芯片工程师,他是这所学校的访问学者。两人决定自己设计电路板,并介绍班兹的学生大卫梅利斯(David Mellis)为电路板设计编程语言。两天后,大卫梅利斯编写了代码。三天后,电路板做好了。马西莫班兹喜欢去一家名为热地阿杜伊诺的酒吧,它是以1000年前意大利国王阿杜因的名字命名的。为了纪念这个地方,他将这块电路板命名为Arduino。

然后Banzi,Cuartielles和Mellis把设计放到了网上。版权法可以监管开源软件,但很难适用于硬件。为了保持设计的开源理念,他们决定使用Creative Commons(CC)来公开硬件设计图。在这样的授权下,任何人都可以生产电路板的复制品,甚至可以重新设计并出售原设计的复制品。人们不需要支付任何费用,甚至不需要获得Arduino团队的许可。但是,如果重新发布参考设计,则必须声明原始Arduino团队的贡献。如果电路板被修改,最新的设计必须使用相同或相似的Creative Commons(CC)授权方法,以确保新版本的Arduino电路板也将是免费和开放的。唯一剩下的就是Arduino这个名字,注册为商标,没有官方授权不能使用。

二、 Arduino能做什么?1.有趣的彩灯。

无效设置()

{

for(int I=0;I"=7;I) //设置0-7作为输入。

pinMode(i,输入);

for(int j=8;j"=13;J) //设置8-13为输出。

pinMode(j,输出);

}

无效循环()

{

if(digital read(1)==高电平)

{

if(digital read(1)==高电平)

{

for(int x=9;x “=12;X) //循环模式使每个led在1秒内依次点亮。

{

digitalWrite(x,高);

延时(1000);

}

}

延时(10000);

for(int x=9;x “=12;X) //循环模式依次关闭每个led。

{

digitalWrite(x,低);

}

for(int K=1;k"=10;K) //循环10次,开0.5秒,关0.5秒,共10秒。

{

digitalWrite(13,高);

延迟(500);

digitalWrite(13,低);

延迟(500);

}

}

}

2.走廊延误警示灯

无效设置()

{

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

{pinMode(i,输入);pinMode(j,输出);}

}

无效循环()

{

if(数字读数(1)==高| |数字读数(2)==高)//引脚一或2置高电平

{

数字书写(9,高);//9置高电平

延时(25000);//延时25秒

数字书写(10,高);//10置高电平

延时(5000);//延时5秒

数字书写(10,低);//10置低电平

数字书写(9,低);//9置低电平

}

}

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

无效设置()

{

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

pinMode(即,输入);

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

pinMode(j,输出);

}

空的循环(){

if(数字读数(1)==高电平){

数字书写(9,高);

数字书写(10,低);

}

if(数字读数(2)==高电平){

数字书写(10,高);

数字书写(9,低);

}

if(数字读数(3)==高电平){

数字书写(9,低);

数字书写(10,低);

}

}

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

无效设置()

{

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

{pinMode(i,输入);pinMode(j,输出);}

}

无效循环()

{ if(数字读数(1)==高数字读数(11)==低数字读数(13)==低

{

digitalWrite(8,高);

数字书写(9,高);

} if(数字读取(2)==高数字读取(9)==低数字读取(13)==低)

{

数字书写(10,高);

数字书写(11,高);

}

if(数字读数(3)==高数字读数(9)==低数字读数(11)==低)

{

数字书写(12,高);

数字书写(13,高);

}

if(数字读数(4)==高电平)

{

for(int k=8;k"=13k)

数字书写(k,低);

}

}

5.机床控制系统

无效设置()

{

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

{pinMode(i,输入);}

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

{pinMode(j,输出);}

}

空的循环(){

digitalWrite(9,digital read(1));

digitalWrite(10,digital read(2));

digitalWrite(11,数字read(3));

}

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

无效设置()

{

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

{pinMode(i,输入);pinMode(j,输出);}

}

空的循环(){

if(digitalRead(1)==高电平)//有按键按下

{

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

if(digitalRead(1)==高电平)//有按键按下

{

digitalWrite(9,digital read(9));//发光二极管的状态翻转

while(digitalRead(1)==高电平);//等待按键松手

}

}

if(digitalRead(2)==高电平)//有按键按下

{

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

if(digitalRead(2)==高电平)//有按键按下

{

digitalWrite(9,digital read(9));//发光二极管的状态翻转

while(digitalRead(2)==高电平);//等待按键松手

}

}

}

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

无效设置()

{

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

{pinMode(i,输入);}

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

{pinMode(j,输出);}

}

空的循环(){

if(数字读数(1)==高电平)

{digitalWrite(9,高);

延时(5000);

数字书写(10,高);}

if(数字读数(2)==高电平)

{digitalWrite(10,低);

延时(5000);

数字书写(9,低);}

}

8.楼道声光控灯

无效设置()

{

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

{pinMode(i,输入);}

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

{pinMode(j,输出);}

}

空的循环(){

if(数字读取(1)==高数字读取(2)==高)

{digitalWrite(9,高);

延时(20000);

数字书写(9,低);}

}

9.水塔自动上水装置

void setup() {

pinMode(1,输入);

pinMode(9,输出);}

无效循环()

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

10.电机拖动控制

无效设置()

{

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

pinMode(即,输入);

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

pinMode(j,输出);

}

无效循环()

{

if(数字读数(1)==高数字读数(9)==低数字读数(10)==低)

{

数字书写(9,高);

延时(5000);

数字书写(10,高);

}

if(数字读数(2)==高电平)

{digitalWrite(9,高);}

if(数字读数(3)==高电平)

{digitalWrite(9,低);}

if(数字读数(4)==高电平)

{digitalWrite(10,高);}

if(数字读数(5)==高电平)

{digitalWrite(10,低);}

}