【物联网】Arduino 实验合集

简介: 【物联网】Arduino 实验合集

😘欢迎关注:👍点赞🙌收藏✍️留言

🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢支持!!!

实验1 双色LED实验

【实验介绍】

双色发光极管(LED)能够发出两种不同颜色的光,通常是红色和绿色,而不是仅有一

种颜色。它采用3m或5m环氧树脂封装。它有3条线索:共阴极或共阳极可用。双色LED

具有两个LED端子或引脚,以反平行方式排列在电路中并通过阴极/阳极连接。正电压可以指向LED端子之一,使该端子发出相应颜色的光;当电压的方向反转时,发出另-一种颜色的光。在双色LED中,一次只能有一一个引脚接受电压。 因此,这种LED经常用作各种设备(包括电视机,数码相机和遥控器)的指示灯。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线*1
  • 双色LED模块* 1
  • 面包板*1
  • gV方型电池*1
  • 跳线若干

【实验原理】

通过数字端口控制LED的亮度。LED 的颜色从红色变为绿色并闪烁混合颜色。

【实验内容】

  • 第1步:建立电路
  • 第2步:程序
  • 第3步:编译
  • 第4步:将程序上传至Arduino Uno版

现在可以观察到双色LED交替从红色变为绿色,并且在交替期间闪烁混合颜色。

【实验体会】

在进行双色LED实验的过程中,我对LED的工作原理和使用有了更深刻的理解。通过建立电路、编写程序并将程序上传至Arduino Uno版,我成功地控制了双色LED的亮度和颜色,从红色变为绿色并且在交替时闪烁出混合颜色。在实验中,我也学会了如何使用面包板和跳线来组装电路,以及如何通过数字端口来控制LED的亮度和颜色。

在实验中,我发现双色LED非常常见,可以在各种设备中作为指示灯使用。同时,通过实验,我也感受到了科技的神奇和乐趣,这进一步激发了我对科技的兴趣和热情。


【程序】

/***************************************************
name:Dual-color LED 
function:you can see the dual-color LED changes from red to green alternately,
as well as flashing a mixed color during the alternation.
connection:
Dual-color LED    Arduin Uno R3
R                  11
GND                GND
G                  10
****************************************************/

int redPin = 11;    // select the pin for the red LED
int greenPin = 10;    // select the pin for the blueLED
int val = 0;    

void setup() 
{
  pinMode(redPin, OUTPUT); //set redPin as OUTPUT
  pinMode(greenPin, OUTPUT);//set greenPin as OUTPUT
  Serial.begin(9600); 
}
/******************************************************/
void loop() 
{
  for(val=255; val>0; val--) //
  {
   analogWrite(redPin, val); //red value decrease
   analogWrite(greenPin, 255-val);//green value increase
   Serial.println(val, DEC);//print the val on in serial monitor
   delay(30); //delay 30ms
  }
for(val=0; val<255; val++)
  {
   analogWrite(redPin, val); //red value increase
   analogWrite(greenPin, 255-val);//green value decrease
   Serial.println(val, DEC);//print the val on in serial monitor
   delay(30); //delay 30ms
  }
}
/********************************************************/

实验2 RGB-LED传感器实验

【实验介绍】

RGB LED模块可以发出各种颜色的光。红色,绿色和蓝色的三个LED被封装到透明或半透

明塑料外壳中,并带有四个引脚。红色绿色和蓝色三原色可以按照亮度混合并组合各种颜

色,因此可以通过控制电路使RCB LED发出彩色光。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线* 1
  • RGBLED模块* 1
  • 面包板* 1
  • 9V方型电池* 1
  • 跳线若干

【实验原理】

在这个实验中,我们将使用PWM技术来控制RGB的亮度。

三种颜色通道中的每一种:红色,绿色和蓝色都有255级亮度。当三原色全部为0时,LED灯熄灭。当所有颜色都是255时,LED 变得最亮。在这里我们输入0到255之间的任何值到RGB LED的三个引脚,使其显示不同的颜色。

RCB LED可以分为普通阳极LED和普通阴极LED。在这个实验中,我们使用一个普通的阴

极RGB LED。

【实验内容】

  • 第一步:建立电路
  • 第二步:编写程序
  • 第三步:编译代码
  • 将程序上传到Arduino Uno板

现在可以看到RGB LED闪烁红色、绿色和蓝色,然后变为红色、橙色、黄色、绿色、蓝色、靛蓝和紫色。

【实验体会】

在进行RGB LED传感器实验的过程中,我学习了如何通过控制红色、绿色和蓝色三个通道的亮度来实现不同颜色的显示。通过建立电路、编写程序并将程序上传至Arduino Uno板,我成功地控制了RGB LED的亮度和颜色。在实验中,我使用了PWM技术来控制LED的亮度,并通过输入0到255之间的值来显示不同的颜色。


通过这个实验,我对RGB LED的工作原理有了更深入的理解。我发现,通过调整红、绿、蓝三个通道的亮度,可以创建出各种颜色,包括红色、橙色、黄色、绿色、蓝色、靛蓝和紫色等。这种灵活性使得RGB LED广泛应用于彩灯、室内装饰、显示屏等领域。


通过参与这个实验,我锻炼了自己的动手能力和解决问题的能力。同时,我也对科技的应用感到兴奋和好奇,这进一步激发了我对科技的热情和探索的欲望。

【程序】

/*************************************************************************
 * name:Rainbow LED
 * Function:you can see RGB LED flash red, green and blue first, and then change to red, orange, yellow, green, blue, indigo and purple.  
 * Note:because the RGB module is common anode,so when you want to turn on a color ,you need to set it as 0
 ********************************************************************/
const int redPin = 11;  // R petal on RGB LED module connected to digital pin 11 
const int greenPin = 10;  // G petal on RGB LED module connected to digital pin 10 
const int bluePin = 9;  // B petal on RGB LED module connected to digital pin 9 
/**************************************************************************/
void setup()
{ 
  pinMode(redPin, OUTPUT); // sets the redPin to be an output 
  pinMode(greenPin, OUTPUT); // sets the greenPin to be an output 
  pinMode(bluePin, OUTPUT); // sets the bluePin to be an output 
}    
/***************************************************************************/
void loop()  // run over and over again  
{    
  // Basic colors:  
  color(0,255,255); // turn the RGB LED red 
  delay(1000); // delay for 1 second  
  color(255,0,255); // turn the RGB LED green  
  delay(1000); // delay for 1 second  
  color(255,255,0); // turn the RGB LED blue  
  delay(1000); // delay for 1 second 
  // Example blended colors:  
  color(0,255,255); // turn the RGB LED red  
  delay(1000); // delay for 1 second  
  color(0,128,255); // turn the RGB LED orange  
  delay(1000); // delay for 1 second  
  color(0,0,255); // turn the RGB LED yellow  
  delay(1000); // delay for 1 second  
  color(255,0,255); // turn the RGB LED green  
  delay(1000); // delay for 1 second 
  color(255,255,0); // turn the RGB LED blue  
  delay(1000); // delay for 1 second
  color(255,0,0); // turn the RGB LED  indigo 
  delay(1000); // delay for 1 second
  color(128,255,0); // turn the RGB LED purple  
  delay(1000); // delay for 1 second
}     
/******************************************************/
void color (unsigned char red, unsigned char green, unsigned char blue)     // the color generating function  
{    
  analogWrite(redPin, red);   
  analogWrite(bluePin, blue); 
  analogWrite(greenPin, green); 
}
/******************************************************/

实验3 七彩LED灯闪烁

【实验介绍】

七彩LED灯上电后,7色自动闪光LED模块可自动闪烁内置颜色。它可以用来制作相当吸引人的灯光效果。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线* 1
  • 7彩LED模块*1
  • 面包板*1
  • 9V方型电池*1
  • 跳线若干

【实验原理】

电源打开时,7彩LED将闪烁内置颜色。该模块的示意图:

【实验内容】

只需将模块的引脚VCC连续到Arduino Uno电路板的5V,并将GND连接到GND。

注意:模块上有两个GND引脚,需要连接其中的一个

此时将看到LED闪烁7种颜色

【实验体会】

经过这次实验,我深刻地感受到了电子元器件的神奇之处。通过简单地连接面包板、LED模块和9V电池,我们就能轻松地制作出一个多彩的闪烁灯,让人感到非常惊奇和开心。


在实验过程中,我也学习到了一些基础的电子知识,例如如何正确地使用跳线将不同的引脚连接在一起,以及如何正确地选用电池和电源等。


总之,这次实验让我更加热爱电子科技,也激发了我继续深入学习这方面知识的热情。

实验4 继电器实验

【实验介绍】

继电器是一种用于响应施加的输入信号而在两个或多个点或设备之间提供连接的设备。换句话说,继电器提供了控制器和设备之间的隔离,因为设备可以在AC和DC上工作。但是,他们从微控制器接收信号,因此我们需要一个继电器来弥补差距。当需要用小电信号控制大量电流或电压时,继电器非常有用。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线* 1
  • 继电器模块* 1
  • 面包板*1
  • 9V方型电池*1
  • 跳线若干

【实验原理】

继电器:每个继电器有5个部门:

  1. 电磁铁:由一个由线圈缠绕的铁芯组成。当电流通过时,它变成磁性的。因此,它被称为电磁铁。
  2. 电枢:可移动磁铁被称为电枢。当电流流过时,线圈通电,从而产生一个磁场,用于制造或断开常开(N/O)或常闭(N/C)点。电枢可以直流电(DC)和交流电(AC)移动。
  3. 弹簧:当没有电流流过电磁铁上的线圈时,弹簧将电枢拉开,因此电路无法完成。
  4. 触点:有两个触点:
  1. 常开 - 当继电器被激活连接,当它不活动时断开
  2. 常闭 - 继电器激活时未连接,未激活时连接
  1. 模制外壳:继电器覆盖有塑料以保护。

继电器的工作

继电器的工作原理很简单。当继电器供电时,电流开始流经线圈;结果,电磁体开始通电。然后衔铁被吸引到线圈上,将动触点向下拉,从而与常开触点连接。所以带负载的电路通电。然后断开电路会出现类似的情况,因为在弹簧的作用下,动触头将被拉到常闭触点。这样,继电器的接通和断开可以控制负载电路的状态。

所以在这个实验中,将SIG连接到Arduino Uno板。发送一个低电平给SIG; PNP 晶体管通电并且继电器的线圈通电。因此,继电器的常开触点闭合,而继电器的常闭触点将脱离公共端口。向SIG发送高电平的信息:晶体管将断电,继电器将恢复到初始状态。

【实验内容】

  • 第一步:建立电路
  • 第二步:程序
  • 第三步:编译代码
  • 第四步:将程序上传到Arduino Uno板

现在可能会听到ticktock,这是常开触点打开并且常开触点闭合。

【实验体会】

通过这次继电器实验,我对继电器的工作原理和使用有了更深入的认识。继电器能够将小电信号转换为大电流或电压,从而控制设备的状态,这在实际应用中非常有用。通过建立电路、编写代码、上传程序到Arduino Uno板等步骤,我也更加熟悉了Arduino的使用方法。在实验过程中,我遇到了一些问题,例如电路连接不良、代码出错等,但是通过调试和查找资料,最终都得以解决。这让我学会了如何在实验中遇到问题时及时解决它们,提高了我的实验技能和动手能力。总之,这次继电器实验是一次很有意义的经历,让我对电子电路和Arduino编程有了更深入的了解和掌握。


【程序】

/********************************************
 * name:Relay Module
 * function: you may hear ticktock. That's the normally closed contact opened and the normally open contact closed.
 ********************************************/
/**********************************************/
const int relayPin =7; //the "s" of relay module attach to
/**********************************************/
void setup()
{
  pinMode(relayPin, OUTPUT); //initialize relay as an output
}
/***********************************************/
void loop()
{
  digitalWrite(relayPin, HIGH); //Close the relay
  delay(1000); //wait for 1 second
  digitalWrite(relayPin, LOW); //disconnect the relay 
  delay(1000); //wait for 1 second
}
/*************************************************/

实验5 激光传感器实验

【实验介绍】

由于其良好的指向性和能量集中性,激光“泛应用于医疗,军事等领域。顾名思义,激光发射模块是一种可以发射激光的模块。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线*1
  • 激光发射器模块* 1
  • 面包板*1
  • 9V方型电池*1
  • 跳线若干

【实验原理】

激光是一种通过基于受激发射的电磁辐射的光学放大过程发光的装置。激光与其他光源

不同,因为它们相干发光。

空间相干性使得激光可以聚焦到狭小的地方,从而使激光切割和光刻等应用以及激光束在很远的距离保持狭窄(准直),从而实现激光指示器等应用。激光器还可以具有高时间相干性,这使得它们具有非常窄的光谱,即它们仅发出单色光。它的时间相干性可以用来产生短至飞秒的光脉冲。

【实验内容】

  • 第一步:建立电路
  • 第二步:程序
  • 第三步:编译
  • 第四步:将程序上传至Arduino Uno板
  • 第五步:通过电脑串口调试控制

现在可以看到激光发射器模块发出莫尔斯信号。

注意:不要直视激光头。它会对眼睛造成很大伤害。

【实验体会】

通过这次激光传感器实验,我对激光的原理和应用有了更深入的了解。激光由于其空间相干性和时间相干性,在医疗、军事等领域有着广泛的应用。在本次实验中,我们利用Arduino Uno主板和激光发射器模块建立了一个激光传感器系统,并通过编写程序和上传至Arduino Uno板来实现对激光发射器模块的控制。


在实验过程中,我学会了如何建立电路、编写程序以及通过串口调试控制激光发射器模块。同时,我也深刻认识到激光的特性,例如聚焦能力和非常窄的光谱等,这些特性为激光的应用提供了重要支持。在实验中,我遇到了一些挑战,比如电路连接问题、程序编写错误等,但是通过不懈的努力和查阅资料,最终都得以解决。


总的来说,这次激光传感器实验让我对激光技术有了更加直观和深入的了解,也提升了我的动手能力和实验操作技能。我对Arduino的应用也有了更多的认识,这对我的学习和未来的科研工作都具有积极的意义。这次实验是一次很有意义的经历,让我收获颇丰。

【程序】

#include "retrieval.h"

const int laserPin = 7; //laser attach to 

static int dotDelay = 200; //

void setup()
{
  pinMode(laserPin, OUTPUT);  //initialize laser as an output
  Serial.begin(9600);  
}

void loop()
{
  char ch = 0; //store the  character or digit read from the serial monitor
  if(Serial.available() > 0) //is there anything to be read
  {
    ch = Serial.read(); //read a single letter from serial monitor
  }
  morseSignal(ch); //flashes depend on the letter 
}
//
void flashDot(char cha)
{
  digitalWrite(laserPin, HIGH); //turn the laser on
  if(cha == '.') //
  {
    delay(dotDelay);
  }
  else
  {
    delay(dotDelay * 3);  //gap between letters
  }
  digitalWrite(laserPin, LOW);
  delay(dotDelay);  //gap between flashes
}
//
void flashSequence(char *sequence)
{
  int i = 0;
  while(sequence[i] != NULL)
  {
    flashDot(sequence[i]);
    i++;
  }
  delay(dotDelay * 3);
}
//
void morseSignal(char ch)
{
  if(ch >= 'a' && ch <= 'z')  
  {
    flashSequence(letters[ch - 'a']);
  }
  else if(ch >= 'A' && ch <= 'Z')
  {
    flashSequence(letters[ch - 'A']);
  }
  else if(ch >= '0' && ch <= '9')
  {
    flashSequence(numbers[ch - '0']);
  }
  else if(ch == ' ')
  {
    delay(dotDelay * 4);  //gap between words
  }
}

实验6 轻触开关按键模块实验

【实验介绍】

在Arduino Uno控制电路板上已经在D13上集成了LED显示,所以只需要一个按钮模块就可以构建一个简单的电路来使LED点亮

按键模块是我们使用最为频繁的一个电子部件,内部由一对轻触拨盘构成,当按下闭合导通,松开时自动弹开断开。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线*1
  • 按钮模块* 1
  • 面包板* 1
  • 9V方型电池*1
  • 跳线若干

【实验原理】

由于LED已连接到引脚13,只需将按钮模块连接到数字引脚7.当按钮模块识别感应按钮按下信号时,LED将亮起。否则它会关闭。

【实验内容】

  • 第一步:建立电路
  • 第二步:程序
  • 第三步:编译
  • 第四步:将程序上传至Arduino Uno板

现在按下按钮,然后按钮模块上的指示灯和Arduino Uno电路板的针脚13上的LED将亮起。

【实验体会】

通过这次按钮模块控制LED点亮的实验,我对Arduino Uno的使用和电路连接有了更深入的理解。在这个实验中,我们利用Arduino Uno主板、按钮模块和面包板构建了一个简单的电路,通过按下按钮来控制LED的点亮。

实验中,我们将按钮模块连接到数字引脚7上,而LED已经连接到引脚13上。当按钮模块识别到按钮按下的信号时,LED就会点亮;否则,LED将关闭。

在实验过程中,我学会了如何正确建立电路、编写程序,并将程序上传至Arduino Uno板。同时,我也了解了按钮模块的工作原理:当按下按钮时,按钮模块内部的轻触拨盘闭合,导通电路;松开按钮时,拨盘自动弹开,断开电路。

总的来说,这次按钮模块控制LED点亮的实验让我对Arduino Uno的应用有了更深入的认识,也提高了我的实验技能和问题解决能力。通过这个实验,我明白了电子元件之间的连接关系和工作原理,同时也加深了对按钮模块的理解。这次实验是一次很有收获的经历,让我更加熟悉和自信地运用Arduino Uno进行电路控制。

【程序】

//Turns on and off a LED ,when pressings button attach to pin7
/**********************************/
const int keyPin = 7; //the number of the key pin
const int ledPin = 13;//the number of the led pin
/**********************************/
void setup()
{
  pinMode(keyPin,INPUT);//initialize the key pin as input 
  pinMode(ledPin,OUTPUT);//initialize the led pin as output
}
/**********************************/
void loop()
{
  
  boolean Value=digitalRead(keyPin);//read the state of the key value
  //and check if the kye is pressed
  //if it is,the state is HIGH 
  if(Value ==HIGH )
  {
    digitalWrite(ledPin,LOW);//turn off the led
  }
  else
  {
    digitalWrite(ledPin,HIGH);//turn on the led
  }
}
/************************************/


实验7 倾斜开关模块实验

【实验介绍】

带有金属球的球形倾斜开关。它用于检测小角度的倾斜。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线* 1
  • 倾斜开关模块* 1
  • 面包板*1
  • 9V方型电池*1
  • 跳线若干

【实验原理】

在倾斜开关中球以不同的倾斜角度移动以制造触发电路的原理。倾斜开关模块使用双向传导的球形倾斜开关。当它向任一侧倾斜时,只要倾斜度和力满足条件,开关就会通电,从而输出低电平信号。

在这个实验中,我们使用一个倾斜开关模块和一个已连接到Arduino主板13脚的LED来构建一个简单的电路。使用到D13口上面的LED显示灯,将引脚SIG连接到Arduino Uno电路板的数字引脚D7。然后倾斜开关输出低电平信号,LED将亮起。否则它会熄灭。

【实验内容】

  • 第一步:建立电路
  • 第二步:程序
  • 第三步:编译
  • 第四步:将程序上传至Arduino Uno板

现在,倾斜开关,Arduino Uno电路板上连接到引脚13的LED将亮起。

【实验体会】

在进行了倾斜开关模块实验后,我对电子元件的工作原理有了更深入的了解。通过倾斜开关模块,我学会了如何利用倾斜角度来触发电路,以及如何通过Arduino主板来控制LED灯的亮灭。


在实验中,我首先搭建了一个简单的电路,将倾斜开关模块连接到Arduino Uno主板上。然后,我编写了一个简单的程序,让Arduino主板可以读取倾斜开关模块的输出信号,并控制连接到13号引脚的LED灯的状态。


通过这个实验,我对于倾斜开关模块的工作原理有了更清晰的认识,也加深了对Arduino编程的理解。这个实验不仅让我获得了技术上的提升,也增强了我对电子电路的兴趣。我期待能够继续进行更多类似的实验,拓展我的知识面和技能。

【程序】

const int sigPin = 7;     // the number of the tilt switch pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
boolean sigState = 0;         // variable for reading the tilt switch status

void setup()
{
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);      
  // initialize the tilt switch pin as an input:
  pinMode(sigPin, INPUT);  
  Serial.begin(9600);  
}

void loop()
{
  // read the state of the tilt switch value:
  sigState = digitalRead(sigPin);
  Serial.println(sigState);

  if (sigState == HIGH) 
  {     
    // turn LED off:    
    digitalWrite(ledPin, LOW);  
  } 
  else 
  {
    // turn LED on:
    digitalWrite(ledPin, HIGH); 
  }
}


实验8 震动传感器实验

【实验介绍】

振动开关也称为弹簧开关或震动传感器,是一种电子开关,它会产生震动力并将结果传送给电路装置,从而触发其工作。它包含以下部分:导电振动弹簧。开关主体,触发销和包装壳。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线*1
  • 振动开关模块* 1
  • 9V方型电池*1
  • 面包板*1
  • 跳线若干

【实验原理】

在振动开关模块中,导电的振动弹簧和触发销被精确地放置在开关体中并且通过粘合剂结合到固化位置。通常,弹簧和触发销不接触。一旦摇动, 弹簧就会摇动并与触发器引脚接触以传导并产生触发信号。

将使用D13接口上的LED灯,将振动开关连接到数字引脚8.当振动开关感应到振动信号时,引脚SIG将输出低电平,模块上的LED和引脚13上连接的LED将亮起。振动开关模块的原理图如下所示。

【实验内容】

  • 第一步:建立电路
  • 第二步:程序
  • 第三步:编译
  • 第四步:将程序上传至Arduino Uno板

现在,摇动开关模块,可以看到Arduino Uno开发板上的针脚13的LED连接并且模块上的LED点亮。

通过监视窗口查看,有震动信号输出1

【实验体会】

通过进行了震动传感器实验,我对振动开关的原理和使用有了更深入的理解。在这个实验中,我学会了如何利用振动开关模块来检测和触发电路的工作。

首先,我搭建了一个简单的电路,将振动开关模块连接到Arduino Uno主板上。然后,我编写了一个程序,使Arduino主板能够读取振动开关模块的输出信号,并控制连接到13号引脚的LED灯的状态。

振动开关模块的工作原理是,当模块感应到震动信号时,触发销会与触发器引脚接触,从而导通电路并产生触发信号。通过监视窗口,我可以看到当振动开关感应到震动信号时,引脚SIG输出低电平,模块上的LED和13号引脚上连接的LED都会亮起。

通过这个实验,我不仅对振动开关模块的原理有了更清晰的认识,还提高了我的Arduino编程能力。这个实验让我更加熟悉了电子元件的工作原理和使用方法,也增强了我对电路和传感器的兴趣。我期待继续进行更多实验,以进一步拓展我的知识和技能。

【程序】

const int vibswPin = 8; //the Vibration Switch attach to 
const int ledPin = 13; //the led attach to
int val = 0; //initialize the variable val as 0
/******************************************/
void setup()
{
  pinMode(vibswPin,INPUT); //initialize vibration switch as an input
  pinMode(ledPin,OUTPUT); //initialize ledPin switch as an output
  Serial.begin(9600);
}
/*******************************************/
void loop()
{
  val = digitalRead(vibswPin); //read the value from vibration switch
  Serial.println(val);
  if(val == LOW)  //without vibration signal
  {
    digitalWrite(ledPin,HIGH); //turn on the led
    delay(1000);//delay 500ms,The LED will be on for 500ms
  }
  else
  {
    digitalWrite(ledPin,LOW); //turn off the led
  }
}
/*********************************************/

实验10 蜂鸣器实验

【实验介绍】

蜂鸣器是音频信号装置。蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线* 1
  • 有源蜂鸣器* 1
  • 无源蜂鸣器* 1
  • 面包板* 1
  • 9V方型电池* 1
  • 跳线若干

【实验原理】

有源蜂鸣器内置振荡源,所以通电时会发出声音。但无源蜂鸣器没有这种源,所以如果使用直流信号它不会发出蜂鸣声;相反,需要使用频率在2K到5K之间的方波来驱动它。由于有内置振荡电路,所以有源蜂鸣器通常比无源蜂鸣器昂贵。

【实验内容】

  • 第一步:建立电路
无源蜂鸣器
  • 第二步:编程
  • 第三步:编译
  • 第四步:将程序上传到Arduino Uno板

现在可以听到无源蜂鸣器响了,如果在这里使用有源蜂鸣器,它也以相同的方式工作。

程序
//function:buzzer beeping in different frequence
/*******************************************/
const int buzzerPin = 7;//the buzzer pin attach to
int fre;//set the variable to store the frequence value
/*******************************************/
void setup()
{
  pinMode(buzzerPin,OUTPUT);//set buzzerPin as OUTPUT
}
/*******************************************/ 
void loop()
{
  for(int i = 200;i <= 800;i++)   //frequence loop from 200 to 800
  {
    tone(7,i);   //in pin7 generate a tone,it frequence is i
    delay(5);    //wait for 5 milliseconds   
  }
  delay(4000);   //wait for 4 seconds on highest frequence
  for(int i = 800;i >= 200;i--)  //frequence loop from 800 downto 200
  {
    tone(7,i);  //in pin7 generate a tone,it frequence is i
    delay(10);  //delay 10ms
  }
}


有源蜂鸣器

注意:有源蜂鸣器有一个内置振荡源,所以只要连接好就会发出蜂鸣声。

  • 第二步:编程
  • 第三步:编译
  • 第四步:将程序上传到Arduino Uno板

现在可以听到蜂鸣器发出蜂鸣声。

程序
/************************************************
 * function:you can hear the active buzzer beeping.
 * But it won't work if you use a passive one here. 
 *************************************************/

int buzzerPin = 7;//the pin of the active buzzer attach to pin7
void setup()
{
  pinMode(buzzerPin,OUTPUT);//set the buzzer as as OUTPUT
  digitalWrite(buzzerPin,LOW);//initialize the buzzerPin as LOW level
}
void loop()
{
 digitalWrite(buzzerPin,LOW);
 delay(1000);
 digitalWrite(buzzerPin,HIGH);
 delay(1000);
} 

【实验体会】

在进行蜂鸣器实验后,我对有源蜂鸣器和无源蜂鸣器的工作原理和使用方法有了更深入的了解。通过实验,我成功地建立了电路并编写了相应的程序来驱动蜂鸣器发出声音。


对于无源蜂鸣器,我学到了它没有内置振荡源,因此需要使用频率在2K到5K之间的方波信号来驱动。通过编写的程序,我可以控制无源蜂鸣器以不同的频率发出蜂鸣声。这个实验让我更清楚地理解了无源蜂鸣器的工作原理。


而对于有源蜂鸣器,由于其内置了振荡源,所以只需要正确连接电路即可发出蜂鸣声。通过编写的程序,我成功地驱动了有源蜂鸣器发出蜂鸣声。这个实验让我对有源蜂鸣器的使用有了更好的认识。


通过这个实验,我不仅提高了自己的电路搭建能力和Arduino编程能力,还加深了对蜂鸣器的理解。蜂鸣器作为一种常见的音频信号装置,在实际应用中具有广泛的用途。我认为掌握蜂鸣器的工作原理和使用方法对于电子制作和嵌入式系统开发非常重要。


总的来说,这个实验让我更加熟悉了蜂鸣器的工作原理和使用方法,并提高了我的实验能力和编程技能。我期待在今后的学习和实践中能够运用这些知识,创造出更多有趣和有用的电子装置。

实验11 干簧管传感器实验

【实验介绍】

干簧管传感器也是一种用于检测磁场的传感器。霍尔传感器通常用于测量智能车辆的速度并计算装配线,而干簧管传感器通常用于检测磁场的存在。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线*1
  • 干簧管传感器* 1
  • 圆形磁铁* 1
  • 面包板*1
  • 9V方型电池*1
  • 跳线若干

【实验原理】

干簧管传感器是一种通过磁信号实现控制的线路开关组件。它能感应磁铁的存在。这里的开关是指干簧管,它是一种结构简单、体积小、控制方便的接触式无源电子开关元件,干簧管壳体一般为密封玻璃管,配备弹性簧片电镀,并填充惰性气体,通常玻璃管中由特殊材料制成的两个簧片是分开的,但是当磁性物质接近玻璃管时,玻璃管中的两个簧片被磁化吸引其他的在磁场线的作用下接触,这样两个簧片就会拉在一起,连接与节点相连的电路。

在外部磁力消失后,两个簧片由于具有相同的磁性而相互分离,因此电路也断开。因此,作为通过磁信号控制的线路开关部件,干簧管可以用作传感器来计数,限制位置等。同时它广泛应用于各种通讯设备。

在本实验中,由于LED已集成在D13端口上,所以只需将簧片开关的引脚SIG连接到Arduino Uno 电路板的数字引脚D7即可。当簧片开关识别磁场信号时,LED将亮起。否则它会关闭。

【实验内容】

  • 第一步:建立电路
  • 第二步:程序
  • 第三步:编译
  • 第四步:将程序上传至Arduino Uno板

现在,使用磁铁接近干簧管传感器,干簧管模块上的LED灯和Arduino板上的LED亮起,将磁铁移动的更远,LED将熄灭。

【实验体会】

通过这次干簧管传感器实验,我更深入地了解了干簧管的工作原理和应用场景。干簧管作为一种线路开关组件,结构简单、体积小、控制方便,能够感应磁铁的存在,并作为传感器来计数和限制位置等。在实验中,我们通过将干簧管模块的引脚SIG连接到Arduino Uno电路板的数字引脚D7上,用一个圆形磁铁接近干簧管传感器,就可以控制LED的亮灭。当磁铁靠近干簧管时,LED灯亮起,移开磁铁,LED灯熄灭。同时,通过编写Arduino程序,我们可以将干簧管传感器和Arduino板上的LED进行控制,实现了基本的磁场检测功能。这次实验让我更深入地理解了电子元器件的工作原理和应用方式,增强了我的动手实践能力和创新意识。

【程序】

/*****************************************************
 * name:Reed Switch
 * function:use a magnet to approach the reed switch, and the LED on the reed switch module and that on the Arduino board light up. 
 * Move the magnet farther and the LED will go out.
 **************************************************/

const int digitalInPin = 7;// reed switch attach to pin7
const int ledPin = 13;// pin13 built-in led

void setup()
{
  pinMode(digitalInPin,INPUT);// set digitalInPin as INPUT
  pinMode(ledPin,OUTPUT); // set ledPin as OUTPUT
}

void loop()
{
  boolean stat = digitalRead(digitalInPin);//read the value of pin7 to stat
  if(stat == HIGH)// if it it HIGH
  { 
    digitalWrite(ledPin,LOW);// then turn off the led
  }
  else //else
  {
    digitalWrite(ledPin,HIGH); // turn on the led
  } 
}

实验12 U型光感传感器实验

【实验介绍】

U型光电传感器是一种对射式光电传感器,它有一个发射端和接收端组成,它适用于物体通过传感器时光线被挡住的原理。因此,U型光电传感器广泛用于速度测量。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线*1
  • U型光电传感器模块* 1
  • 面包板*1
  • 9V方型电池*1
  • 跳线若干

【实验原理】

U型光电传感器由两部分组成:发射器和接收器。发射器(例如,LED或激光器)发光然后光线进入接收器。如果发射器和接收器之间的光束被障碍物挡住,接收器即使在一瞬间也将检测不到入射光,并且输出电平将会改变。在这个实验中,我们将通过使用此更改来打开或关闭LED。

【实验内容】

  • 第一步:建立电路
  • 第二步:程序
  • 第三步:编译
  • 第四步:将程序上传至Arduino Uno板

将一张纸贴到传感器的间隙中,Arduino Uno上连接到D13号针脚的LED将熄灭;取出纸张,然后LED再次点亮。

【实验体会】

通过这次U型光电传感器实验,我对光电传感器的原理和应用有了更深入的了解。光电传感器由发射器和接收器组成,在实验中我们使用了LED作为发射器和接收器来检测光线的变化。当障碍物挡住发射器和接收器之间的光束时,接收器无法接收到光线,输出电平发生变化。通过连结光电传感器和Arduino Uno主板,我们可以利用这种变化来控制LED的开关。


在实验中,我们首先搭建电路,将光电传感器模块的接收器和发射器连接到Arduino Uno主板的相应引脚上。然后编写Arduino程序,通过读取光电传感器模块的输出状态来控制LED的亮灭。当我们将一张纸贴入传感器的间隙中,光线被遮挡,光电传感器的输出状态发生改变,LED熄灭;取出纸张,光线恢复,LED再次点亮。


通过这个实验,我更深入地理解了光电传感器的工作原理,以及如何利用它来检测光线的变化。这个实验也增强了我的动手实践能力和创新意识,让我对电子元器件的应用有了更深入的认识。

【程序】

/**********************************/
const int photoPin = 7; //the number of the key pin
const int ledPin = 13;//the number of the led pin
/**********************************/
void setup()
{
  pinMode(photoPin,INPUT); 
  pinMode(ledPin,OUTPUT);//initialize the led pin as output
}
/**********************************/
void loop()
{
  
  boolean Value=digitalRead(photoPin);
 
  //if it is,the state is HIGH 
  if(Value ==HIGH )
  {
    digitalWrite(ledPin,LOW);//turn on the led
  }
  else
  {
    digitalWrite(ledPin,HIGH);//turn off the led
  }
}

实验14 雨滴传感器实验

【实验介绍】

雨滴传感器或雨滴检测传感器用于检测是否下雨以及降雨。广泛应用于汽车的雨刷系统、智能照明系统和天窗系统。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线*1
  • 雨滴传感器* 1
  • 雨滴传感器调理板* 1
  • 面包板*1
  • 9V方型电池* 1
  • 跳线若干

【实验原理】

在雨滴雨水器系统中用雨滴传感器检测降雨量,并转换控制器检测到的信号,然后根据这些信号自动设置雨刮器的间隔以方便地控制雨刮器的电机,在智能照明系统中,自动检测驾驶环境,并调整照明环模式提高恶劣环境下的行车安全,在智能天窗系统中检测是否下雨,如果检测到雨滴,则自动关闭天窗。

我在这个实验中我们使用模块和连接到Arduino Uno电路板D13的LED来构建电路,用Arduino Uno板的A0连接与低传感器模块的A0,将D0连接到引脚D7,将一些水滴到传感器上,下降越多A0处的值越低,当雨滴数量超过设定的阈值时,D0将由高变低相应的LED将亮起。

【实验内容】

  • 第一步:建立电路
  • 第二步:程序
  • 第三步:编译
  • 第四步:将程序上传至Arduino Uno板

现在将一些水滴到传感器上,当雨滴数量超过阈值时,雨滴传感器模块上的LED和Arduino Uno板的针脚13上的LED点亮,否则他们的保持关闭,可以通过电位器调整传感器的灵敏度,这意味着设置它的阈值。

  1. 未接触水

  1. 接触水,LED点亮

【实验体会】

通过这个实验,我了解到了如何使用雨滴传感器来检测降雨量,并根据检测到的信号控制LED的亮灭。这个实验展示了传感器和Arduino Uno板的配合使用,以及如何编写程序来读取传感器的值并控制LED的状态。

在搭建电路的过程中,我需要将雨滴传感器模块的引脚连接到Arduino Uno板的相应引脚,并使用面包板和跳线进行连接。这个步骤需要一定的耐心和细心确保电路连接正确。

在编写程序的过程中,我使用了analogRead()函数和digitalRead()函数来读取传感器的值,并使用digitalWrite()函数控制LED的状态。我还设置了串行监视器以便查看传感器的读数和LED的状态。

上传程序到Arduino Uno板后,我进行了实验测试。当未接触到水时,LED保持关闭;当接触到水并且雨滴数量超过设定的阈值时,LED点亮。通过调整电位器可以改变传感器的灵敏度,从而改变阈值。

这个实验帮助我理解了传感器的工作原理和Arduino Uno的基本操作,也展示了如何利用传感器检测环境信息并做出相应的控制。我可以进一步扩展这个实验,用于其他领域的智能控制系统。

【程序】

/******************************************************
name:Raindrop Detection
function:drop some water onto the sensor,
When the quantities of the raindrops exceeds the threshold,
the LED on the raindrop sensor module and that hooked up with pin 13 of the Arduino Uno board light up
*******************************************************/

const int analogPin=A0; //the AO of the module attach to A0
const int digitalPin=7;  //D0 attach to pin7
const int ledPin=13;  //pin 13 built-in led
int Astate=0; //store the value of A0
boolean Dstate=0;  //store the value of D0

void setup() 
{
 pinMode(ledPin,OUTPUT); //set the ledPin as OUTPUT 
 pinMode(digitalPin,INPUT);  //set digitalPin as INPUT
 Serial.begin(9600);  //initialize the serial monitor
}

void loop() 
{
  Astate=analogRead(analogPin);  //read the value of A0
  Serial.print("A0: ");
  Serial.println(Astate);  //print the value in the serial monitor
  Dstate=digitalRead(digitalPin);  //read the value of D0
  Serial.print("D0: ");
  Serial.println(Dstate);
  if(Dstate==HIGH)  
  {
   digitalWrite(ledPin,LOW);
  }
  else //if the value of D0 is LOW
  {
  digitalWrite(ledPin,HIGH); //turn on the led
  }
}

实验15 PS2操纵杆实验

【实验介绍】

操纵杆是一种输入设备,由一个可在基座上旋转并向其控制的设备报告及角度和方向的操作杆组成,操纵杆通常用于控制视频游戏和机器人,这里使用操纵杆ps2。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线* 1
  • PS2游戏手柄模块* 1
  • 面包板*1
  • 9V方型电池*1
  • 跳线若干

【实验原理】

该模块具有两个模拟输出(对应于X和Y坐标)和一个数字输出,表示是否在Z轴上按下。

【实验内容】

  • 第一步:建立电路

  • 第二步:程序
  • 第三步:编译
  • 第四步:将程序上传至Arduino Uno板

现在,推动摇杆,串行监视器上显示的X轴和Y轴坐标将相应改变;按下按钮,Z的坐标也会显示出来。

【实验体会】

通过这个实验,我成功地使用了PS2游戏手柄模块和Arduino Uno主板来操控摇杆。在实验过程中,我首先建立了电路连接,确保PS2游戏手柄模块与Arduino Uno主板正常通信。然后,我使用了给定的程序代码,并将其上传到Arduino Uno主板上进行编译和运行。


