极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15017|回复: 5

NANO 的大雜燴

[复制链接]
发表于 2017-1-31 22:34:41 | 显示全部楼层 |阅读模式
本帖最后由 galaxy 于 2017-1-31 22:40 编辑

由 NANO 組成大雜燴

// include the library code:
#include <Wire.h>           //RTC
#include <RTClib.h>         //RTC
RTC_DS1307 RTC;
#include <LiquidCrystal.h>  //LCD
#include <DHT22.h>          //溫濕度
#define DHT22_PIN_1 13
DHT22 myDHT22_1(DHT22_PIN_1);
const int TrigPin =A2;     //超音波
const int EchoPin =A3;     //超音波
float cm;                  //超音波
float input_voltage = 0.0; //電壓表
float temp=0.0;            //電壓表

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd1(6, 7, 2, 3, 4, 5);
LiquidCrystal lcd2(6, 8, 2, 3, 4, 5);
LiquidCrystal lcd3(6, 9, 2, 3, 4, 5);
LiquidCrystal lcd4(6,10, 2, 3, 4, 5);
LiquidCrystal lcd5(6,11, 2, 3, 4, 5);
LiquidCrystal lcd6(6,12, 2, 3, 4, 5);

void setup() {
    Wire.begin();
    RTC.begin();
    if (! RTC.isrunning()) {
    RTC.adjust(DateTime(__DATE__, __TIME__)); }  
  
  analogReference(EXTERNAL); //使用aref引腳電壓作為基準源;LM35及電壓表都用得到
  lcd1.begin(7,2);
  lcd2.begin(7,2);
  lcd3.begin(7,2);
  lcd4.begin(7,2);
  lcd5.begin(7,2);
  lcd6.begin(7,2);

  pinMode(TrigPin, OUTPUT); //超音波
  pinMode(EchoPin, INPUT);  //超音波
  pinMode(A0,INPUT);  // D10 設為輸入 (焦電式感應模組)
  pinMode(A1,OUTPUT); // D12 設為輸出 (蜂鳴器)   
}

void loop() {  

    DateTime now = RTC.now(); //LCD1
    unsigned long tmp;
    tmp = now.year();
    lcd1.setCursor(2, 0);
    lcd1.print(tmp);

    tmp = now.month();
    if (now.month() < 10) {
      lcd1.setCursor(1, 1);
      lcd1.print('0');
      lcd1.setCursor(2, 1);
      lcd1.print(tmp);  }        
      lcd1.setCursor(3, 1);
      lcd1.print('-');
      
    tmp = now.day();
    if (now.day() < 10) {
      lcd1.setCursor(4, 1);
      lcd1.print('0');
      lcd1.setCursor(5, 1);
      lcd1.print(tmp); }  
   
    tmp = now.hour(); //LCD4
    if (now.hour() < 10) {
      lcd4.setCursor(2, 0);
      lcd4.print('0');
      lcd4.setCursor(3, 0);
      lcd4.print(tmp);}
      else {
      lcd4.setCursor(3, 0);
      lcd4.print(tmp);}
      
      tmp = now.minute();
      if (now.minute() < 10) {
      lcd4.setCursor(1, 1);
      lcd4.print('0');
      lcd4.setCursor(2, 1);
      lcd4.print(tmp);  }
      else {
      lcd4.setCursor(1, 1);
      lcd4.print(tmp); }
      lcd4.setCursor(3, 1);
      lcd4.print(':');
      
      tmp = now.second();
      if (now.second() < 10) {
      lcd4.setCursor(4, 1);
      lcd4.print('0');
      lcd4.setCursor(5, 1);
      lcd4.print(tmp);}
      else {
      lcd4.setCursor(4, 1);
      lcd4.print(tmp); }
  

DHT22_ERROR_t errorCode;//DHT22 溫濕度
  errorCode = myDHT22_1.readData();
  switch(errorCode)
  case DHT_ERROR_NONE:
  lcd2.setCursor(1,0);
  lcd2.print(myDHT22_1.getTemperatureC());
  lcd2.print(char(223));
  lcd2.print("C");
  lcd2.setCursor(1,1);
  lcd2.print(myDHT22_1.getHumidity());
  lcd2.print("%");
  
  digitalWrite(TrigPin, LOW);//超音波測距
  delayMicroseconds(2);
  digitalWrite(TrigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(TrigPin, LOW);

  int timer=-500;
  cm = pulseIn(EchoPin, HIGH) / 58.0;
  cm = (int(cm * 100.0)) / 100.0;
  delay(500);
  if(millis() > timer +500)
  
    lcd5.setCursor(3,0);
    lcd5.print("CM");
    lcd5.setCursor(1,1);
    lcd5.print(cm);
    lcd5.home();
    timer=millis()+500;
   
  int n = analogRead(A6); //LM35溫度計--讀取A0口的電壓值
  float vol = n * (3.3 / 1023.0*100); //使用浮點數存儲溫度數據,溫度數據由電壓值換算得到(電壓3.3V)
  lcd3.setCursor(1,0);
  lcd3.print("Temp");
  lcd3.setCursor(6,1);
  lcd3.print(char(223));
  lcd3.print("C");
  lcd3.setCursor(1,1);
  lcd3.print(vol);
  
  int analog_value = analogRead(A7);// 0~5V 電壓表
   input_voltage = (analog_value * 5.0) / 1024.0;   
   if (input_voltage < 0.1)
   { input_voltage=0.0; }
    lcd6.setCursor(1, 0);
    lcd6.print("Volt(V) ");
    lcd6.setCursor(1,1);
    lcd6.print(input_voltage);
   
int x =digitalRead(A0); //焦電式感應模組--建一個變量x,讀取 A0 的狀態
  if (x==HIGH)           //判斷x是否為高電位,如果是繼續執行,不是則跳過
     //digitalWrite(A1,HIGH);
  if (x==LOW)
     digitalWrite(A1,LOW);      
    }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2017-1-31 22:44:41 | 显示全部楼层
小弟不才,來極客多年沒什麼作品,
一點小把戲,希望有所供獻
回复 支持 反对

使用道具 举报

发表于 2017-2-3 00:19:28 | 显示全部楼层
很不错,很工整的模块化编程。
还手工画图把模块接法都画了出来。很好!
赞一个!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-3 09:31:18 | 显示全部楼层
小弟不才,都是參版上的先進的作品去修改的.
謝謝
回复 支持 反对

使用道具 举报

发表于 2017-2-4 01:03:05 | 显示全部楼层
厉害了我的哥
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-4 09:37:04 | 显示全部楼层
不敢當,小弟只是整理及修改先進的作品,
對於寫程序完全不懂~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 12:32 , Processed in 0.054055 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表