arduino——声控灯(笔记)

arduino——声控灯(笔记),第1张

根据书中的例子,本来想做一个人体感应灯,无奈配件里没有感应灯,仔细检查了下配件,还少了电源,9V电池可以配但是电源线没有挺麻烦的。当然图便宜买了山寨的板子,所以也没啥说的,有什么用什么,先熟悉一些简单的配件和原理就好。

arduino板1块,电磁继电器1个,声控开关1个,面包板1块,灯泡1个,导线若干。

电磁继电器简单来说就是一块电磁铁控制的开关,当通上电就会产生电磁力吸住开关。

图片不太清晰,简单来说还是两趟电路,从5V接口分别连接继电器和感应灯(这里用声控开关代替),继电器连接灯泡。

在实验过程中,直接连接LED灯怎么都不亮,由此猜想可能是电压不够的情况,由于安全起见(初学避免电路板以及电器元件烧坏的风险),所以就没有接220V交流电。

轻敲声控时,电器继电器会发出啪的声音。

//Demo Program

while(1)

{

  if(sound>threshold)

  {

    LED_Close()

  }

  else

  {

    LED_Open()

  }

  delay_second(10)

}

你的声音过来是什么值,AD采集到的模拟量还是IIS之类的数字量,驱动那部分肯定要你自己写,官网里面肯定有例程,MPLAB里面应该也有驱动生成工具。

灯是开关量控制,IO口高低电平驱动三极管或者MOS或者继电器来驱动灯。

使用按键(PUSHBUTTON)控制LED灯号的开关,当按键被按下时打开LED灯号,按键放开时关闭LED灯号。

材料

Arduino的主板×1

LED×1

按钮或开关开关×1

10K电阻×1

面包板×1

单心线X N

接线

把LED接到PIN13,长脚(阳极)接到PIN13,短脚(阴极)接到GND;

按钮一支脚接到+5 V;

PIN2接到按钮的另一支脚,同一支脚位接一个10K的电阻连到GND;

源码如下:

const int buttonPin = 2     // the number of the pushbutton pin

const int ledPin =  13      // the number of the LED pin

// variables will change:

int buttonState = 0         // variable for reading the pushbutton status

void setup() {

// initialize the LED pin as an output:

pinMode(ledPin, OUTPUT)

// initialize the pushbutton pin as an input:

pinMode(buttonPin, INPUT)

}

void loop(){

// read the state of the pushbutton value:

buttonState = digitalRead(buttonPin)

// check if the pushbutton is pressed.

// if it is, the buttonState is HIGH:

if (buttonState == HIGH) {

// turn LED on:

digitalWrite(ledPin, HIGH)

}

else {

// turn LED off:

digitalWrite(ledPin, LOW)

}

说明:

L01〜L02:定义按键与LED的脚位,按键接在PIN2码,而LED接在PIN13;

L16:读取按键的状态并保存到buttonState变数里;

L20〜L26:这支程式的目的是按下按键时要打开LED灯号,放开按键时要关闭的LED灯号,因此,假如buttonState为高,代表按键状态是按下(压制)的,此时要打开LED,反之,假如buttonState为低,代表按键状态是放开的,此时要关闭LED。

注:这支是Arduino的内建的程序,点选

File >Examples >2.Digital >Button

就可以找到。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12012092.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存