Blask
好东西快到老王碗里来
Blask

Arduino入门(一)

学校开设了Arduino的基础课程,以前玩过一段时间的树莓派,再加上也算是个水课,抱着玩的心态过去康康。

本文及接下来更新的文章均为记录这个学期所学有关Arduino入门的知识~

入门小件功能基本介绍及使用

既然是Arduino的基础课程,第一节课必定是聊一些容易上手的器件,果不其然上来就是蜂鸣器之类的好理解的东西,那么接下来就好好讲讲这几样小件~

1.蜂鸣器

蜂鸣器?没啥特殊的脚位(就俩),也没啥特殊功能,不就是个小喇叭嘛给他通电就会叫。拿来入门相信大部分人都看得懂。(修正:有源蜂鸣器通电会响,无源蜂鸣器直流电无法驱动)

http://image.blask.cn/u=2918127970,3885126094&fm=26&gp=0.jpg
有源蜂鸣器(某宝型号12095/3毛一个)

蜂鸣器接线:

那么该如何使用蜂鸣器呢?这里拿有源蜂鸣器做介绍,接线如下:

http://image.blask.cn/%E8%9C%82%E9%B8%A3%E5%99%A8%E6%8E%A5%E7%BA%BF%E5%9B%BE.png
蜂鸣器接线放大图
http://image.blask.cn/蜂鸣器实物接线图.png
蜂鸣器实物接线图

两条线就能让蜂鸣器发声,原理就是正负两极通电让蜂鸣器内部震动发声。

蜂鸣器驱动代码:

驱动他的代码挺简单,这里直接放上代码:

int pin=8;//根据所插脚位设置IO脚,实物图中接线为13号脚。

void setup()
{
  pinMode(pin,OUTPUT);//设置数字IO脚模式,OUTPUT为输出
}

void loop()
{
  int i,j;
  while(1)
  {
    for(i=0;i<80;i++)
    { 
      digitalWrite(buzzer,HIGH);//发声音
      delay(1);
      digitalWrite(buzzer,LOW);//不发声音
      delay(1);
     }  
   }
}

代码讲述一下几个点:1.如果要蜂鸣器变调,则for循环中i的值进行修改可以达成目的。2.注意插入的脚位,确认脚位后记得修改pin的值即可发声,完事~

2.LED灯

LED灯也没啥特殊的,灯泡嘛两个脚位给他通电他就会亮,注意LED灯的特性是有区分正负两极的,正负极接反是不会亮的。

http://image.blask.cn/LED.jpg
LED灯

LED灯接线

LED灯接线参考蜂鸣器,如果阁下已经做完蜂鸣器的实验,把蜂鸣器拔下来插上LED灯即可,注意正负极插入。

LED灯驱动代码

代码的话我们拿蜂鸣器的代码小修小改就能用,这里放上代码:

int pin=8;//根据所插脚位设置IO脚

void setup()
{
  pinMode(pin,OUTPUT);//设置数字IO脚模式,OUTPUT为输出
}

void loop()
{
  digitalWrite(pin, HIGH);//亮灯
  delay(500);//延迟500ms
  digitalWrite(pin, LOW);//闭灯
  delay(500);//延迟500ms
}

如果接线正确,LED灯会循环闪烁,完事~

3.按钮

嘿嘿,又是一个两针脚的小物件,主要用途为控制各类器件的通断/开关,如图:

http://image.blask.cn/%E6%8C%89%E9%92%AE.jpg
按钮

由于学校的教学为按钮和LED灯配合,按钮我也不在这里独立介绍啦。

LED配合按钮的接线图

http://image.blask.cn/LED%E6%8C%89%E9%92%AE%E6%8E%A5%E7%BA%BF%E5%9B%BE.jpeg
接线实物图

LED按钮驱动代码

int buttonPin = 2; // 按键的针脚定义
int ledPin =  9;  // LED灯针脚定义
 
int buttonState = 0; // 存储按键状态值
 
 void setup() {
   pinMode(ledPin, OUTPUT);  //设置LED管脚输出模式
   pinMode(buttonPin, INPUT_PULLUP); //设置按键管脚上拉输入模式
 }
 
 void loop() {
 
   buttonState = digitalRead(buttonPin); //读取按键返回状态值
  
   if (buttonState == LOW) { // 若按键被按下
     delay(80); //等待跳过按键抖动的不稳定过程
     if (buttonState == LOW) // 若按键被按下
     {  
       digitalWrite(ledPin, HIGH); // 点亮LED灯
     }
   }
   else {   
     digitalWrite(ledPin, LOW); // 熄灭LED灯
   }
 
 }

这里解释一下代码:1.由于机械按钮存在延迟,无法达到即按即反应的功能,因此代码中增加了对延迟存在的检测。2.按钮的接线注意要做到对角接线,否则可能无法使用按钮。

总结

到这里有关Arduino的一些基础物件(两针脚物件)的介绍和使用的记录到此也就结束了,接下来会继续更新本学期学到的知识,若有纰漏烦请指出~

没有标签
首页      开发      大二      Arduino      Arduino入门(一)

发表评论

textsms
account_circle
email

Blask

Arduino入门(一)
学校开设了Arduino的基础课程,以前玩过一段时间的树莓派,再加上也算是个水课,抱着玩的心态过去康康。 本文及接下来更新的文章均为记录这个学期所学有关Arduino入门的知识~ 入门…
扫描二维码继续阅读
2020-02-14