polkic je napisal/a: |
Pozdravljen,
objavi trenutno kodo programa in mogoče kakšno shemo vezave, da ti bomo lahko lažje svetovali. Lp. |
Koda: |
// DS1302_LCD (C)2010 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics // // Adopted for DS1302RTC library by Timur Maksimov 2014 // // A quick demo of how to use my DS1302-library to make a quick // clock using a DS1302 and a 16x2 LCD. // // I assume you know how to connect the DS1302 and LCD. // DS1302: CE pin -> Arduino Digital 5 // I/O pin -> Arduino Digital 6 // SCLK pin -> Arduino Digital 7 // VCC pin -> Arduino Digital 33 // GND pin -> Arduino Digital 35 // LCD: DB7 -> Arduino Digital 13 // DB6 -> Arduino Digital 12 // DB5 -> Arduino Digital 11 // DB4 -> Arduino Digital 10 // E -> Arduino Digital 9 // RS -> Arduino Digital 8 #include <Wire.h> // Need for NewLiquidCrystal library #include <LiquidCrystal.h> #include <DS1302RTC.h> #include <Time.h> // Init the DS1302 // Set pins: CE, IO,CLK DS1302RTC RTC(7, 6, 5); // Optional connection for RTC module //#define DS1302_GND_PIN 33 - not for UNO //#define DS1302_VCC_PIN 35 - not for UNO // Init the LCD // initialize the library with the numbers of the interface pins // lcd(RS, E, d4, d5, d6, d7, [slovenščina je zame španska vas], polarity) LiquidCrystal lcd(8, 9, 10, 11, 12, 13); void setup() { // Setup LCD to 16x2 characters lcd.begin(16, 2); // Activate RTC module // digitalWrite(DS1302_GND_PIN, LOW); - not for UNO // pinMode(DS1302_GND_PIN, OUTPUT); - not for UNO // digitalWrite(DS1302_VCC_PIN, HIGH); - not for UNO // pinMode(DS1302_VCC_PIN, OUTPUT); - not for UNO lcd.print("RTC activated"); delay(500); lcd.clear(); //setSyncProvider(RTC.get); // the function to get the time from the RTC if (RTC.haltRTC()) lcd.print("Clock stopped!"); else lcd.print("Clock working."); lcd.setCursor(0,1); if (RTC.writeEN()) lcd.print("Write allowed."); else lcd.print("Write protected."); delay ( 2000 ); // Setup time library lcd.clear(); lcd.print("RTC Sync"); setSyncProvider(RTC.get); // the function to get the time from the RTC if(timeStatus() == timeSet) lcd.print(" Ok!"); else lcd.print(" FAIL!"); delay ( 2000 ); lcd.clear(); } void loop() { static int sday = 0; // Saved day number for change check // Display time centered on the upper line lcd.setCursor(3, 0); print2digits(hour()); lcd.print(" "); print2digits(minute()); lcd.print(" "); print2digits(second()); // Update in 00:00:00 hour only if(sday != day()) { // Display abbreviated Day-of-Week in the lower left corner lcd.setCursor(0, 1); lcd.print(dayShortStr(weekday())); // Display date in the lower right corner lcd.setCursor(5, 1); lcd.print(" "); print2digits(day()); lcd.print("/"); print2digits(month()); lcd.print("/"); lcd.print(year()); } // Warning! if(timeStatus() != timeSet) { lcd.setCursor(0, 1); lcd.print(F("RTC ERROR: SYNC!")); } // Save day number sday = day(); // Wait small time before repeating :) delay (100); } void print2digits(int number) { if (number >= 0 && number < 10) { lcd.write('_'); } lcd.print(number); } |
Krampus je napisal/a: |
Zdravo
Imaš tudi drugo varianto, če te slučajno piči Nekaj, kar C verniki ne smejo videti |
solomojster je napisal/a: |
Ta priložen program je verjetno za mego.
Poglej priklope na Uno plošči. https://goo.gl/images/Pgxdgd Če poskusiš s temle; https://www.google.com/amp/s/surtrtech.com/2018/01/27/how-to-simply-use-ds1302-rtc-module-with-arduino-board-and-lcd-screen/amp/ Druga knjižnica... |
Koda: |
#define ledPin 2
void setup() { pinMode(ledPin, OUTPUT); // initialize timer1 noInterrupts(); // disable all interrupts TCCR1A = 0; TCCR1B = 0; TCNT1 = 34286; // preload timer 65536-16MHz/256/2Hz TCCR1B |= (1 << CS12); // 256 prescaler TIMSK1 |= (1 << TOIE1); // enable timer overflow interrupt interrupts(); // enable all interrupts } ISR(TIMER1_OVF_vect) // interrupt service routine that wraps a user defined function supplied by attachInterrupt { TCNT1 = 34286; // preload timer digitalWrite(ledPin, digitalRead(ledPin) ^ 1); } void loop() { // if you put "timer" routine here, with delay, it will not be precise, because the execution time for the code inside loop will always be added } |