原帖,感謝
https://www.arduino.cn/thread-83370-1-1.html
**基于Arduino Nano的多功能桌面感應垃圾桶**
隨著大學生活不斷往前邁進,宿舍桌面上的雜物越來越多,于是乎某天終于翻開了某寶,從網上淘來了一個5元錢的普通塑料桌面垃圾桶。于是乎,又經過一番折騰,一款超級拉風的多功能桌面垃圾桶就橫空出世了,不多說,先發成品圖為敬。

(垃圾桶由超聲波感應自動開啟,延時后關閉)

別看這個垃圾桶看起來非常的小巧和簡陋,但可謂是麻雀雖小,五臟俱全,當你伸手放在桶蓋前時,桶蓋會自動感應打開,而這種識別方式則是雙通道超聲波傳感器的功勞,這一傳感器聽起來非常的高大上是不是,事實上價格也是非常的便宜,一般不會超過10元。
垃圾桶桶蓋上有兩個小按鍵,右側按鍵是用來選擇功能模式,而左側按鍵則用來進行確認,簡潔而實用,垃圾桶內內置蜂鳴器和RTC時鐘模塊,可以進行精準定時和報時。LM35提供的溫度數據使得垃圾桶搖身一變成為了溫度播報員。桶蓋上USB接口也大大拓展了使用者的想象空間,它可以用來充電,用來照明,用來驅動小風扇等等。當夜幕降臨,桶內內置的LED小夜燈可以將垃圾桶搖身一變成為可愛的小精靈,在寂靜的黑夜中發出溫暖而和藹的光芒。

看了這些,你想擁有這樣一款智能又可愛的桌面垃圾桶嗎?別急,接下來我就要向你們分享這個智能垃圾桶的所有奧秘。
首先是硬件方面,制作智能垃圾桶,我們需要哪些原材料呢?
1.普通桌面垃圾桶一個,某寶上價格5到8元不等

2.小型舵機一個引腳的棕、紅、橙線以此對應(GND,VCC,信號線)

LM35溫度傳感器:

3\. 0.96存OLED顯示屏,價格一般在10到15元之間

4.三種0805型號貼片LED燈(白,藍,綠),顏色可以根據個人喜好而定哈

5.輕觸按鍵兩個

6.usb接口模塊

7.DC電源接口模塊及電源線


8.RTC時鐘模塊

9超聲波模塊一個

10.Arduino NANO單片機最小系統板一塊

11.自制PCB線路板一塊(由于線路較少,布線時就沒有覆銅了,不想制板的朋友也可以嘗試用洞洞板連線)


這樣一來我們的硬件準備階段就告一段落啦,接下來就要進入動手制作環節
步驟一:剪去桶蓋上的犄角,使得桶蓋能夠進行更大扭矩的轉動,防止因為垃圾桶蓋轉動不足導致開口過小,投不進去垃圾

步驟二:在桶蓋上挖出大小合適的通孔,使得超聲波模塊的“小眼睛”、OLED、USB接口、DC電源接口和按鍵能夠嵌入桶蓋,挖孔工具可以是鉆機,電烙鐵或是激光切割


步驟三:按照所給PCB線路圖進行連線,

步驟四:曲軸連桿式傳動結構的制作,選用硬質桿與舵機臂組成連桿傳動機制,控制桶蓋的開合,這樣的硬質桿可以由身邊許多的東西替代,比如排針,牙簽,甚至熱熔膠棒


步驟五:利用Arduino IDE和usb串口給Arduino下載程序。Arduino IDE的配置要選擇為Arduino NANO MEGA328P,并選擇好相應的串口,這樣才能成功的將程序燒錄進單片機

當程序成功載入ArduinoNANO上時,你就將擁有這樣一款超級拉風的多功能桌面垃圾桶了
還在等什么,趕緊動手試一試這個簡單而炫酷的DIY吧


當然,身為設計者的我就當仁不讓的將OLED封面設計成我最喜歡的足球隊的隊徽和“Designed by DHGS”啦,讀者朋友們也可以發揮自己的想象,設計出專屬于自己的獨一無二的OLED界面哦。

以下是Arduino代碼:
~~~
【
#include <Servo.h>
#include <SPI.h>
#include <Wire.h>
#include <DS1302.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 10
#define PIN_SERVO 11
Servo myservo;
Adafruit_SSD1306 display(OLED_RESET);
#define LOGO16_GLCD_HEIGHT 8 //定義顯示高度
#define LOGO16_GLCD_WIDTH 8 //定義顯示寬度
const int trig=2;
const int echo=3;
float distance,distance1,distance2,distance3,distance4,distance5;
DS1302 rtc(13, 7, 8); // RST, DAT, CLK
/*void getdatetime()
{
Serial.println(rtc.getDateStr(FORMAT_LONG, FORMAT_LITTLEENDIAN, '/'));
Serial.print(rtc.getDOWStr());
Serial.print(" ");
Serial.println(rtc.getTimeStr());
}*/
static const unsigned char PROGMEM str_1[] =
{
}; //photoLOGO KECHUANG
static const unsigned char PROGMEM str_2[] =
{
};//xiaohui
static const unsigned char PROGMEM str_3[] =
{
};//LOCK
static const unsigned char PROGMEM str_4[] =
{
};//GREEN LIGHT
static const unsigned char PROGMEM str_5[] =
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,
0x00,0x1C,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x06,
0x00,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,
0x00,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,
0x00,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,
0x00,0x18,0x1C,0x0F,0x03,0xEC,0xF1,0x80,0x00,0x00,0x41,0xF9,0xF9,0xFB,0xF7,0x1E,
0x00,0x18,0x1C,0x3F,0x8F,0xFD,0xE1,0x80,0x00,0x00,0x47,0xFB,0xF9,0xFB,0xF7,0x9E,
0x00,0x18,0x38,0x7F,0xDF,0xFF,0xC1,0x80,0x00,0x00,0x4F,0x9B,0xBB,0x87,0x0F,0xBE,
0x00,0x18,0x38,0xF3,0xFC,0x1F,0x81,0x80,0x00,0x00,0x4E,0x03,0xFB,0xF7,0xEF,0xBA,
0x00,0x18,0x38,0xE1,0xF8,0x3F,0x01,0x80,0x00,0x00,0x5F,0xF7,0xF3,0xF7,0xEF,0xFA,
0x00,0x18,0x71,0xE3,0xF0,0x3E,0x01,0x80,0x00,0x00,0x5D,0xF7,0xE7,0xEF,0xDD,0xFA,
0x00,0x18,0x71,0xC3,0xF0,0x3F,0x01,0x80,0x00,0x00,0x5C,0x77,0xE7,0x0E,0x1D,0xF2,
0x00,0x18,0x71,0xE7,0x79,0xF7,0x01,0x80,0x00,0x00,0x5F,0xFE,0xF7,0xEF,0xFD,0xF2,
0x00,0x18,0xFF,0xFF,0x7F,0x77,0x81,0x80,0x00,0x00,0x5F,0xEE,0x7F,0xFF,0xF8,0xE2,
0x00,0x18,0xFC,0xFE,0x3F,0x77,0x81,0x80,0x00,0x00,0x4F,0xCE,0x7F,0xFF,0xB8,0xE2,
0x00,0x18,0x00,0x30,0x0C,0x00,0x01,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,
0x00,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,
0x00,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x06,
0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,
0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x03,
0x03,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x01,
0x03,0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x01,
0x03,0x98,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x01,
0x03,0x98,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x01,
0x7F,0xD8,0x0F,0xCE,0x1C,0xEF,0xC0,0x80,0x00,0x00,0x47,0x39,0xDC,0x67,0xFF,0xFD,
0x7F,0xF8,0x1F,0xCE,0x38,0xEF,0xC0,0x80,0x00,0x00,0x47,0x79,0xF8,0xEF,0xFF,0xFD,
0x7F,0xF8,0x1D,0xDC,0x39,0xFF,0xC0,0x80,0x00,0x00,0x47,0x7B,0xF8,0xEE,0x38,0xE1,
0x7F,0xF8,0x1D,0xDC,0x39,0xDC,0x00,0x80,0x00,0x00,0x47,0xFB,0xB9,0xEE,0x79,0xC1,
0x7F,0xF8,0x3F,0x9C,0x71,0xDF,0x80,0x80,0x00,0x00,0x46,0xFF,0x7F,0xDC,0x71,0xF9,
0x7F,0xF8,0x3F,0xB8,0x73,0xFF,0x00,0x80,0x00,0x00,0x4F,0xFF,0x7F,0xDC,0x71,0xF9,
0x7F,0xF8,0x3B,0xB8,0x73,0xB8,0x00,0x80,0x00,0x00,0x4F,0xBE,0x73,0xDC,0xE3,0x81,
0x7F,0xF8,0x77,0xB8,0x77,0xB8,0x00,0x80,0x00,0x00,0x4F,0xBE,0xE3,0xB8,0xE3,0xF1,
0x7F,0xD8,0x7F,0xFF,0x7F,0x7F,0x00,0x80,0x00,0x00,0x4F,0x3C,0xE3,0xB8,0xE7,0xF1,
0x03,0x98,0x7E,0x7F,0x7E,0x7F,0x00,0x80,0x00,0x00,0x4F,0x38,0xE3,0xB9,0xC7,0xF1,
0x03,0x98,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x01,
0x03,0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x01,
0x02,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x01,
0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};//BLUE LIGHT
static const unsigned char PROGMEM str_6[] =
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,
0x00,0x1C,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x06,
0x00,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,
0x00,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,
0x00,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,
0x00,0x18,0x1C,0x0F,0x03,0xEC,0xF1,0x80,0x00,0x00,0x41,0xF9,0xF9,0xFB,0xF7,0x1E,
0x00,0x18,0x1C,0x3F,0x8F,0xFD,0xE1,0x80,0x00,0x00,0x47,0xFB,0xF9,0xFB,0xF7,0x9E,
0x00,0x18,0x38,0x7F,0xDF,0xFF,0xC1,0x80,0x00,0x00,0x4F,0x9B,0xBB,0x87,0x0F,0xBE,
0x00,0x18,0x38,0xF3,0xFC,0x1F,0x81,0x80,0x00,0x00,0x4E,0x03,0xFB,0xF7,0xEF,0xBA,
0x00,0x18,0x38,0xE1,0xF8,0x3F,0x01,0x80,0x00,0x00,0x5F,0xF7,0xF3,0xF7,0xEF,0xFA,
0x00,0x18,0x71,0xE3,0xF0,0x3E,0x01,0x80,0x00,0x00,0x5D,0xF7,0xE7,0xEF,0xDD,0xFA,
0x00,0x18,0x71,0xC3,0xF0,0x3F,0x01,0x80,0x00,0x00,0x5C,0x77,0xE7,0x0E,0x1D,0xF2,
0x00,0x18,0x71,0xE7,0x79,0xF7,0x01,0x80,0x00,0x00,0x5F,0xFE,0xF7,0xEF,0xFD,0xF2,
0x00,0x18,0xFF,0xFF,0x7F,0x77,0x81,0x80,0x00,0x00,0x5F,0xEE,0x7F,0xFF,0xF8,0xE2,
0x00,0x18,0xFC,0xFE,0x3F,0x77,0x81,0x80,0x00,0x00,0x4F,0xCE,0x7F,0xFF,0xB8,0xE2,
0x00,0x18,0x00,0x30,0x0C,0x00,0x01,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,
0x00,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,
0x00,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x06,
0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,
0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x03,
0x00,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x01,
0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x18,0x40,0x00,0x00,0x00,0x00,0x01,
0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x1C,0x40,0x00,0x00,0x00,0x00,0x01,
0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x1C,0x40,0x00,0x00,0x00,0x00,0x01,
0x00,0x18,0x0F,0xCE,0x1C,0xEF,0xC0,0x80,0x03,0xFE,0x47,0x39,0xDC,0x67,0xFF,0xFD,
0x00,0x18,0x1F,0xCE,0x38,0xEF,0xC0,0x80,0x03,0xFF,0x47,0x79,0xF8,0xEF,0xFF,0xFD,
0x00,0x18,0x1D,0xDC,0x39,0xFF,0xC0,0x80,0x03,0xFF,0xC7,0x7B,0xF8,0xEE,0x38,0xE1,
0x00,0x18,0x1D,0xDC,0x39,0xDC,0x00,0x80,0x03,0xFF,0xC7,0xFB,0xB9,0xEE,0x79,0xC1,
0x00,0x18,0x3F,0x9C,0x71,0xDF,0x80,0x80,0x03,0xFF,0xC6,0xFF,0x7F,0xDC,0x71,0xF9,
0x00,0x18,0x3F,0xB8,0x73,0xFF,0x00,0x80,0x03,0xFF,0xCF,0xFF,0x7F,0xDC,0x71,0xF9,
0x00,0x18,0x3B,0xB8,0x73,0xB8,0x00,0x80,0x03,0xFF,0xCF,0xBE,0x73,0xDC,0xE3,0x81,
0x00,0x18,0x77,0xB8,0x77,0xB8,0x00,0x80,0x03,0xFF,0x4F,0xBE,0xE3,0xB8,0xE3,0xF1,
0x00,0x18,0x7F,0xFF,0x7F,0x7F,0x00,0x80,0x03,0xFE,0x4F,0x3C,0xE3,0xB8,0xE7,0xF1,
0x00,0x18,0x7E,0x7F,0x7E,0x7F,0x00,0x80,0x00,0x1E,0x4F,0x38,0xE3,0xB9,0xC7,0xF1,
0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x1C,0x40,0x00,0x00,0x00,0x00,0x01,
0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x18,0x40,0x00,0x00,0x00,0x00,0x01,
0x00,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x10,0x60,0x00,0x00,0x00,0x00,0x01,
0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};//WHITE LIGHT
static const unsigned char PROGMEM str_7[] =
{
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xE3,0xFF,0xFF,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xE7,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xF9,0xE7,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xF8,0xE7,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xF8,0x67,0xC2,0x3F,0x0F,0xE1,0x18,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x27,0x02,0x3C,0x07,0x01,0x10,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x06,0x02,0x38,0x02,0x00,0x20,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,
0x00,0x04,0x3C,0x78,0xE0,0x3E,0x02,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,
0x00,0x00,0x7C,0x71,0xE0,0x7E,0x06,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,
0x00,0x00,0xF8,0x71,0xC0,0x7C,0x1E,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x3F,0xFF,
0x00,0x00,0xF8,0xE1,0xC0,0xFC,0x0E,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x03,0xFF,
0x00,0x20,0xF8,0xE1,0x80,0x7C,0x0E,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x01,0xFF,
0xF8,0x60,0x00,0x10,0x08,0x00,0x86,0x7F,0xFF,0xFF,0xFE,0xFF,0xFF,0xC0,0x03,0xFF,
0xF8,0x60,0x00,0x10,0x1C,0x08,0x86,0x7F,0xFF,0xFF,0xFE,0xFF,0xFF,0xF0,0x0F,0xFF,
0xF8,0xE6,0x3F,0xFC,0x7E,0x1F,0xFE,0x7F,0xFF,0xFF,0xFE,0xFF,0xFF,0xF0,0x0F,0xFF,
0xFD,0xE7,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFC,0x7F,0xFF,0xF0,0x0F,0xFF,
0xFF,0xE7,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFC,0x7F,0xFF,0xF0,0x0F,0xFF,
0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFC,0x7F,0xFF,0xF0,0x0F,0xFF,
0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xF8,0x3F,0xFF,0xE3,0xC7,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x1F,0xFF,0xEF,0xF7,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x3F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x00,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x01,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x03,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x0F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x0F,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x0F,0xFF,0xF3,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xE0,0x0F,0xFF,0xF3,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xE0,0x0F,0xFF,0xE1,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xC0,0x07,0xFF,0xC0,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0x8F,0xFF,0xFF,0xC3,0x87,0xFF,0x00,0x3F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0x8F,0xFF,0xFF,0xC7,0xC7,0xFF,0x80,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFC,0x7F,0xFF,0x07,0xFF,0xFF,0xCF,0xE7,0xFF,0xC0,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFC,0x7F,0xC0,0x00,0x1F,0xFF,0xDF,0xF3,0xFF,0xC0,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xF8,0x3F,0xF0,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0x80,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xE0,0x0F,0xF8,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x9E,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0x80,0x03,0xFC,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xC0,0x07,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xE0,0x0F,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xE0,0x0F,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xC0,0x07,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xC7,0xC7,0xFC,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xDF,0xF7,0xFC,0x71,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xF9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
};//CLOCK
#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
void setup() {
Serial.begin(9600);
myservo.attach(PIN_SERVO);
pinMode(A2,INPUT_PULLUP);
pinMode(A3,INPUT_PULLUP);
pinMode(A6,INPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(12,OUTPUT);
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
// pinMode(10,OUTPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
myservo.write(50);
}
int m=0,m1=0,a,a1;
int ms=57;
float temp;
void loop() {
if(m1==0)
{
// digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(12,LOW);
}
if(digitalRead(A2)==0)
{
m++;delay(ms);
}
if(digitalRead(A3)==0)
{
m1++;delay(ms);
}
myservo.write(50);
if(m==0)
{
display.clearDisplay();
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
digitalWrite(12,HIGH);
}
while(m==0)
{//display.clearDisplay();
//display.drawBitmap(0, 0, str_2, 128, 64, 1);
static unsigned long sensortStamp = 0;
if(millis() - sensortStamp > 1500){
sensortStamp = millis();
// read the LM35 sensor value and convert to the degrees every 100ms.
int reading = analogRead(A6);
temp = reading *0.0048828125*100-8;
}
// digitalWrite(4,LOW);
if(temp>=29)
{
//digitalWrite(4,HIGH);
//delay(1000);
}
myservo.write(50);
if(distance<=7)
{
myservo.write(180);
delay(5000);
myservo.write(50);
delay(2000);
distance=100;
}
digitalWrite(trig,LOW);
delayMicroseconds(2);
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);
distance=pulseIn(echo,HIGH)/58.00;//B
display.setTextColor(WHITE,BLACK);//oled
display.setTextSize(2);
display.setCursor(16,22);
display.println(rtc.getTimeStr());
display.setTextColor(BLACK,WHITE);//oled
display.setCursor(16,42);
display.println(rtc.getDOWStr());
display.setTextColor(WHITE,BLACK);//oled
display.setTextSize(1);
display.setCursor(80,0);
display.println("T=");
display.setCursor(96,0);
display.println(temp);
display.setCursor(0,0);
display.println(rtc.getDateStr(FORMAT_LONG, FORMAT_LITTLEENDIAN, '/'));
display.display();
if(digitalRead(A2)==0)
{
m++;delay(ms);
}
if(digitalRead(A3)==0)
{
m1++;delay(ms);
}
}
if(distance<=7)
{
myservo.write(180);
delay(5000);
myservo.write(50);
delay(2000);
distance=100;
}
digitalWrite(trig,LOW);
delayMicroseconds(2);
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);
distance=pulseIn(echo,HIGH)/58.00;//B
if(m==1)
{
display.clearDisplay();
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(12,LOW);
display.drawBitmap(0, 0, str_1, 128, 64, 1);
display.display();
}
if(m==2)
{
display.clearDisplay();
display.drawBitmap(0, 0, str_3, 128, 64, 1);
display.display();
if(m1==1)
{
m=0;
m1=0;
}
}
if(m==3)
{
display.clearDisplay();
display.drawBitmap(0, 0, str_4, 128, 64, 1);
display.display();
if(m1==1)
{
digitalWrite(5,HIGH);
}
if(m1==2)
{
digitalWrite(5,LOW);
m1=0;
}
}
if(m==4)
{
display.clearDisplay();
display.drawBitmap(0, 0, str_5, 128, 64, 1);
display.display();
if(m1==1)
{
digitalWrite(6,HIGH);
}
if(m1==2)
{
digitalWrite(6,LOW);
m1=0;
}
}
if(m==5)
{
display.clearDisplay();
display.drawBitmap(0, 0, str_6, 128, 64, 1);
display.display();
if(m1==1)
{
digitalWrite(12,HIGH);
}
if(m1==2)
{
digitalWrite(12,LOW);
m1=0;
}
}
if(m==6)//clock
{if(m1!=1)
{
display.clearDisplay();
display.drawBitmap(0, 0, str_7, 128, 64, 1);
display.display();
}
int c=0,s=0,d1=0,d2=0,d3=0,d4=0,d5=0,d6=0,d7=0,d8=0;
while(m1==1)
{
display.clearDisplay();
delay(50);
if(digitalRead(A3)==0)
{
c++;delay(ms);
}
if(digitalRead(A2)==0)
{
s++;delay(ms);
}
//digitalWrite(4,HIGH);//beep
display.setTextColor(BLACK,WHITE);//oled
display.setTextSize(2);
display.setCursor(3,0);
display.println(" setclock ");
display.setTextColor(WHITE,BLACK);//oled
display.setTextSize(2);
display.setCursor(0,20);
display.println(d1);
display.setCursor(16,20);
display.println(d2);
display.setCursor(32,20);
display.println(":");
display.setCursor(48,20);
display.println(d3);
display.setCursor(64,20);
display.println(d4);
display.setCursor(80,20);
display.println(":");
display.setCursor(96,20);
display.println(d5);
display.setCursor(112,20);
display.println(d6);
display.display();
if(c==1)
{
m1=2;
}
}
if(m1==2)
{digitalWrite(4,LOW);
m1=0;
m=6;
}
}
if(m==7)
{
m=2;
delay(65);
}
}
】
~~~