你知道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,低);}
}
标签:Arduino电路板置(){for