从零开始记录我的跨界arduino学习过程 个人记录用 大家不必回复
不是学工科出身的,理工基础来自于中学课堂,不过也忘了很多了。后来发现当初学的一点物理化学知识越来越不足以理解现在的很多东西,但自己还保持有一定的好奇心,所以家里的一些东西坏了还是会手痒打开看看,不过知识有限,能力更是不足,一般小心翼翼地打开盖看看,除了换保险丝,其他也琢磨不出个所以然。
这种心有余而力不足的感觉持续了很长一段时间,一直没有好的办法解决,很重要的原因是当初中学的物理在电子方面介绍得太少了。看过一些视频教程,但万丈高楼平地起,缺少基础和实践,真正能力还是没有提高。
应该是大概半年前,在图书馆看到了一本《仿生电子制作DIY》,发现很多以前使用的仪器原来结构并非很复杂,最起码是可以看得懂的。顺着这个系列的书籍,又看了其他几本书,发现里面有很多提到arduino。人的经历有时候充满了不确定性,不知道什么时候会因为一个偶然而改变。但一旦窗户打开了,视野将变得不同。连续追踪了很多arduino的信息,才发现原来很多东西是这么搞出来的,自己太后知后觉了!
决定学习arduino有一段时间了,最近才真正入手了一套,发现纸上来得终觉浅,绝知此事须躬行,花点钱还是值得的。
套件在淘宝买的,还把商家的山寨版换成了意大利的原版arduino UNO3板,共280元。感觉做工还行,主要是刚入门,买个套装可减少走弯路,也算是交点学费。 我买的套件 第一个程序都是LED blink了。
然后又做了一个开关控制LED on/off,这个实验最主要是开关要连接一个下拉电阻,这是纯学理论的时候不可能想到的。
这个更清晰 然后就是流水灯和用按钮控制的交替闪烁的2个led
接下来就是用arduino控制电机的转动。
(1)普通的直流电机,是用电压的大小来控制其转速的,所以需要用到arduino的模拟输出功能中的PWM功能来控制输出电压的高低,arduino的PWM频率是定的,大概是40KHz,改变的是每个脉冲的占空比。
(2)步进电机,是用控制信号的脉冲的快慢来控制其转速,所以用到的是arduino的数字输出功能,频率是变化的。
用arduino成功控制东方马达的5相步进电机,省去了上位控制器。 楼主请继续! 执刀书生 发表于 2015-8-30 16:55 static/image/common/back.gif
第一个程序都是LED blink了。
然后又做了一个开关控制LED on/off,这个实验最主要是开关要连接一个下拉电阻 ...
下拉电阻,电路是什么样的。 中学就够用了,其实会欧姆定律,业余玩电子就够用了,专业玩也掌握99%了。 本帖最后由 执刀书生 于 2015-8-31 17:54 编辑
会员2 发表于 2015-8-31 10:01 static/image/common/back.gif
下拉电阻,电路是什么样的。
看这张图应该更清楚,下拉电阻是为了保证常开开关打开时断路下游侧的引脚电压保持为0或低电位,因为如果引脚悬空的话它的相对电压是不确定的,因为没有“地”作为统一的参考,没有比较也就无所谓高低,下拉电阻就是让引脚和地产生联系以进行比较。绿色线为信号输入线,连着输入引脚和下来电阻,黑色线则连接下拉电阻到地。按我的理解,在arduino使用开关控制的时候,不是直接用开关接入电路控制通断,而是用开关产生电路通或断的信号,因此绿色线是直接连接回信号输入引脚的。这样当开关是打开的时候,信号线是通过电阻这条线接地的,当开关闭合时,信号线因电阻的分压作用处于高电位,并把高电平信号送给单片机。 楼主接下来应该是机器人小车了,能够真正理解程序还要学C语言吧,只要肯学“学啥会啥”朋友,前面是光明的! 本帖最后由 执刀书生 于 2015-8-31 22:55 编辑
1940115 发表于 2015-8-31 18:09 static/image/common/back.gif
楼主接下来应该是机器人小车了,能够真正理解程序还要学C语言吧,只要肯学“学啥会啥”朋友,前面是光明的! ...
多谢鼓励啊!
继续讲讲我学直流电机的体会。
一开始我使用套件里带的小直流电机可以被arduino带动。但我使用另一个较大功率的直流电机直接接到我的kenwood直流电源上,却带不动,而且电源一下子由CV(恒压)变为(恒流),查看网上资料后,知道直流电机如果是励磁的而非永磁的,定子和转子的线圈又是串联的话,一开始转子没有转动的时候,转子没有切割磁力线,也就没有产生反电动势,因此转子的阻抗是很小的,启动电流会很大,一下子就达到了保护电路的极限,所以需要低压启动,然后慢慢提升速度。 楼主可以开个博客~~比如CSDN,来记录下学习点滴 3 LED灯的程序
int pinLedgreen = 2;
int pinLedred =3;
int pinLedyellow =4;
void setup() {
pinMode(pinLedgreen, OUTPUT);
pinMode(pinLedred, OUTPUT);
pinMode(pinLedyellow, OUTPUT);
digitalWrite(pinLedgreen, HIGH);
delay(500);
}
void loop() {
digitalWrite(pinLedred, HIGH);
delay(500);
digitalWrite(pinLedgreen, LOW);
delay(500);
digitalWrite(pinLedyellow, HIGH);
delay(500);
digitalWrite(pinLedred, LOW);
delay(500);
digitalWrite(pinLedgreen, HIGH);
delay(500);
digitalWrite(pinLedyellow, LOW);
} 执刀书生 发表于 2015-8-31 17:40 static/image/common/back.gif
看这张图应该更清楚,下拉电阻是为了保证常开开关打开时断路下游侧的引脚电压保持为0或低电位,因为如果 ...
那是检测高平?