嵌入式软件/开发板
你了解什么是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这个名字,它被注册成了商标,在没有官方授权的情况下不能使用它。
1.趣味彩灯
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.楼道延时报警灯
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.行程自动往返工件传送带
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三路智能抢答器(直接用带闪烁灯的蜂鸣器更好)
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.机床控制系统
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)
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.工厂顺序启动反顺序停车控制系统
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.楼道声光控灯
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.水塔自动上水装置
void setup() {
pinMode(1,INPUT);
pinMode(9,OUTPUT);}
void loop()
{digitalWrite(9,!digitalRead(1));}
10.电机拖动控制
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);}
}
全部0条评论
快来发表一下你的评论吧 !