Stap 7: De code...
/*
Thermometer op basis van adagia DS600u + chip + RTC
*/
#include "U8glib.h"
#include < math.h >
#include < Wire.h >
#include < DS1307.h >
int rtc [7];
zweven levering = 4.91; Hier moet de gemeten voedingsspanning voor de arduino board ingevoerd
Lees de uitgangsspanning van de sensor
char uur [2];
char minuten [2];
char seconden [2];
char dagen [2];
char maanden [2];
char jaar [4];
U8GLIB_ST7920_128X64_4X u8g (8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); 8 bit Com: D0... D7: 8,9,10,11,4,5,6,7 nl = 18, di = 17, rw = 16
ongeldig u8g_prepare(void) {}
u8g.setFont(u8g_font_6x10);
u8g.setFontRefHeightExtendedText();
u8g.setDefaultForegroundColor();
u8g.setFontPosTop();
}
ongeldig setup(void) {}
Serial.begin(9600);
spiegelen scherm, indien nodig
u8g.setRot180();
kleur standaardwaarde toewijzen
Als (u8g.getMode() == U8G_MODE_R3G3B2)
u8g.setColorIndex(255); wit
else if (u8g.getMode() == U8G_MODE_GRAY2BIT)
u8g.setColorIndex(3); Max intensiteit
else if (u8g.getMode() == U8G_MODE_BW)
u8g.setColorIndex(1); pixel op
u8g.setContrast(0x30);
pinMode (13, OUTPUT);
digitalWrite (13, hoge);
u8g_prepare();
}
ongeldig draw(void) {}
u8g.drawFrame(0,0,127,63);
u8g.drawFrame(13,7,103,21);
u8g.drawBox(15,9,99,17);
RTC.get(rtc,true);
u8g.setColorIndex(0);
dtostrf(RTC[2],2,0,hours);
Als (rtc [2] < 10)
{
u8g.drawStr(26,14,"0");
}
u8g.drawStr(26,14,hours);
dtostrf(RTC[1],2,0,minutes);
u8g.drawStr(45,14,":");
Als (rtc [1] < 10)
{
u8g.drawStr(58,14,"0");
}
u8g.drawStr(58,14,minutes);
dtostrf(RTC[0],2,0,seconds);
u8g.drawStr(78,14,":");
Als (rtc [0] < 10)
{
u8g.drawStr(91,14,"0");
}
u8g.drawStr(91,14,seconds);
u8g.setColorIndex(1);
schakelaar (rtc [3])
{
geval 1: u8g.drawStr (4,33,"zondag"); breken;
geval 2: u8g.drawStr (4,33,"maandag"); breken;
Case 3: u8g.drawStr (4,33,"dinsdag"); breken;
geval 4: u8g.drawStr(4,33,"Wednesday"); breken;
geval 5: u8g.drawStr (4,33, "Donderdag"); breken;
kast 6: u8g.drawStr (4,33,"vrijdag"); breken;
geval 7: u8g.drawStr (4,33, "Zaterdag"); breken;
}
dtostrf(RTC[4],2,0,Days);
Als (rtc [4] < 10)
{
u8g.drawStr(64,33,"0");
}
u8g.drawStr(64,33,Days);
u8g.drawStr(75,33,".");
dtostrf(RTC[5],2,0,months);
Als (rtc [5] < 10)
{
u8g.drawStr(80,33,"0");
}
u8g.drawStr(80,33,months);
u8g.drawStr(90,33,".");
dtostrf(RTC[6],4,0,years);
u8g.drawStr(96,33,years);
int lezing = analogRead(0);
zweven v_out = (lezen * leveren) / 1.024;
de temperatuur op het LCD-scherm weergeven
zweven temperatuur = (v_out - 509) / 6.45;
char temp [5];
dtostrf(Temperature,5,1,temp);
u8g.drawStr(4,48,"Temperature:");
u8g.drawStr(76,48,temp);
u8g.drawStr(108,48,"\260C");
}
ongeldig loop(void) {}
Foto lus
u8g.firstPage();
{}
draw();
} terwijl (u8g.nextPage());
de afbeelding na enige vertraging opnieuw opbouwen
delay(1000);
}
Als u vereist deze code de netwerkbibliotheek DS1307. Ik heb deze bibliotheek om u te helpen met de verwarring veroorzaakt door de verschillende DS1307 bibliotheken beschikbaar bijgevoegd.
Dit lijkt het einde van het project:-).