arduino入门总结和我的几个小项目

前言

简单说明一下:本人是一个业余创客爱好者、电子发烧友,学习arduino有近两年的时间,中间走了不少弯路,这一路走下坎坎坷坷,花费了大量时间去自学C语言、电子电路基础知识(数电模电)、arduino(原生IDE、vscode中的platformIO);花了不少银子买各种各样的电路制作工具,自己DIY了一台3D打印机,在最冲动的时候(那时候有点飘了,觉得自己很NB了)竟然去花了1k多找人去设计电路板做stm贴片(在这里我不得不吐槽一下嘉立创,没有一定的电子电路设计知识,不要盲目的去做stm贴片,老老实实的做板子自己焊)。目前自己做了几个有意思的小项目,这里我总结了一下我自己的学习历程,供大家参考,让新手小白尽可能的去绕过这些坑。后期我会将这些小项目公开,逐个为大家讲解。这也是我第一次写博客,如有不妥之处请大家指出,我会及时更正,也请各路技术大佬多多指导关照,带领我们这些业余爱好者一起进步。

学习Arduino从哪里开始?

有很多人问我,学习aruidno要从哪里开始呢?

以前我鼓捣的跟电子电路最近最相关的东西就是我的台式机电脑了,那是在大学的时候,有事没事喜欢改改系统里的东西,就觉得挺神奇的,当时最有成就感的时候就是她让我给清理电脑的装系统的时候(你们都懂的,嘿嘿)。这些也仅仅就是了解了电脑的基本组成、BIOS怎么进的、开机怎么设置BIOS、以及怎么装系统、XX一下office办公软件的这些东西;当别人都在宿舍打游戏的时候,我有事没事就在鼓捣这些东西,把我台式机电脑优化的棒棒的,心里挺满足的,那时候自己就稍微有点发现我对这些东西怪感兴趣的,因为我愿意花费大量的时间在这上面。后来从毕业、结婚、生子、参加工作后就没有时间去接触这些东西了,因为没时间;现在孩子稍微大一点了,工作上也没那么忙了,我就想着能找点自己喜欢的事情做,来给漫长的工作生活一点乐趣。

兴趣就是最好的老师

自古以来,兴趣就是最好的老师,那我是从什么时候迷恋上Arduino的呢?两年以前,我在网上发现了一个很好玩的电子项目,非常非常喜欢,当时就在想,我也一定要做一个跟他一样的项目!所以我就把这个项目的相关资料下载下来了,但此时的我完全就是一个小白中的小白,看到这些资料后我就傻眼了,这些资料我TM完全不知道它们是啥玩意,是干什么用的;心里其实有点挺失落的,因为那时候我的知识水平还仅仅是在台式电脑那一块而已,之前觉得自己很了不起,这突然间落差感挺大的。

我的第一个单片机

后来我就知道了什么是单片机。当时就想着学习一点单片机的入门知识,就在某宝上买了一些单片机的入门套件,当时我得到的第一个单片机就是Arduino UNO了,配套的还有各种各样的传感器、杜邦线、面包板等等;我看见这么多的东西,就有点迷茫了:面包板是干什么用的,怎么用的,为什么叫面包板?杜邦线是什么?为什么叫杜邦线?这些元器件这么多的英文名字,记不住怎么办?各种各样的傻X问题,现在看起来这些问题挺幼稚的,但对当时的我是确确实实存在的问题,需要自己去了解掌握的东西。因为这些落差感,以及入门中的入门基础知识,我就打了退堂鼓,把这些东西丢在柜子里好几个月,后来实在无聊,就把这些东西又拿出来摸索了,我的计划就是先不管那些电子元器件,先把Arduino UNO连接上电脑再说!

第一次用电脑和Arduino UNO互动

将Ardiuno UNO连接上电脑并和电脑进行互动的过程挺曲折的。电脑中的软件arduino是我们必须要用的东西;这中间我接触到很多陌生的名词:比如
Arduino是什么?IDE是什么?SDK是什么?串口是什么?波特率是什么?初始化是什么?编译是什么?固件是什么?库文件是什么?带着这些问题,

1. 我实验了我的第一个程序:让单片机往电脑上输出一段文字“Hello arduino!”

void setup(){
	Serial.begin(9600);
}
void loop(){
	Serial.println("Hello Arduino!");
}

学到了:Serial.begin(); Serial.print("");Serial.println("")
但当时我觉得这个实验太无聊了,因为我没有实实在在的和UNO进行互动,

2. 所以就有了第二个实验程序:我在输入框输入什么,Arduino就显示什么。

void setup(){
	Serial.begin(9600);
}
void loop(){
	if(Serial.available() > 0){
		Serial.println(Serial.readString());
    }
}

在这里插入图片描述
学到了:Serial.available(); Serial.readString();
做完之后我觉得有点傻X,因为输入框和输出框在同一个地方,我怎么知道这些输入输出有没有经过UNO,万一它是直接在电脑上运行的呢?我不用单片机一样可以做到这样的效果

3. 所以就有了第三个实验程序:让UNO上面的小灯闪烁!

void setup(){
	Serial.begin(9600);
	pinMode(LED_BUILTIN, OUTPUT);
}
void loop(){
	digitalWrite(LED_BUILTIN, HIGH);
	delay(1000);
	digitalWrite(LED_BUILTIN, LOW);
	delay(1000);
}

学到了:pinMode(); digitalWrite();delay();
但这个程序仍然没有达到我的理想要求,我要控制LED灯的开关!!!为了满足我的控制欲

4. 所以就有了第四个实验程序:我发送1,它就亮;我发送0,它就灭。

void setup(){
	Serial.begin(9600);
	pinMode(LED_BUILTIN, OUTPUT);
	digitalWrite(LED_BUILTIN, LOW);//初始化灯的状态为“灭”
}
void loop(){
	if(Serial.available() > 0){
		String myString = Serial.readString();
		if(myString == "0"){
			digitalWrite(LED_BUILTIN, LOW);
		} 
		if(myString == "1"){
			digitalWrite(LED_BUILTIN, HIGH);
		}
	}
}

学到了 :String 和 if
整个过程是这样的:键盘输入的字符串 => 发送给电脑 => 经过串口(USB) => 发送给UNO => UNO使用一个碗接住(mySting变量) => UNO看看碗里面的东西 => 如果碗里是个鸡蛋(0) => 就把灯点灭掉 => 如果碗里是个香肠(1) => 就把灯点亮。

到此处,我已经简单的满足了我的控制欲,当时开心的像个几百斤的孩子 😃 望着屏幕欣慰了好久。

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值