Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Wire.h"
- #define DS3231_I2C_ADDRESS 0x68
- #define LATCH_DIO 4
- #define CLK_DIO 7
- #define DATA_DIO 8
- const byte kropka = B01111111;
- const byte SEGMENT_MAP[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0X80,0X90};
- const byte SEGMENT_SELECT[] = {0xF1,0xF2,0xF4,0xF8};
- void setup()
- {
- Wire.begin();
- Serial.begin(9600);
- pinMode(LATCH_DIO,OUTPUT);
- pinMode(CLK_DIO,OUTPUT);
- pinMode(DATA_DIO,OUTPUT);
- }
- void loop()
- {
- //Serial.println(displayTemperature());
- WriteNumber3((displayTemperatureBin()>>6)*25);
- WriteNumber2(displayTemperature());
- writeLeterToSegment(B00000010,kropka);
- //WriteNumber(displayTemperatureBin()>>6);
- }
- byte displayTemperature()
- {
- byte data = 0xFF;
- Wire.beginTransmission(0x68);
- Wire.write(0x11); // the integer portion
- Wire.endTransmission();
- Wire.requestFrom(0x68,1 );
- if (Wire.available()) { data = Wire.read();}
- return data;
- }
- byte displayTemperatureBin()
- {
- byte data = 0xFF;
- Wire.beginTransmission(0x68);
- Wire.write(0x12); // the integer portion
- Wire.endTransmission();
- Wire.requestFrom(0x68,1 );
- if (Wire.available()) { data = Wire.read();}
- return data;
- }
- void WriteNumber(int Number)
- {
- WriteNumberToSegment(0 , Number / 1000);
- WriteNumberToSegment(1 , (Number / 100) % 10);
- WriteNumberToSegment(2 , (Number / 10) % 10);
- WriteNumberToSegment(3 , Number % 10);
- }
- void WriteNumber2(int Number)
- {
- WriteNumberToSegment(0 , (Number / 10) % 10);
- WriteNumberToSegment(1 , Number % 10);
- }
- void WriteNumber3(int Number)
- {
- WriteNumberToSegment(2 , (Number / 10) % 10);
- WriteNumberToSegment(3 , Number % 10);
- }
- void WriteNumberToSegment(byte Segment, byte Value)
- {
- digitalWrite(LATCH_DIO,LOW);
- shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_MAP[Value]);
- shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_SELECT[Segment] );
- digitalWrite(LATCH_DIO,HIGH);
- }
- void writeLeterToSegment(byte Segment, byte Value)
- {
- digitalWrite(LATCH_DIO,LOW);
- shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, Value);
- shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, Segment );
- digitalWrite(LATCH_DIO,HIGH);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement