Arduino рд╕реЗ I2C рддрдХ PCF8563 рд░рд┐рдпрд▓-рдЯрд╛рдЗрдо рдШрдбрд╝реА рдХреЗ рдорд┐рддреНрд░

рд╣рд╛рдп, рд╣реИрдмреНрд░ред рдореИрдВ I2C рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреАрд╕реАрдПрдл 8563 рдЪрд┐рдк рдкрд░ рдЖрд░рдЯреАрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдЖ рдерд╛ред рдЪреВрдВрдХрд┐ рдореБрдЭреЗ Arduino рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдирд╣реАрдВ рдорд┐рд▓рд╛, рдореБрдЭреЗ I2C рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдореБрдЭреЗ рдЕрдВрдЧреНрд░реЗрдЬреА рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдорд┐рд▓рд╛ред рдпрд╣ рд▓реЗрдЦ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рдЖрд░рдЯреАрд╕реА рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреБрднрд╡ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рд╣реИред



рддрд┐рдерд┐ рдФрд░ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ


рдкрд╣рд▓реА рдЪреАрдЬ рд╣рдо рдореИрдиреБрдЕрд▓ рдореЗрдВ рдЪрдврд╝рддреЗ рд╣реИрдВ ( рдпрд╣ рдпрд╣рд╛рдВ рд╣реИ ) рдФрд░ рд╡рд╣рд╛рдВ рд░рдЬрд┐рд╕реНрдЯрд░ рд╕рдВрдЧрдарди рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВред



рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ 02h рд╕реЗ 08h рддрдХ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрди рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдмрд╛рдЗрдирд░реА рджрд╢рдорд▓рд╡ рдкреНрд░рд╛рд░реВрдк (рдмреАрд╕реАрдбреА) рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реЗрдХрдВрдб, рдорд┐рдирдЯ рдЖрджрд┐ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдкрд╣рд▓реЗ рд╣рдо рдЕрдиреБрд╡рд╛рдж рдлрд╝рдВрдХреНрд╢рди (рджрд╢рдорд▓рд╡ рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдмреАрд╕реАрдбреА рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдХрдорд╛рдВрдб рд╡рд╛рдпрд░ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрддреЗ рд╣реИрдВред () рд╣рдо рдЙрдиреНрд╣реЗрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ 02h рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рдЬреЛ рдмреАрд╕реАрдбреА рд╕реЗ рджрд╢рдорд▓рд╡ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЙрд╕реА рд░рдЬрд┐рд╕реНрдЯрд░ 02 рдПрдЪ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд┐рдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрдЫ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ (рдкрддреНрд░ x рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд) рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрдврд╝рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрдзрд┐рднрд╛рд░ рдирд╣реАрдВ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо AND рдмрд┐рдЯ рдСрдкрд░реЗрд╢рди (рддрд╛рд░реНрдХрд┐рдХ "AND") рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдЙрди рдмрд┐рдЯреНрд╕ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░реЗрдЧрд╛ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╣реАрдиреЗ рдХреЗ рджрд┐рди (рджрд┐рди), рд╣рдореЗрдВ рдмрд┐рдЯреНрд╕ 0 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ 5 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдСрдкрд░реЗрд╢рди (dayOfMonth & B00111111) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо 6 рдФрд░ 7 рдмрд┐рдЯреНрд╕ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЕрдЫреВрддрд╛ рд░рд╣рддрд╛ рд╣реИред

рд╕реАрдзреЗ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдореЙрдирд┐рдЯрд░ рдкрд░ рд╕реВрдЪрдирд╛ рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рд╣реА рдХреЛрдб:

#include "Wire.h" #define PCF8563address 0x51 //     byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; String days[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; //     -    . byte bcdToDec(byte value) { return ((value / 16) * 10 + value % 16); } //   byte decToBcd(byte value){ return (value / 10 * 16 + value % 10); } //       PCF8563 void setPCF8563() { Wire.beginTransmission(PCF8563address); Wire.write(0x02); Wire.write(decToBcd(second)); Wire.write(decToBcd(minute)); Wire.write(decToBcd(hour)); Wire.write(decToBcd(dayOfMonth)); Wire.write(decToBcd(dayOfWeek)); Wire.write(decToBcd(month)); Wire.write(decToBcd(year)); Wire.endTransmission(); } //       PCF8563 void readPCF8563() { Wire.beginTransmission(PCF8563address); Wire.write(0x02); Wire.endTransmission(); Wire.requestFrom(PCF8563address, 7); second = bcdToDec(Wire.read() & B01111111); //      minute = bcdToDec(Wire.read() & B01111111); hour = bcdToDec(Wire.read() & B00111111); dayOfMonth = bcdToDec(Wire.read() & B00111111); dayOfWeek = bcdToDec(Wire.read() & B00000111); month = bcdToDec(Wire.read() & B00011111); year = bcdToDec(Wire.read()); } void setup() { Wire.begin(); Serial.begin(9600); //     second = 0; minute = 28; hour = 9; dayOfWeek = 2; dayOfMonth = 13; month = 8; year = 13; setPCF8563(); } void loop() { readPCF8563(); Serial.print(days[dayOfWeek]); Serial.print(" "); Serial.print(dayOfMonth, DEC); Serial.print("/"); Serial.print(month, DEC); Serial.print("/20"); Serial.print(year, DEC); Serial.print(" - "); Serial.print(hour, DEC); Serial.print(":"); if (minute < 10) { Serial.print("0"); } Serial.print(minute, DEC); Serial.print(":"); if (second < 10) { Serial.print("0"); } Serial.println(second, DEC); delay(1000); } 


рдЕрд▓рд╛рд░реНрдо рд╕реЗрдЯ рдХрд░рдирд╛


рдкреАрд╕реАрдПрдл 8563 рдореЗрдВ, рдЖрдк рдЕрд▓рд╛рд░реНрдо рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдордп, рд╕рдкреНрддрд╛рд╣ рдпрд╛ рдорд╣реАрдиреЗ рдХреЗ рджрд┐рди рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрд▓рд╛рд░реНрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрд╛рдЗрдирд░реА рджрд╢рдорд▓рд╡ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ 09h рд╕реЗ 0 рдмрдЬреЗ рддрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВред



рдХреБрдЫ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рд╛рд░реНрдо рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд┐рдирдЯ рдФрд░ рдШрдВрдЯреЗ, рдЖрдкрдХреЛ 7 рд╡реЗрдВ рдмрд┐рдЯ (рд╕рдХреНрд╖рдо рдмрд┐рдЯ) рдХреЛ рдПрдХ рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рддрд╛рд░реНрдХрд┐рдХ рдСрдкрд░реЗрд╢рди OR (OR) рдФрд░ рдорд╛рди B10000000 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдЕрд▓рд╛рд░реНрдо рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдВрдЪ 2 рддрд░реАрдХреЛрдВ рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ: рдХрдареЛрд░ рдФрд░ рдирд░рдоред рдирд░рдо рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рд░рдЬрд┐рд╕реНрдЯрд░ 0x01 рдХреЗ 3 рдмрд┐рдЯ (рдПрдПрдл рдЕрд▓рд╛рд░реНрдо рдлреНрд▓реИрдЧ рдмрд┐рдЯ) рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕реЗ 0 рдХреЗ рдорд╛рди рдкрд░ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛, рдЕрд▓рд╛рд░реНрдо рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред



рдХрдард┐рди рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╣реА рд░рдЬрд┐рд╕реНрдЯрд░ (рдПрдЖрдИрдИ) рдореЗрдВ 1 рдмрд┐рдЯ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЬрдм рдЕрд▓рд╛рд░реНрдо рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмреЛрд░реНрдб рдкрд░ INT (рд╡реНрдпрд╡рдзрд╛рди) рдкрд┐рди рдПрдХ рдкреНрд░рд╡рд╛рд╣рдХреАрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдУрдкрди-рдбреНрд░реЗрди рдЖрдЙрдЯрдкреБрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдПрдХ рдЕрд╡рд░реЛрдзрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдПрд▓рдИрдбреА рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдорд┐рд▓рд╛рдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рд╕рднреА 5 рд╡реЛрд▓реНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдм рд╕реНрдХреЗрдЪ рд╣реА:

рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ
 #include "Wire.h" #define PCF8563address 0x51 byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; byte alarmMinute, alarmHour, alarmDay, alarmDayOfWeek; String days[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; byte bcdToDec(byte value) { return ((value / 16) * 10 + value % 16); } byte decToBcd(byte value){ return (value / 10 * 16 + value % 10); } //        void setPCF8563alarm() { byte am, ah, ad, adow; am = decToBcd(alarmMinute); am = am | 100000000; //       ah = decToBcd(alarmHour); ah = ah | 100000000; //       ad = decToBcd(alarmDay); ad = ad | 100000000; //        adow = decToBcd(alarmDayOfWeek); adow = ad | 100000000; //       //        PCF8563 Wire.beginTransmission(PCF8563address); Wire.write(0x09); Wire.write(am); Wire.write(ah); // .         /* Wire.write(ad); Wire.write(adow); */ Wire.endTransmission(); //  .  INT     //     PCF8563alarmOff() Wire.beginTransmission(PCF8563address); Wire.write(0x01); Wire.write(B00000010); Wire.endTransmission(); } void PCF8563alarmOff() //      . { byte test; //    0x01h Wire.beginTransmission(PCF8563address); Wire.write(0x01); Wire.endTransmission(); Wire.requestFrom(PCF8563address, 1); test = Wire.read(); //  3    0 test = test - B00001000; //      0x01h Wire.beginTransmission(PCF8563address); Wire.write(0x01); Wire.write(test); Wire.endTransmission(); } void checkPCF8563alarm() //    { byte test; //    0x01h     test Wire.beginTransmission(PCF8563address); Wire.write(0x01); Wire.endTransmission(); Wire.requestFrom(PCF8563address, 1); test = Wire.read(); test = test & B00001000; if (test == B00001000) //    { Serial.println("** alarm **"); delay(2000); //     PCF8563alarmOff(); } } void setPCF8563() { Wire.beginTransmission(PCF8563address); Wire.write(0x02); Wire.write(decToBcd(second)); Wire.write(decToBcd(minute)); Wire.write(decToBcd(hour)); Wire.write(decToBcd(dayOfMonth)); Wire.write(decToBcd(dayOfWeek)); Wire.write(decToBcd(month)); Wire.write(decToBcd(year)); Wire.endTransmission(); } void readPCF8563() { Wire.beginTransmission(PCF8563address); Wire.write(0x02); Wire.endTransmission(); Wire.requestFrom(PCF8563address, 7); second = bcdToDec(Wire.read() & B01111111); minute = bcdToDec(Wire.read() & B01111111); hour = bcdToDec(Wire.read() & B00111111); dayOfMonth = bcdToDec(Wire.read() & B00111111); dayOfWeek = bcdToDec(Wire.read() & B00000111); month = bcdToDec(Wire.read() & B00011111); year = bcdToDec(Wire.read()); } void setup() { Wire.begin(); Serial.begin(9600); second = 50; minute = 44; hour = 13; dayOfWeek = 1; dayOfMonth = 19; month = 8; year = 13; setPCF8563(); //       alarmMinute = 45; alarmHour = 13; setPCF8563alarm(); } void loop() { readPCF8563(); Serial.print(days[dayOfWeek]); Serial.print(" "); Serial.print(dayOfMonth, DEC); Serial.print("/"); Serial.print(month, DEC); Serial.print("/20"); Serial.print(year, DEC); Serial.print(" - "); Serial.print(hour, DEC); Serial.print(":"); if (minute < 10) { Serial.print("0"); } Serial.print(minute, DEC); Serial.print(":"); if (second < 10) { Serial.print("0"); } Serial.println(second, DEC); delay(1000); //  checkPCF8563alarm(); } 


рдПрдХ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдХрдИ RTCs рдХреА рддрд░рд╣, PCF8563 рдХреЛ рд╕рд┐рдЧреНрдирд▓ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред COT рдкрд┐рди (microcircuit рдХрд╛ рдкрд┐рди 7) рдПрдХ рдЦреБрд▓реА рдирд╛рд▓реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕ рдкрд┐рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдПрд▓рдИрдбреА рдХреЛ рдЭрдкрдХрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд░рдЬрд┐рд╕реНрдЯрд░ 0x0D рдЖрд╡реГрддреНрддрд┐ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред



рдЗрд╕ рд░рдЬрд┐рд╕реНрдЯрд░ (FE) рдХреЗ рд╕рд╛рддрд╡реЗрдВ рдмрд┐рдЯ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИред рдмрд┐рдЯреНрд╕ 0 рдФрд░ 1 рд╡рд╛рдВрдЫрд┐рдд рдЖрд╡реГрддреНрддрд┐ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред 2 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 6 рдмрд┐рдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд▓рд┐рдЦрдирд╛, рдЖрдк рд╡рд╛рдВрдЫрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • 10000000 - 32.768 kHz;
  • 10000001 - 1.024 kHz;
  • 10000010 - 32 рд╣рд░реНрдЯреНрдЬ;
  • 10000011 - 1 рд╣рд░реНрдЯреНрдЬ;
  • 0 - рдЕрдХреНрд╖рдо рдЖрдЙрдЯрдкреБрдЯ;

рд╕реНрдХреЗрдЪ рдЙрджрд╛рд╣рд░рдг:

 #include "Wire.h" #define PCF8563address 0x51 void PCF8563oscOFF() //   { Wire.beginTransmission(PCF8563address); Wire.write(0x0D); Wire.write(0); Wire.endTransmission(); } void PCF8563osc1Hz() //    1 Hz { Wire.beginTransmission(PCF8563address); Wire.write(0x0D); Wire.write(B10000011); Wire.endTransmission(); } void PCF8563osc32Hz() //    32 Hz { Wire.beginTransmission(PCF8563address); Wire.write(0x0D); Wire.write(B10000010); Wire.endTransmission(); } void PCF8563osc1024kHz() //    1.024 kHz { Wire.beginTransmission(PCF8563address); Wire.write(0x0D); Wire.write(B10000001); Wire.endTransmission(); } void PCF8563osc32768kHz() //    32.768 kHz { Wire.beginTransmission(PCF8563address); Wire.write(0x0D); Wire.write(B10000000); Wire.endTransmission(); } void setup() { Wire.begin(); } void loop() { PCF8563osc1Hz(); delay(2000); PCF8563osc32Hz(); delay(2000); PCF8563osc1024kHz(); delay(2000); PCF8563osc32768kHz(); delay(2000); PCF8563oscOFF(); delay(2000); } 


рдПрд▓рдИрдбреА рд╕реЗ рд▓реА рдЧрдИ рддрд░рдВрдЧреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг

1 рд╣рд░реНрдЯреНрдЬ



32 рд╣рд░реНрдЯреНрдЬ



1.024 kHz



32.768 рдХрд┐рд▓реЛрд╣рд░реНрдЯреНрдЬрд╝

Source: https://habr.com/ru/post/hi463265/


All Articles