Arduino#

1. Arduino简介#

Arduino是一款开源电子原型平台,广泛用于构建互动项目。它由硬件和软件组成,硬件包括多种型号的开发板(如Arduino UNO、MEGA等),而软件主要是Arduino IDE,用于编写和上传代码。Arduino编程基于C/C++语言,语法简单易懂,特别适合初学者。通过各种传感器和模块,Arduino能够实现从基本的LED闪烁到复杂的自动化控制等多种应用。其社区的支持和丰富的资源,使得Arduino成为教育和DIY项目的理想选择。

2. 连接图#

3. 测试代码#

  • 下载文件:Arduino

  • 打开Arduino IDE,选择“项目”,选择“导入库”,再选择“添加.ZIP库”。

  • 找到下载资料的存放位置,打开文件夹找到库文件,选择要导入的库,点击“打开”。

  • 安装成功出现的界面。

#include <OneWire.h>  

int DS18S20_Pin = 3; // 定义数字口3  
OneWire ds(DS18S20_Pin);  

void setup(void) {  
    Serial.begin(9600); // 设置波特率  
}  

void loop() {  
    float temperature = getTemp(); // 调用函数计算温度值  
    Serial.println(temperature); // 显示温度值,并自动换行  
    delay(100); // 延迟0.1S   
}  

float getTemp() {  
    // returns the temperature from one DS18S20 in DEG Celsius  
    byte data[12];  
    byte addr[8];  

    if (!ds.search(addr)) {  
        // no more sensors on chain, reset search  
        ds.reset_search();  
        return -1000;  
    }  
    
    if (OneWire::crc8(addr, 7) != addr[7]) {  
        Serial.println("CRC is not valid!");  
        return -1000;  
    }  
    
    if ((addr[0] != 0x10) && (addr[0] != 0x28)) {  
        Serial.print("Device is not recognized");  
        return -1000;  
    }  

    ds.reset();  
    ds.select(addr);  
    ds.write(0x44, 1); // start conversion, with parasite power on at the end  
    byte present = ds.reset();  
    ds.select(addr);  
    ds.write(0xBE); // Read Scratchpad  

    for (int i = 0; i < 9; i++) { // we need 9 bytes  
        data[i] = ds.read();  
    }  

    ds.reset_search();  
    byte MSB = data[1];  
    byte LSB = data[0];  
    float tempRead = ((MSB << 8) | LSB); // using two's complement  
    float TemperatureSum = tempRead / 16;  
    return TemperatureSum;  
}  

4. 测试结果#

按照上图接好线,烧录好代码,上电后,通电后,您可以在软件串口监视器中看到当前环境温度值,如下图所示。