你了解什么是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.趣味彩灯
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);}
}
stm32用什么语言编程
了解物理上不可克隆的功能技术如何使您的设计受益
芯片的结构及原理图
RFID为IT领域提供高效、安全、低成本的资产追踪管理应用
远程4G空调控制器在写字楼中的应用
arduino是什么以及arduino能干什么
谈未来几年我国在芯片领域的布局
数字资产全球大盘交易外盘开发公司,币基金会员管理系统开发
城市停车不用愁!阿里云智能秒停方案隆重发布!
电机起动电流到底有多大?
PCB厂商加速布局东南亚
GDB调试里怎么设置断点
普渡科技创始人兼CEO张涛受邀出席美团2021外卖产业大会
我国移动通信行业未来的10个趋势分析
去中心化身份重不重要
晨星半导体获授权ARM Cortex-A9处理器授权
壹沓科技完成B轮融资,近2亿资金将用于数字员工超自动化产品升级
python正则表达式字符集
大联大世平集团联合中山远大推出基于NXP等众多国际大厂技术和产品的电动汽车交流电充电桩解决方案
9亿像素全景,暗光拍摄清晰呈现,vivo X50 Pro+还有新惊喜