在实验中,我发现操纵杆模块具有两个模拟输出,分别对应X和Y坐标,以及一个数字输出来表示按下Z轴的按钮。当我推动摇杆时,通过串行监视器,我能够实时观察到X轴和Y轴的坐标值的变化。同时,当我按下摇杆上的按钮时,Z轴的坐标值也会相应地显示为0。


这个实验让我更好地理解了如何使用操纵杆作为输入设备,并将其与Arduino Uno主板结合使用。我可以将这种操纵杆应用于控制视频游戏或机器人等项目中,实现更灵活和精确的控制操作。


总的来说,这个实验是一次很有趣和有收获的经历,增加了我对电子元件和Arduino编程的理解,也拓宽了我的实验能力。

【程序】

/*********************************************
 * name:Joystick PS2
 * function:push the joystick and the coordinates of X and Y axes displayed on Serial Monitor will change accordingly; 
 * press down the joystick, and the coordinate of Z=0 will also be displayed.
 connection:
 Joystick PS2                 Arduino Uno R3
 GND                        GND
 VCC                        5V
 SW                       7
 x                        A0
 y                        A1
 ***********************************************/

const int xPin = A0;     //X attach to A0
const int yPin = A1;     //Y attach to A1
const int btPin = 7;     //Bt attach to digital 7

void setup()
{
  pinMode(btPin,INPUT); //set btpin as INPUT
  digitalWrite(btPin, HIGH); //and HIGH
  Serial.begin(9600); //initialize serial
}

void loop()
{
  Serial.print("X: ");//print "X: "
  Serial.print(analogRead(xPin),DEC); //read the value of A0 and print it in decimal
  Serial.print("\tY: "); //print "Y: "
  Serial.print(analogRead(yPin),DEC); //read the value of A1 and print it in decimal
  Serial.print("\tZ: "); //print "Z: "
  Serial.println(digitalRead(btPin)); read the value of pin7 and print it
  delay(100);//delay 100ms
}


实验16 电位器传感器实验

【实验介绍】

电位器可以帮助控制Arduino板上的LED闪烁的时间间隔。

【实验组件】

  • Arduino Uno主板* 1
  • 电位器模块* 1
  • USB电缆*1
  • 面包板* 1
  • 9V方型电池* 1
  • 跳线若干

【实验原理】

模拟电位器是模拟电子元件,模拟和数字之间有什么区别?简而言之,数字电位器仅指开/关,高/低电平两种状态,即0或1,而数字电位器支持1至1000之间的模拟信号,信号值随着时间变化而不是保持一个确切的数字。模拟信号也包括光强度、湿度、温度等。

在本实验中,将电位器模块的引脚SIG连接到Arduino Uno电路板的A0,并检查A0处的值。然后使用该值来控制与Uno 板的针脚13连接的LED闪烁的时间间隔。旋转电位器的轴,LED闪烁间隔将增加或减少。

【实验内容】

  • 第一步:建立电路
  • 第二步:程序
  • 第三步:编译
  • 第四步:将程序上传至Arduino Uno板

旋转电位器传感器的轴,可以看到Arduino Uno D13引脚上连接的LED将会增加或减少闪烁的间隔。

【实验体会】

在进行电位器传感器实验时,我通过连接电位器模块和Arduino Uno主板,成功控制了LED的闪烁时间间隔。在实验过程中,我对模拟信号和数字信号之间的区别有了更深入的理解。


通过旋转电位器的轴,我观察到LED闪烁的间隔随着电位器值的变化而增加或减少。这表明电位器模块可以通过改变模拟信号的数值来控制LED的闪烁频率。当电位器的值增大时,LED的闪烁间隔变长;当电位器的值减小时,LED的闪烁间隔变短。


这个实验让我更加了解了电位器的工作原理和应用场景。电位器作为一种模拟电子元件,在控制系统中具有广泛的应用,可以用来调节电路的输出、控制设备的运行等。通过与Arduino Uno主板结合,我们可以将电位器模块与其他组件进行联动,实现更多有趣的功能。


总的来说,电位器传感器实验帮助我巩固了对模拟信号和数字信号的理解,并且通过实际操作,让我更深入地了解了电位器的工作原理和应用。这个实验非常有趣,也为我今后在电子控制领域的学习和应用提供了很好的基础。

【程序】

const int analogPin = A0;//the analog input pin attach to
const int ledPin =13;//the led attach to
int inputValue = 0;//variable to store the value coming from sensor
/******************************************/
void setup()
{
  pinMode(ledPin,OUTPUT);
  Serial.begin(9600);
}
/******************************************/
void loop()
{
  inputValue = analogRead(analogPin);//read the value from the sensor
  //Serial.println(inputValue);
  digitalWrite(ledPin,HIGH);
  delay(inputValue);
  digitalWrite(ledPin,LOW);
  delay(inputValue);
}
/*******************************************/

实验17 模拟霍尔传感器实验

【实验介绍】

基于霍尔效应,霍尔传感器是响应于磁场而改变其输出电压的传感器。霍尔传感器用于接近开关,定位,速度检测和电流检测应用。

霍尔传感器可以分为模拟霍尔传感器和开关霍尔传感器由电压调节器,霍尔元件,差分放大器,施密特触发器和输出端子组成,输出布尔值(0/1),模拟霍尔传感器由霍尔元件线性放大器和射极跟随器组成,输出模拟值。如果在模拟霍尔传感器上增加比较器就可以组成数字开关霍尔传感器和模拟霍尔传感器一体,它可以输出模拟值和数字信号。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线*1
  • 模拟数字霍尔传感器模块* 1
  • 面包板*1
  • 磁铁*1
  • 9V方型电池*1
  • 跳线若千

【实验原理】

霍尔效应是一种电磁效应。它在1879年由Edwin Hal发现,当时他正在研究有关金属的传导机制。当导体通过均匀的磁场时可以看到效果。载流子的自然电子漂移导致磁场对这些载流子施加洛伦兹力(施加在电磁场中带电粒子上的力)。结果就是所谓的电荷分离,在底部或顶部积聚了正电荷或负电荷。

霍尔传感器是基于它的磁场传感器。

通过导体传输的电流会产生随电流变化的磁场,霍尔传感器可用于测量电流而不中断电路。通常,传感器与围绕待测导体的绕线芯或永磁体集成。

在这个实验中,当传感器接近磁体时,引脚A0的值将改变。当该值超过电位器设定的阈值之前,D0将输出低电平,相应的LED亮起。

模拟霍尔传感器模块的原理图

【实验内容】

  • 第一步:建立电路
  • 第二步:程序
  • 第三步:编译
  • 第四步:将程序上传至Arduino Uno板

现在将磁铁靠近霍尔传感器。D0的电压从高到低变化,然后传感器上的LED和接到Arduino Uno的引脚13的LED亮起。

【实验体会】

通过这个实验,我更好地了解了模拟霍尔传感器的工作原理和数字输出的应用。在实验中,我们使用了LM393低功耗低偏移电压双比较器和Arduino Uno主板,通过连接模拟霍尔传感器的输出引脚到Arduino Uno主板的A0引脚,将数字输出引脚连接到Arduino Uno主板的7号引脚,来实现对LED的控制。


在程序中,我们首先读取A0引脚的模拟值,并将其存储在sensorValue变量中。然后读取D0引脚的数字值,并将其存储在digitalValue变量中。将sensorValue和digitalValue的值打印到串口监视器上,以便我们可以观察到传感器的数值和数字输出的状态。


接下来,我们使用条件语句判断digitalValue的值。如果digitalValue为HIGH(高电平),则将ledPin设置为LOW(关闭LED)。如果digitalValue为LOW(低电平),则将ledPin设置为HIGH(打开LED)。


通过这个实验,我更深入地了解了模拟霍尔传感器的应用和数字输出的应用。同时,在实验中我也学会了如何利用Arduino Uno主板来控制其他组件的行为。这个实验对于我的学习和应用有很大的帮助。

【程序】

//Analog Hall Sensor
//using an LM393 Low Power Low Offset Voltage Dual Comparator
/*******************************
 * Analog Hall Sensor     Uno R3
 * A0                     A0
 * D0                     7
 * VCC                    5V
 * GND                    GND
 *******************************/

const int ledPin = 13;//the led attach to pin13
int sensorPin = A0;    // select the input pin for the potentiometer
int digitalPin=7;   //D0 attach to pin7

int sensorValue = 0;// variable to store the value coming from A0
boolean digitalValue=0;// variable to store the value coming from pin7

void setup() 
{
  pinMode(digitalPin,INPUT);//set the state of D0 as INPUT
  pinMode(ledPin,OUTPUT);//set the state of pin13 as OUTPUT
  Serial.begin(9600); // initialize serial communications at 9600 bps

}

void loop() 
{ 
  sensorValue = analogRead(sensorPin);  //read the value of A0
  digitalValue=digitalRead(digitalPin);  //read the value of D0
  Serial.print("Sensor Value "); // print label to serial monitor 
  Serial.println(sensorValue);  //print the value of A0
  Serial.print("Digital Value "); // print label to serial monitor 
  Serial.println(digitalValue);  //print the value of D0 in the serial
  if( digitalValue==HIGH )//if the value of D0 is HIGH
  {
    digitalWrite(ledPin,LOW);//turn off the led
  }
  if( digitalValue==LOW)//else
  {
    digitalWrite(ledPin,HIGH);//turn on the led
  }
  delay(1000);//delay 200ms
}

实验18 模拟温度传感器实验

【实验介绍】

温度传感器是检测温度并将其转换为输出信号的组件。根据材料和部件的特点,温度传感器可分为热电阻和热电偶两种。热敏电阻是前者的一种。它由半导体材料制成;大多数热敏电阻是负温度系数(NTC), 其电阻随温度升高而降低。由于它们的电阻随温度变化剧烈变化,所以热敏电阻是最敏感的温度传感器。

模拟温度传感器模块使用NTC热敏电阻,因此可以对温度进行敏感测量。它还有一个内置比较器LM393,它可以使模块同时输出数字和模拟信号。该模块可用于温度报警和温度测量。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线* 1
  • 模拟温度传感器模块* 1
  • 面包板*1
  • 9V方型电池*1
  • 跳线若干

【实验原理】

模拟温度传感器模块.上有一个比较器LM393。您可以通过电位器设置一个阈值。当触摸热敏电阻时,A0的值会降低。一旦该值低于阈值,D0将输出高电平,并且模拟温度传感器模块上的指示灯以及连接到Arduino Uno的针脚13.上的指示灯将熄灭。可以检查串行监视器上的AO和DO的值。该模块的示意图:

【实验内容】

  • 第一步:建立电路
  • 第二步:程序
  • 第三步:编译
  • 第四步:将程序上传至Arduino Uno板

现在触摸热敏电阻,模拟温度传感器上的LED和连接到Arduino Uon的13号针脚上的LED将熄灭。

【实验体会】

在进行温度传感器实验时,我首先建立了电路,包括Arduino Uno主板、USB数据线、模拟温度传感器模块、面包板、9V方型电池和跳线。然后,我编写了相应的程序,并将程序上传到了Arduino Uno板上。


实验的原理是利用模拟温度传感器模块上的热敏电阻和比较器LM393来检测温度并输出信号。通过调整电位器设置一个阈值,在触摸热敏电阻时,A0的值会降低。一旦该值低于阈值,D0将输出高电平,并且模拟温度传感器模块上的指示灯以及连接到Arduino Uno的针脚13上的指示灯将熄灭。通过串行监视器可以监测到AO和DO的值。


在实验过程中,我触摸热敏电阻,发现模拟温度传感器上的LED和连接到Arduino Uno的13号针脚上的LED都熄灭了,符合预期结果。


这个实验让我更好地理解了温度传感器的工作原理和使用方法。通过Arduino Uno的编程和控制,可以方便地检测和控制温度,具有一定的实用性。此外,通过调整阈值,还可以根据需要设置温度报警功能,提高了温度监测的灵活性和精确性。


总的来说,这个实验对我加深了对温度传感器的理解,也锻炼了我的电路搭建和编程能力。通过实践操作,我更好地掌握了使用温度传感器进行温度测量和控制的方法。

【程序】

//Analog Temperature Sensor
const int digitalPin = 7;     // Analog Temperature Sensor pin D0 to pin7
int analogPin = A0;           // Analog Temperature Sensor pin A0 to pin A0
const int ledPin =  13;      // pin 13 built-in LED light

// variables will change:
boolean Dstate = 0;          // variable for reading status of D0
int Astate = 0;            // variable for reading status of A0
void setup() 
{
  pinMode(ledPin, OUTPUT); // initialize the LED pin as an output:     
  pinMode(digitalPin, INPUT);  // initialize Analog Temperature Sensor D0 pin as an input
  Serial.begin(9600); // initialize serial communications at 9600 bps 

}

void loop()
{
  Astate = analogRead(analogPin);  // read Analog Temperature Sensor A0 value (set point)
  Dstate = digitalRead(digitalPin);  // read state of Analog Temperature Sensor D0
  Serial.print("D0: ");
  Serial.println(Dstate);//print the value of D0
  Serial.print("A0:");
  Serial.println(Astate);//print the value of A0
  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (Dstate == HIGH)    // check if Analog Temperature Sensor D0 is HIGH
  {     
    // turn LED :    
    digitalWrite(ledPin, LOW);  
  } 
  else 
  {
    // turn LED :
    digitalWrite(ledPin, HIGH); 
  }
  delay(1000);                // controls speed of Analog Temperature Sensor and Serial Monitor display rate
}

实验19 声音传感器实验

【实验介绍】

声音传感器是一种接收声波并将其转换为电信号的组件。它像麦克风一样检测周围环境中的声音强度。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线*1
  • 声音传感器模块* 1
  • 面包板*1
  • 9V方型电池*1
  • 跳线若干

【实验原理】

该传感器具有对声音敏感的电容式驻极体麦克风。声波导致驻极体薄膜振动,然后电容发生变化,从而导致相应的电压变化。由于变化非常微弱,因此需要加以放大。这里的LM358是一个100倍增益的功率放大器。将声音传感器的SIG输出引脚连接到Arduino Uno电路板的A0。然后,您可以在串行监视器上看到声音强度的值,或者如果连接了示波器,则可以在示波器上显示波形。

【实验内容】

  • 第一步:建立电路
  • 第二步:程序
  • 第三步:编译
  • 第四步:将程序上传至Arduino Uno板

现在可以看到在串行监视器上看到声音强度的值。当音量达到一定值时,Arduino Uno电路板上连接到引脚13的LED将亮起。

【实验总结】

通过进行声音传感器实验,我对声音传感器的原理和使用方法有了更深入的了解。


在实验中,我首先搭建了电路,包括Arduino Uno主板、声音传感器模块、面包板、USB数据线、9V方型电池和跳线。然后,我将给定的程序上传到Arduino Uno板上。


声音传感器利用电容式驻极体麦克风接收声波,并将其转换为电信号。声波导致驻极体薄膜振动,进而引起电容变化,从而导致相应的电压变化。为了放大这个变化微弱的信号,我们使用了一个100倍增益的功率放大器LM358。将声音传感器的SIG输出引脚连接到Arduino Uno的A0引脚上。通过串行监视器,我们可以看到声音强度的值,或者如果连接了示波器,可以在示波器上显示声音波形。


在实验内容中,我完成了电路搭建、编写程序、编译以及将程序上传至Arduino Uno板的步骤。现在,我可以在串行监视器上看到声音强度的值。当声音强度超过一定阈值(600)时,连接到Arduino Uno的13号引脚的LED灯将亮起。


通过这个实验,我对声音传感器的工作原理有了更深入的理解。声音传感器可以用于监测周围环境中的声音强度,并通过Arduino进行处理和控制。这在很多应用场景中都非常有用,例如声音控制灯光、声音报警等。同时,通过调整阈值,可以根据需要进行声音强度的检测和响应。


总的来说,这个实验让我更好地掌握了声音传感器的使用方法,也增加了我的电路搭建和编程能力。通过实践操作,我更加熟悉了声音传感器的原理和特性,为将来的项目开发提供了基础。

【程序】

/***************************************************
name:Rotary Encoder
function:you can see the angular displacement of the rotary encoder printed on Serial Monitor.
When the rotary encoder rotates clockwise, the angular displacement increases; when it does counterclockwise, the value decreases.
Press the switch on the rotary encoder, the value will return to zero.
********************************************************/

const int ledPin = 13; //pin13 built-in led
const int soundPin = A0;  //sound sensor attach to A0

void setup()
{
  pinMode(ledPin,OUTPUT);//set ledPin as OUTPUT
  Serial.begin(9600); //initialize the serial communication as 9600 bps
}

void loop()
{
  int value = analogRead(soundPin); //read the value of sound sensor
  Serial.println(value);//print it
  if(value > 600)//if the vallue of sound sensor is greater than 600
  {
    digitalWrite(ledPin,HIGH); //turn on the led
    delay(200); //delay 200ms
  }
  else //elae 
  {
    digitalWrite(ledPin,LOW); //turn off the led
  }
}

实验20 光敏传感器实验

【实验介绍】

该传感器实际上是一个光敏电阻,它随着光强的变化而改变其电阻。它可以用来制作光控开关。

【实验组件】

  • Arduino Uno主板* 1
  • USB数据线* 1
  • 继电器模块* 1
  • 光敏电阻传感器模块* 1
  • 面包板*1
  • 9V方型电池*1
  • 跳线若干

【实验原理】

光敏电阻或光敏电阻(LDR) 或光电池是光控可变电阻。光敏电阻的电阻随着入射光强度的增加而减小;换句话说,它表现出光电导性。光敏电阻可应用于光敏检测器电路,以及光敏和亮暗控制开关电路。在本实验中,将光敏电阻连接到Arduino板的A0,并继续连接到引脚8.当数值达到甚至超过400时,继电器的常开触点闭合,Arduino Uno板上的引脚13上的LED将点亮;否则,它会关闭。这样你就可以做一个光控开关。

【实验内容】

  • 第一步:建立电路
  • 第二步:程序
  • 第三步:编译
  • 第四步:将程序上传至Arduino Uno板

现在用手指拿住光敏电阻,并检查串行监视器上的A0值。当电阻高达400欧姆时,

继电器的常开触点闭合, Arduino Uno电路板上的13号针脚的LED点亮;否则,它会保持不变。

【实验总结】

本次实验是通过光敏电阻传感器模块来制作一个光控开关的实验。在实验中,我们首先建立了电路,包括光敏电阻传感器模块、面包板、9V方型电池和跳线。然后,在Arduino Uno板上编写程序,将光敏电阻连接到A0引脚,并继续连接到引脚8。当数值达到甚至超过400时,继电器的常开触点闭合,Arduino Uno板上的引脚13上的LED将点亮;否则,它会关闭。


通过实验内容,我们可以了解到光敏电阻的原理,即光敏电阻的电阻随着入射光强度的增加而减小。同时,我们还学习了如何将光敏电阻连接到Arduino Uno板上,并通过编写程序实现对光敏电阻的检测和响应。最终,我们成功制作出了一个光控开关,并可以通过手指触摸光敏电阻来测试其功能。


总的来说,这个实验让我更好地理解了光敏电阻的工作原理,也提高了我的电路搭建和编程能力。通过实践操作,我更加熟悉了使用Arduino Uno进行电路控制的方法,为将来的项目开发提供了基础。

【程序】

/*****************************************************
 * name:Photoswitch
 * function: hold the photoresistor with your fingers and check the value at A0 on Serial Monitor. 
 * You can see when the resistance is up to 400ohm,
 * the normally open contact of the relay is closed and the LED connected to pin 13 on the Arduino Uno board lights up;
 * or else, it keeps out.
 ************************************************/
const int photocellPin = A0; //photoresistor module attach to A0
const int ledPin = 13;      //pin 13 built-in led
const int relayPin=8;      //relay module attach to digital 8
int outputValue = 0;
/*************************************************/
void setup()
{
  pinMode(relayPin,OUTPUT); //set relayPin as OUTPUT
  pinMode(ledPin,OUTPUT); //set ledPin as OUTPUT
  Serial.begin(9600); //initialize the serial communication as 9600bps
}
/*************************************************/
void loop()
{
  outputValue = analogRead(photocellPin);//read the value of photoresistor
  Serial.println(outputValue); //print it in serial monitor
  if(outputValue >= 400) //if the value of photoreisitor is greater than 400
  {
    digitalWrite(ledPin,HIGH); //turn on the led 
    digitalWrite(relayPin,LOW); //relay connected
  }
  else //else
  {
    digitalWrite(ledPin,LOW); //turn off the led
    digitalWrite(relayPin,HIGH); //and relay disconnected
  }
  delay(1000); //delay 1s
}
/*************************************************/


相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
6月前
|
传感器 存储 监控
【物联网】液滴即信息:雨滴探测传感器实验解析降雨的密码
【物联网】液滴即信息:雨滴探测传感器实验解析降雨的密码
115 0
|
6月前
|
物联网
STC51单片机-实验开发装置仿真-物联网应用系统设计
STC51单片机-实验开发装置仿真-物联网应用系统设计
141 0
|
6月前
|
传感器 存储 监控
编写Arduino代码:构建物联网设备,实现上网行为管理软件对网络的实时监控
使用Arduino和ESP8266/ESP32等Wi-Fi模块,结合传感器监控网络活动,本文展示了如何编写代码实现实时监控并自动将数据提交至网站。示例代码展示如何连接Wi-Fi并检测网络状态,当连接成功时,通过HTTP POST请求将“Network activity detected.”发送到服务器。通过调整POST请求的目标URL和数据,可将监控数据上传至所需网站进行处理和存储。
199 0
|
存储 传感器 运维
身临其境!带你“走”一遍物联网真实案例实验场景
通过3个案例实验场景,手把手带你完整掌握物联网全链路!
69910 0
身临其境!带你“走”一遍物联网真实案例实验场景
|
数据可视化 前端开发 IDE
江南大学物联网工程学院数据库课程实验三作业3vb.net实验报告
江南大学物联网工程学院数据库课程实验三作业3vb.net实验报告
148 1
江南大学物联网工程学院数据库课程实验三作业3vb.net实验报告
|
物联网
物联网Arduino定时开关与手机控制智能灯
此项目主要是包含NTP获取时间和手机连接控制组成 1. 本项目效果: 晚上到点强制关灯睡觉,早上开灯提醒起床,如果晚上不想睡可以通过手机建立连接进行控制开灯或者关灯,还增加了一些KTV爆闪等有趣效果模式(有些费灯)
338 0
物联网Arduino定时开关与手机控制智能灯
|
人工智能 自然语言处理 机器人
|
IDE 物联网 开发工具
ESP8266-NodeMCU物联网开发之Arduino环境搭建
ESP8266-NodeMCU物联网开发之Arduino环境搭建
569 0
|
存储 传感器 IDE
物联网开发——Arduino语法手册
Arduino 的程序可以划分为三个主要部分:结构、变量(变量与常量)、函数。
577 0
|
物联网
节点与节点之间无线通信的组成原理与具体实现(实验篇,含完整代码)_物联网挑战赛
节点与节点之间无线通信的组成原理与具体实现(实验篇,含完整代码)_物联网挑战赛
180 0