Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //TweetBox
- //Adam Robbins 2011
- //bobbinz.co.uk
- #include <WProgram.h>
- #include <Wire.h>
- #include <MAX7456.h>
- #include <DS1307.h>
- MAX7456 osd;
- #define DEGREE 127 // degree symbol
- int ledPin = 8;
- int los = 7;
- void setup()
- {
- pinMode(ledPin, OUTPUT);
- digitalWrite(ledPin, HIGH);
- Serial.begin(4800);
- char onebuffer[60];
- char twobuffer[60];
- char threebuffer[60];
- char fourbuffer[60];
- char fivebuffer[60];
- char sixbuffer[60];
- osd.begin();
- osd.clear();
- (void) sprintf(onebuffer,"%c%c",0x88,0x89);
- (void) sprintf(twobuffer,"%c%c%c%c%c%c%c%c%c%c",0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93);
- (void) sprintf(threebuffer,"%c%c%c%c%c%c%c%c",0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B);
- (void) sprintf(fourbuffer,"%c%c%c%c%c%c",0xA0,0xA1,0xA2,0xA3,0xA4,0xA5);
- (void) sprintf(fivebuffer,"%c%c%c%c",0xAC,0xAD,0xAE,0xAF);
- (void) sprintf(sixbuffer,"%c%c%c%c",0xB6,0xB7,0xB8,0xB9);
- osd.write_to_screen("TweetBox",11,2);
- osd.write_to_screen(onebuffer,18,4);
- osd.write_to_screen(twobuffer,10,5);
- osd.write_to_screen(threebuffer,10,6);
- osd.write_to_screen(fourbuffer,12,7);
- osd.write_to_screen(fivebuffer,14,8);
- osd.write_to_screen(sixbuffer,14,9);
- osd.write_to_screen("Adam Robbins 2011",6,12);
- osd.write_to_screen("bobbinz.co.uk",8,13,0,1);
- delay(7000);
- digitalWrite(ledPin, LOW);
- }
- void loop()
- {
- pinMode(los, INPUT);
- pinMode(ledPin, OUTPUT);
- digitalWrite(los, HIGH);
- int s0;
- int lost;
- int hour;
- char cbuffer[60];
- char fbuffer[60];
- char tbuffer[60];
- char dbuffer[60];
- if(Serial.available())
- {
- digitalWrite(ledPin, HIGH);
- delay(100);
- s0 = Serial.read();
- if (s0 == 255)
- {
- int s1, s2;
- s1 = Serial.read();
- s2 = Serial.read();
- osd.clear();
- if (s1 == 254) //humidalert
- {
- osd.clear();
- osd.write_to_screen("High Humidity!",12,1);
- }
- else
- {
- int tempMsb, tempLsb;
- float convert;
- int cl, ch;
- tempMsb = (s1 << 4) + (s2 >> 4); // 12 bit value, after decimal point in lower 4 bits
- tempLsb = s2 & 0x0F;
- if (s1 > 7) // 8 bit negative, convert to 16 bit negative
- {
- tempMsb &= 0xFF; // mask shifted negative bits
- tempMsb = tempMsb - 256;
- (void) sprintf(cbuffer,"%3d%cC",tempMsb,DEGREE);
- (void) sprintf(fbuffer,"It's Cold!");
- }
- else
- {
- convert = (tempMsb + (tempLsb/100)) * 1.8 + 32;
- ch = int(convert);
- cl = abs((convert) - ch) * 100;
- (void) sprintf(cbuffer,"%3d.%02d%cC",tempMsb,tempLsb,DEGREE);
- (void) sprintf(fbuffer,"%3d.%02d%cF",ch,cl,DEGREE);
- }
- }
- osd.write_to_screen(cbuffer,1,1);
- osd.write_to_screen(fbuffer,1,2);
- digitalWrite(ledPin, LOW);
- Serial.flush();
- }
- }
- else
- {
- osd.clear();
- osd.write_to_screen("No Data Connection",6,1,0,0);
- }
- lost = digitalRead(los);
- if (lost == 1)
- {
- osd.write_to_screen("No Video Input",2,14);
- }
- (void) sprintf(tbuffer,"%02i %02i",RTC.get(DS1307_HR,true),RTC.get(DS1307_MIN,false));
- osd.write_to_screen(tbuffer,23,13);
- (void) sprintf(dbuffer,"%02i/%02i/%04i",RTC.get(DS1307_DATE,false),RTC.get(DS1307_MTH,false),RTC.get(DS1307_YR,false));
- osd.write_to_screen(dbuffer,18,14);
- delay(1000);
- hour = RTC.get(DS1307_HR,false);
- osd.write_to_screen(":",25,13);
- delay(1000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement