Arduino+溫度、濕度傳感器(附代碼)


       Arduino語言注解Arduino語言是建立在C/C++基礎上的,其實也就是基礎的C語言,Arduino語言只不過把AVR單片機(微控制器)相關的一些參數設置都函數化,不用我們去了解他的底層,讓我們不了解AVR單片機(微控制器)的朋友也能輕松上手。

相比Arduino,也許我們更熟悉“集成電路”這一概念。集成電路是為了實現某種特定功能的計算而設計的微小芯片。對於普通人來說,傳統的集成電路應用比較繁瑣,一般需要具有一定電子知識基礎,並懂得如何進行相關的程序設計的工程師才能熟練使用。但是Arduino的出現讓曾經只有專業人士才能使用的集成電路變為平易近人的電子設計工具,即使沒有程序設計基礎,也可以通過簡單的學習,掌握使用Arduino的方法。為了實現這一目標,Arduino從兩方面進行了努力與改進。首先,在硬件方面,Arduino本身是一款非常容易使用的印刷電路板。電路板上裝有專用集成電路,並將集成電路的功能引腳引出方便我們外接使用。同時,電路板還設計有USB接口方便與電腦連接。其次,在軟件方面,Arduino提供了專門的程序開發環境Arduino IDE。其界面設計簡潔,對於沒有接觸過程序設計的“小白”也可以輕松上手。

Arduino--UNO主板

 

Arduino--IDE

 

實驗一  Hello world

目標效果:打印Hello world” 字體

硬件准備Arduino UNO 主板

軟件准備Arduino--IDE

電路連接Arduino主板——電腦

代碼

void setup() {

// put your setup code here, to run once:

Serial.begin(115200);

}

void loop() {

// put your main code here, to run repeatedly:

Serial.println("Hello world !");

delay(1000);

}

實驗二 動態顯示屏實驗

目標效果:顯示屏顯示打印的文字

硬件准備

Arduino UNO一塊  

IIC1602顯示模塊一個

Arduino UNO底板一塊

杜邦線若干

軟件准備Arduino--IDE

電路連接

GND——GND

VCC——5V

SDA——A4

SCL——A5

代碼

#include <Wire.h>

#include <LCD.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7); // 0x27 is the I2C bus address for an unmodified backpack

void setup() { // activate LCD module

  lcd.begin (16,2); // for 16 x 2 LCD module 設置LCD的列和行數

  lcd.setBacklightPin(3,POSITIVE);

  lcd.setBacklight(HIGH);

}

void loop() {

  lcd.home (); // set cursor to 0,0   將光標設置為第0列第1

  lcd.print("  KeywishRobot");

   delay(1000);

  lcd.setCursor (0,1); // go to start of 2nd line

  lcd.print("    ");

  lcd.print(millis());

  delay(1000);

  lcd.setBacklight(LOW); // Backlight off delay(250);        

  lcd.setBacklight(HIGH); // Backlight on delay(1000);

}

實驗三 溫濕度傳感器

目標效果:屏幕顯示當前的溫度和濕度

硬件准備

Arduino UNO一塊  

IIC1602顯示模塊一個

DHT11 溫濕度傳感器一個

杜邦線若干

軟件准備Arduino--IDE

電路連接

IIC1602:

GND——GND

VCC——5V

SDA——A4

SCL——A5
DHT11

VCC 3.3V

GND GND

DAT pin8

代碼

/*

 * 使用溫濕度傳感器檢測信息並顯示在 LCD

 */

#include <Wire.h>  // 導入驅動 LCD 需要的庫

#include "LCD.h"

#include"dht11.h"  // 導入 dht 庫,用於溫濕度傳感器

#include "LiquidCrystal_I2C.h"

#define DHT11PIN  8  // 將溫濕度傳感器的數據端口接至 A0

dht11 DHT11;

LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);    // 0x27 I2C 總線的地址

 

void setup() {

   pinMode(DHT11PIN,OUTPUT);

   lcd.begin (16,2); // for 16 x 2 LCD module 初始橫16列、豎2

   lcd.setBacklightPin(3,POSITIVE);

   lcd.setBacklight(HIGH);

}

 

void loop() {

    // 讀取溫濕度傳感器的數據

    int chk = DHT11.read(DHT11PIN);

    // LCD 顯示采集的溫濕度數據

    lcd.setCursor(0, 0);

    lcd.print("Tep: ");

    lcd.print((float)DHT11.temperature, 2);

    lcd.print("C");

    lcd.setCursor(0, 1);

    lcd.print("Hum: ");

    lcd.print((float)DHT11.humidity, 2);

    lcd.print("%");

    delay(200);

}

延伸--圖形編程軟件:ScratchmBlock

Scratch是一款由麻省理工學院(MIT) 設計開發的一款面向少年的簡易編程工具,scratch已經是少兒編程行業的基礎軟件。

mBlock 是一款面向 STEAM 教育領域的圖形化編程學習軟件,基於 Scratch 3.0 開發。它不僅能讓用戶創作有趣的故事、游戲、動畫等作品,並且支持 Makeblock 主板和其他 Arduino 硬件的編程。

 

語法常用參數

1pinMode(接口名稱,OUTPUTINPUT)將——接口定義為輸入或輸出接口,用在setup()函數里。

2digitalWrite(接口名稱, HIGHLOW)——將數字接口值至高或低。

3digitalRead(接口名稱)——讀出數字接口的值。

4analogWrite(接口名稱, 數值)——給一個接口寫入模擬值(PWM波)。對於 ATmega168芯片的Arduino(包括MiniBT),該函數可以工作於 3, 5, 6, 9, 1011號接口。老的 ATmega8芯片的USBserial Arduino僅僅支持 9, 101 1號接口。

5analogRead(接口名稱)——從指定的模擬接口讀取值,Arduino對該模擬值進行10-bit的數字轉換,這個方法將輸入的0-5電壓值轉換為 01023間的整數值。

6delay()——延時一段時間,delay(1000)為一秒。

7Serial.begin(波特率)——設置串行每秒傳輸數據的速率(波特率)。在同計算機通訊時,使用下面這些值:300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600115200。你也可以在任何時候使用其它的值,比如,與0號或1號插口通信就要求特殊的波特率。用在setup()函數里

8Serial.read()——讀取持續輸入的數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM