galaxy 发表于 2017-1-31 22:34:41

NANO 的大雜燴

本帖最后由 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);      
    }

galaxy 发表于 2017-1-31 22:44:41

小弟不才,來極客多年沒什麼作品,
一點小把戲,希望有所供獻

darkorigin 发表于 2017-2-3 00:19:28

很不错,很工整的模块化编程。
还手工画图把模块接法都画了出来。很好!
赞一个!

galaxy 发表于 2017-2-3 09:31:18

小弟不才,都是參版上的先進的作品去修改的.
謝謝

cao57508 发表于 2017-2-4 01:03:05

厉害了我的哥

galaxy 发表于 2017-2-4 09:37:04

不敢當,小弟只是整理及修改先進的作品,
對於寫程序完全不懂~
页: [1]
查看完整版本: NANO 的大雜燴