Teraz jest piątek, 14 marca 2025, 17:12

Strefa czasowa: UTC + 1




Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 
Autor Wiadomość
 Tytuł: Zegar analogowy Arduino.
PostNapisane: środa, 4 lutego 2015, 19:07 
Offline
Moderator
Avatar użytkownika

Dołączył(a): niedziela, 21 marca 2010, 18:35
Posty: 2345
Wiek: 61
Lokalizacja: Poznań - Jeżyce
Nie dawała mi spokoju pewna idea. zegar o odczycie analogowym czasu.
Więc go wykonałem. na razie w formie "pająka"
Załącznik:
20150204_190251.jpg
20150204_190251.jpg [ 1.83 MiB | Przeglądane 12115 razy ]

Listing:
// **************BAXTER**************
//Zegarek cyfrowy wyswietlajacy czas w formie analogowj i cyfrowej,
//przy użyciu dwurzędowego wyswietlacza LCD sterowanego przez układ
//M74HC595. dzieki zastosowanemu okładowi uzywam tylko trzech pinów Arduino.
// Do ustawienia czzasu używamy cztero przyciskowej klawiatury podłączonej do portów cyfrowych.
// Połaczenia jak w opisie do niezbednej biblioteki: LiquidCrystal595n library.
#include <LiquidCrystal595.h>
LiquidCrystal595 lcd(7,8,9);
int czas = 0 ;
int czas1 = 0 ;
int sekunda = 0 ;
int minuta = 0 ;
int godzina = 0 ;
int dodajgodzina = 0;
int odejmijgodzina = 0;
int dodajminuta = 0;
int odejmijminuta = 0;
//Tablice tekstowe dla godzin i minut.
char* godztxt[] = {
"","Pierwsza", "Druga", "Trzecia","Czwarta",
"Piata","Szosta","Siodma","Osma","Dziewiata","Dziesiata","Jedynasta","Dwunasta","Pierwsza"}
;
char* pogodztxt[] = {
"","Pierwszej","Drugiej","Trzeciej","Czwartej","Piatej","Szostej","Siodmej","Osmej",
"Dziewiatej","Dziesiatej","Jedynastej","Dwunastej","Pierwszej"}
;
char* minutatxt[] = {
"Punktualnie","Piec po","Dziesiec po","Pietnascie po","Dwadziescia po","Za piec wpol","Wpol do",
"Piec po wpol do","Za dwadziescia","Za pietnascie","Za dziesiec","Za piec"};
const int godzinadodajPin = 4; // Numery pinów klawiatury
const int godzinaodejmijPin = 3;
const int minutadodajPin = 5;
const int minutaodejmijPin = 2;
void setup() {
lcd.begin(16,2) ; // Inicjalizacja wyswietlacza
lcd.clear() ;
czas = millis() ; // Odczytanie czasu z zegara systemowego. - liczby milisekund od uruchomienia procesora
pinMode(godzinadodajPin, INPUT); // Piny wejscia dla klawiatury
pinMode(godzinaodejmijPin, INPUT);
pinMode(minutadodajPin, INPUT);
pinMode(minutaodejmijPin, INPUT);
}

void loop() {
// Odczyt z klawiatury
if (digitalRead(godzinadodajPin) == HIGH) {
// turn LED on:
delay (200) ;
tone(13, 100, 500);
godzina = godzina + 1 ;
}
if (digitalRead(godzinaodejmijPin) == HIGH) {
// turn LED on:
delay (200) ;
tone(13, 100, 500);
godzina = godzina - 1 ;
}
if (godzina == 0) {
godzina = 12 ;
} // Zabezpieczenie przed zerowa lub ujemna godziną.

if (digitalRead(minutadodajPin) == HIGH) {
// turn LED on:
delay (200) ;
tone(13, 100, 500);
minuta = minuta + 1 ;
}
if (digitalRead(minutaodejmijPin) == HIGH) {
// turn LED on:
delay (200) ;
tone(13, 100, 500);
minuta = minuta - 1 ;
}
if (minuta == 0 ) {
minuta = 60 ;
} // Zabezpieczenie przed ujemna lub zerową minutą.


czas1 = millis(); //Obliczenie czasu który w którym procesor wykonał petlę.
if (czas1 - czas >= 1000) // jeżeli więcaj niz sekunde to doliczamy ją.
{
czas = czas1 ;
sekunda = sekunda + 1 ;
// Poniżej przeliczamy sekundy na minuty i godziny.
if (sekunda >= 60) {
sekunda = 0 ;
minuta = minuta + 1 ;
}
if (minuta >= 60 ) {
minuta = 0 ;
godzina = godzina + 1 ;
}
if (godzina >= 13 ) {
godzina = 1 ;
minuta = 0 ;
sekunda = 0 ;
}

// Wyswietlanie czasu:
lcd.clear() ; // Czyszczenie ekranu
lcd.setCursor (11,1) ; // pozycja kursora do wyswietlenia czasu cyfrowo
if (godzina <= 9 ) {
lcd.print (" ") ;
}
lcd.print (godzina) ;
lcd.print (":") ;
if (minuta <= 9) { // Jezeli minuta jest jednocyfrowa dodajemy zero z przodu coby ładniej wygladała.
lcd.print ("0") ;
}
lcd.print (minuta) ;

lcd.setCursor (0,0) ; // Ustawienie kursora do wyswietlania analogowego.

if (minuta <= 4) { //Jeżeli minuta jest mniejsza od 4 to minuty = 0 a godzina jest
lcd.print(minutatxt[minuta/5]);
lcd.print (" ") ; // podawana w formanie "trzecia"
lcd.setCursor (0,1) ;
lcd.print(godztxt[godzina]);
}
if (minuta <= 24 and minuta >= 5) { // W tym zakresie minut używamy formy "trzeciej".

lcd.print(minutatxt[minuta/5]);
lcd.print (" ") ; // ta linia pobiera pierwsza wartość z tabeli
// minutatxt czyli " Punktualnie "
lcd.setCursor (0,1) ; // Kursor o jeden wiersz niżej i wyswietlamy godzinę.
lcd.print(pogodztxt[godzina]);
}
if (minuta >= 25 and minuta <= 39) {
lcd.print(minutatxt[minuta/5]);
lcd.setCursor (0,1) ;
lcd.print(pogodztxt[godzina + 1]);
}
if (minuta>=40) {
lcd.print (minutatxt[minuta/5]) ;
lcd.setCursor (0,1) ;
lcd.print (godztxt[godzina + 1]);
}
}
}
// END

I to tyle, dziękuje za uwagę.
aha zegar mierzy czas używając zegara wewnętrznego Atmegi i po tygodniu uważam że jego dokładność jest wystarczająca. będzie chodził ok 50 dni, potem bufor atmegi się przepełni i wyzeruje, wiec prawdopodobnie zegar trzeba będzie ustawiać od nowa.

_________________
Bartek
NEVER STOP EXPLORING!


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: środa, 4 lutego 2015, 20:25 
Coś nie bardzo działa, jeśli chodzi o dokładność "analoga" vs "cyfrowego" :mrgreen:


Załączniki:
20150204_190251_crop.jpg
20150204_190251_crop.jpg [ 298.11 KiB | Przeglądane 12094 razy ]
Góra
  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: środa, 4 lutego 2015, 20:43 
Offline
Moderator
Avatar użytkownika

Dołączył(a): niedziela, 21 marca 2010, 18:35
Posty: 2345
Wiek: 61
Lokalizacja: Poznań - Jeżyce
bo analog podaje czas z dokładnością do 5 minut..
Następny komunikat to "Wpol do piatej"..
Zajrzyj w listing programu, he he, Panie Maruda.
Ten zegarek jest sterowany procesorem, ale nie ma oddawać ducha naszych czasów, pełnego pospiechu.
Zresztą część analogową dodałem dzisiaj po przyjściu z pracy, na wyraźną prośbę mojej lepszej połowy..
ja uważałem ja za zbędną.
Muszę do tego teraz jakiś fajny, klimatyczny wyświetlacz wymyślić.

_________________
Bartek
NEVER STOP EXPLORING!


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: środa, 4 lutego 2015, 21:31 
Offline
Administrator
Avatar użytkownika

Dołączył(a): sobota, 20 marca 2010, 17:16
Posty: 6752
Wiek: 42
Lokalizacja: Czechowice-Dziedzice
Bartek nic innego Ci nie pozostaje jak tylko takie coś

Obrazek

Obrazek

lub

Obrazek

Edytka;

albo pojść po całości i przerobić na zegar widmowy

Obrazek

_________________
To bzykanie coś oznacza. Takie bzyczące bzykanie nie bzyka bez powodu.

pozdrawiam Marcin


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: środa, 4 lutego 2015, 22:23 
Offline
Moderator
Avatar użytkownika

Dołączył(a): niedziela, 21 marca 2010, 18:35
Posty: 2345
Wiek: 61
Lokalizacja: Poznań - Jeżyce
Ha. Gdybym dostał nixie z literami....

_________________
Bartek
NEVER STOP EXPLORING!


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: środa, 4 lutego 2015, 22:41 
Offline
Moderator
Avatar użytkownika

Dołączył(a): czwartek, 12 kwietnia 2012, 10:46
Posty: 6270
Wiek: 46
Lokalizacja: Kraków
Dorzucę parę zegarków:

Obrazek

Obrazek

Obrazek

Obrazek

Obrazek

Obrazek

Obrazek

Obrazek

Obrazek


Obrazek




_________________
pozdrawiam
Hubert
https://www.banggood.com/?p=WQ230911983820130156


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: środa, 4 lutego 2015, 22:57 
Nie należy zapomnieć o kultowym wyświetlaczu IW-18 :mrgreen:

Obrazek


Góra
  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: środa, 4 lutego 2015, 23:12 
Offline
modelarz
Avatar użytkownika

Dołączył(a): poniedziałek, 26 listopada 2012, 15:35
Posty: 1255
Wiek: 76
Lokalizacja: Toruń PL,Swindon England UK
umysł ludzki nie zna granic... :D

_________________
pozdrawiam Janusz
************************
Modelarstwo to pasja.
Pasja - aby zrealizować swoje marzenia.


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: czwartek, 5 lutego 2015, 01:58 
Offline
Administrator
Avatar użytkownika

Dołączył(a): sobota, 20 marca 2010, 17:16
Posty: 6752
Wiek: 42
Lokalizacja: Czechowice-Dziedzice
mnie się ta podoba :)

Obrazek

_________________
To bzykanie coś oznacza. Takie bzyczące bzykanie nie bzyka bez powodu.

pozdrawiam Marcin


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: czwartek, 5 lutego 2015, 13:27 
Offline
Moderator
Avatar użytkownika

Dołączył(a): niedziela, 21 marca 2010, 18:35
Posty: 2345
Wiek: 61
Lokalizacja: Poznań - Jeżyce
Kurna, rewelacja. Stimpunk w czystej formie..
Ten z łańcuchem rewelacyjny...

_________________
Bartek
NEVER STOP EXPLORING!


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: czwartek, 5 lutego 2015, 19:16 
Offline
modelarz
Avatar użytkownika

Dołączył(a): czwartek, 3 czerwca 2010, 20:17
Posty: 4304
Wiek: 63
Lokalizacja: Wrocław
Faktycznie kurcze umysł ludzki jak chce to potrafi wszysto.
Rewelacyjne te zegarki.

_________________
Pozdrawiam
Konrad P.


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: piątek, 6 lutego 2015, 00:12 
Offline
modelarz
Avatar użytkownika

Dołączył(a): poniedziałek, 19 marca 2012, 11:26
Posty: 1559
Wiek: 60
Lokalizacja: Peterborough, UK
A ja dzisiaj wydłubałem LCD z jakiegoś Faxu CM160211, znalazłem do niego dokumentację i wygląda, że da się go do twojego zegarka zastosować.
http://www.mind-tek.net/data/CM160211.pdf
Rzuć okiem Bax ter, nada się ??
A propo's zegarków mnie roz....ł ... rozwalił rozwalił :) "Doodle"
Chyba by mnie trafiło jak bym miał tak sprawdzać czas :)

_________________
Pozdrawiam
RobUk
HyperBipe 900, AMBeR III "Experience", Spitfire MKIIb, Sbach342, White Sheep 480 Quad, RoboFlat 270, AOKFly 230, Realacc 210
"Nie ważne jak zaczynasz, ważne jak ... kończysz ..." 3W Kasta


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: piątek, 6 lutego 2015, 11:56 
Offline
Moderator
Avatar użytkownika

Dołączył(a): niedziela, 21 marca 2010, 18:35
Posty: 2345
Wiek: 61
Lokalizacja: Poznań - Jeżyce
Z tego co widzę to sie nada.
A ten "piszacy" zegarek fajowy, pod warunkiem że będzie pisał co kilka minut i zostawił do odczytania.

_________________
Bartek
NEVER STOP EXPLORING!


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: piątek, 6 lutego 2015, 12:13 
Co prawda nie "elektroniczne", ale też bardzo fajne, i takie... klimatyczne Wooden clocks


Góra
  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: piątek, 6 lutego 2015, 12:31 
Offline
Moderator
Avatar użytkownika

Dołączył(a): niedziela, 21 marca 2010, 18:35
Posty: 2345
Wiek: 61
Lokalizacja: Poznań - Jeżyce
Jak sobie maszynkę uruchomić to takie będziesz robił.

_________________
Bartek
NEVER STOP EXPLORING!


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: piątek, 6 lutego 2015, 21:27 
Offline
Moderator
Avatar użytkownika

Dołączył(a): czwartek, 12 kwietnia 2012, 10:46
Posty: 6270
Wiek: 46
Lokalizacja: Kraków
I jeszcze taki:


_________________
pozdrawiam
Hubert
https://www.banggood.com/?p=WQ230911983820130156


Góra
 Zobacz profil Wyślij e-mail  
 
 Tytuł: Re: Zegar analogowy Arduino.
PostNapisane: sobota, 7 lutego 2015, 12:43 
Offline
modelarz
Avatar użytkownika

Dołączył(a): poniedziałek, 19 marca 2012, 11:26
Posty: 1559
Wiek: 60
Lokalizacja: Peterborough, UK
Ci powiem Elipsis, ze koncepcyjnie zegarek by "tomeeh" wypada super.
Ja bym się jednak pokusił o nieco bardziej "zdecydowane" światełka bo w niektórych warunkach może być odrobinę nieczytelne :)
może nieco wyższy poziom jasności, jakieś szczeliny żeby to światło nie było tak mocno rozproszone
ale to oczywiście kwestia gustu ;)

_________________
Pozdrawiam
RobUk
HyperBipe 900, AMBeR III "Experience", Spitfire MKIIb, Sbach342, White Sheep 480 Quad, RoboFlat 270, AOKFly 230, Realacc 210
"Nie ważne jak zaczynasz, ważne jak ... kończysz ..." 3W Kasta


Góra
 Zobacz profil Wyślij e-mail  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  

129,987,403 Wyświetlone Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL