ThermoClock: En OpenSource Arduino UNO OLED klocka som mäter även temperatur (4 / 5 steg)

Steg 4: Kod & bibliotek

I det här steget kommer jag visa dig viktigaste kod som du kan kopiera eller ladda ner den som full .ino-fil som du kan öppna med Arduino IDE. Filen heter ThermoClock_v2.6.16. det är i BETA-test så jag vill ha dina förslag på hur och vad ska jag ändra för att göra det bättre.

Nu ta en titt på den.

< br >< p > / *** bibliotek *** / < br > #include < U8glib.h > / / OLED
#include < Wire.h > / / I2C
#include < Time.h > / / tid Manipulation
#include < DS1307RTC.h > / / DS1307 RTC
/*************VARIABLES**********************/
char timebuf [10]. Tid
char datebuf [10]. Datum
int year2digit; 2 siffrigt år
int year4digit; 4-siffriga år
int tmp102Address = 0x48; < /p >< p > const int SwitchTime = 10000; byta tid på millis
/********************************************/
U8GLIB_SH1106_128X64 u8g (13, 11, 10, 9, 8); CLK = 13, DIN = 11, CS = 10, DC = 9, återställa = 8
//
//
//
/ *** DRA FUNKTION *** /
void draw(void) {< /p >< p > u8g.setFont(u8g_font_fub17r); / / Välj teckensnitt
U8G.setPrintPos (30, 28); Ange position
U8G.Print(timebuf); Visa tid
U8G.drawHLine(0,33,128); Rita linje
U8G.setPrintPos (12, 55); Ange position
U8G.Print(datebuf); Visa datum
} < /p >< p > void draw1(void)
{
flyta celsius = getTemperature();
flyta fahrenheit = (1,8 * celsius) + 32;

U8G.setFont(u8g_font_fub17r);
U8G.setPrintPos (15, 28);
U8G.Print(Celsius);
U8G.Print ("C").
U8G.setPrintPos (12, 55);
U8G.Print(Fahrenheit);
U8G.println "F".
} < /p >< p > float getTemperature() {
Wire.requestFrom(tmp102Address,2); < /p >< p > byte MSB = Wire.read();
byte LSB = Wire.read(); < /p >< p > //it's en 12 bit int, med två komplimang för negativa
int TemperatureSum = ((MSB << 8) | LSB) >> 4. < /p >< p > flyta celsius = TemperatureSum * 0,0625;

om (celsius > 180)
{
Celsius = (celsius - 256); För negativa temperaturer
}
annat
{
Celsius;
}
returnera celsius;
} < /p >< p > void setup(void) {
}
void loop(void) {< /p >< p > tmElements_t tm;
om (RTC.read(tm))
{
year2digit = tm. År - 30; 2 siffrigt år variabel
year4digit = tm. År + 1970; 4-siffriga år variabel < /p >< p > sprintf (timebuf, "% 02d: % 02d", tm. Timme, tm. Minut, tm. Andra). formatet tid
sprintf (datebuf, "% 02d/%02d/%02d",tm. Dag, tm. Månad, year2digit); formatet datum
/ *** / < /p >< p > u8g.firstPage(); Lägga in information på OLED
göra {
draw();
} medan (u8g.nextPage());
Delay(SwitchTime); < /p >< p > u8g.firstPage(); Lägga in information på OLED
göra {
draw1();
} medan (u8g.nextPage());
}
Delay(SwitchTime); Dröjsmål
} < /p >

Om du inte gillar det aktuella teckensnittet kan du ändra det genom att redigera koden. Du kan hitta alla stöds typsnitt här.

Biblioteken behöver du:

DS1307RTC, u8glib och tid, Hämta biblioteken och sedan packa upp dem på /Program Files(x86)/Arduino/arkiv (standard).

Se Steg
Relaterade Ämnen

Arduino UNO som AtMega328P programmerare

Efter att ha fått min första Arduino UNO, insåg jag snart att det är opraktiskt att använda en UNO för varje projekt. Som med mikrochip familjen av MCU, jag ville ha ett enkelt sätt att programmet fristående kretsar och chips.Söka på internet, var de...

Burning skiss till Atmega328P-PU på en skärbräda med Arduino Uno som programmerare

Det finns redan flera instructables på hur man bränner Arduino skiss till Atmega328P-PU på en skärbräda med olika USB - UART moduler. Men som de flesta modulerna är tillverkade i Kina, de är dåligt dokumenterad, felaktigt märkta, underligt utformad,...

Arduino UNO - programmering Atiny85

Vi kan berätta att Arduino är ganska stora i storlek och inte så mycket portabel. När du skala ner designa bärbara tech en Arduino UNO det är ganska stor, faktiskt även atmega328 är ganska stor i vissa fall en enkel lösning vore att använda en ATtiny...

Allt i en Prototyping pläterar för Arduino Uno

Rev3ProtoPack är en Arduino Uno breadboarding platta som gör att du kan prototyp kretsar vart du än går. Den har ett 9 volts batteri innehavaren, Arduino Uno antistatisk stötfångare ärende och en halv storlek bakbord kortplats, så du har alla kompone...

Multicolor Knight Rider med RGB LED-PL9823 + Arduino UNO

Om du vet den berömda lysdioder WS1012 ignorera du inte denna tutorial.PL9823 den billigaste ledde som använder samma protokoll av WS1012 ledde. Du kan använda detta ledde för göra en ledstrip eller också en ledde matrisen. PIX (http://www.0lab.it/po...

Hur man gör en elektroniskt lås med en Arduino UNO

Detta är ett ganska lätt projekt. Du behöver inte att löda. Än den Arduino UNO, alla material som är lätta att hitta och är inte så dyrt. Detta projekt det är ett roligt sätt att låsa sovrumsdörren och är helt anpassningsbara. Jag har inkluderat kode...

Göra en brandvarnare i minuter med Samsung SAMIIO, Arduino UNO och Raspberry Pi

Låt oss bygga en IoT enhet som skickar flamma sensordata att SAMI med SAMERNAS WebSockets. IoT enheten består av en off-the-shelf sensor, Arduino UNO och Raspberry Pi.I detta genomförande används en enkel uppenbart för att snabbt skapa en ny enhetsty...

Arduino Uno Tutorial #1 - grundläggande blink program

Hej alla!Jag är glad att publicera min första instructable!Denna idé som kommer till mig när jag hade kamp att få min Arduino Uno arbetar, så som jag hade vissa svårigheter jag kommer att göra några förklaringar till al noobies runt här som till exem...

Experimentell plattform för Arduino UNO R3 - hur man förbereder det för användning

Detta Instructable beskriver hur du konfigurerar en akryl experimentell plattform för en Arduino UNO. Denna plattform som möjliggör montering av en Arduino UNO eller klon och en halv storlek bröd styrelse är användbar för en mängd olika experiment, s...

Ansluta Arduino Uno till Crystalfontz 16 x 2 OLED med bara 4 trådar!

Dessa moduler är ganska trevligt. De är i samma storlek som våra CFAH1602C serien 16 x 2 tecken LCD-moduler, och tunnare som en bonus. Den OLED kontrasten är fantastiska, och de har en skarp blick som är svårslagen. En annan trevlig sak är att de har...

Hårddisk Clock (HDD klocka med Arduino Uno)

Detta är ett roligt projekt som kan göras enkelt och också billigt. I detta instructable vi kommer att förklara steg för steg hur man gör denna vackra POV klocka.Använda materialet:Arduino Uno,Tiny RTC modul,ULN 2003,IR diod och IR transistor (använd...

Den första användningen av 0,96" I2C OLED uppvisning med Arduino UNO

Idag, ska jag visa dig hur du använder 0,96" I2C OLED uppvisning med Arduino UNO styrelse. Det finns många olika typer av OLED-displayer. Jag har fått 4-nålas OLED uppvisning med mig. Här visas kan vara med SPI stift i stället för I2C. Dessa versione...

Thermohygrometer med klocka och LCD-display på Arduino UNO

Dessa 7 steg kommer att driva dig genom den "konstruktionen" av en termo-hygrometer med klocka på Arduino UNO.Data och tid, luftfuktighet och temperatur visas på en LCD display 16 x 2. Om du har köpt en LCD-display och vill veta hur man korrekt...

Göra arduino uno fungerar som leonardo

Först och främst vill jag göra klart det är inte som någon annan omvandla din uno till en enda HID-enhet med en tid skiss uploard, du kan ladda upp skisser sida vid sida med hidDET ÄR RÄTT! du läser vad du läser inga nackdelar med att något ladda upp...

Med en Arduino Uno R3 som en spelenhet

2016 uppdatera: Jag kommer att inte längre ge stöd i kommentarerna. Detta är en föråldrad och föråldrade metod som har mycket liten anledning att användas längre. Bara hålla den upp för informationssyfte.Uno stöder naturligtvis inte Inbyggt tangentbo...

Ansluta till Blynk med ESP8266 som Arduino Uno wifi sköld (endast Mac)

Detta är en handledning för att visa dig hur du ansluter till Blynk med hjälp av en ESP8266 - 01 som en Arduino Uno wifi sköld. Denna handledning är mycket detaljerad att hjälpa de som är väldigt ny på det här.-Maskinvara som behövs:Arduino UnoHane t...

Burning Bootloader på ATMega328 med Arduino UNO som ISP

uppdatering: denna handledning kommer att arbeta på Arduino IDE 1.0.1, den senaste 1.0.5 gör vissa förändringar på ISP skissen så jag inte är säker på om det kommer att fungera (jag bara köpte 2 ATMega328 och brände både på 1.0.1).Vänligen använd 1.0...

Med hjälp av Arduino UNO som 3-kanals högupplöst DACs

I denna ansökan ger vi en demo om hur man bygger en hög precision strömförsörjning med en DAC-3000 och en hög precision hänvisningen källa REF4096.Step1:List av MaterialeBay store adress:BUONO UNO R3REF-4096 + DAC-3000UM-UNO (Unsoldered) eller UM-UNO...

Arduino VFD Display klocka handledning - en Guide till VFD displayer

... + Lite om VFDsMinns du (fortfarande) visning av din gamla CD-spelare, HiFi system eller bil radio? Har du någonsin märkt displayerna används på din lokala mataffär som visar du skannade objektet och priset för det?Dessa skärmar har en karakterist...