Hodiny a časování

Odpovědět
pgerla
Příspěvky: 400
Registrován: 11 dub 2013, 00:17

Re: Hodiny a časování

Příspěvek od pgerla »

Rozdíl mezi rezonátorem a krystalem je v úspoře místa (za kondenzátory).
Kondenzátory přímo ovlivňují frekvenci na které se krystal rozkmitá.

Je tedy fajn, že si koupíte supr přesný krystal s ppm 3 (nikoliv 30). Ale na jaké frekvenci bude kmitat určuje kapacita (kondenzátory + DPS).

Výrobce se logicky brání označením 0.5% z nominální frekvence. Což je přibližně +/- 80 000 Hz rozptyl od 16 MHz.

Kolik dává toleranci výrobce Arduina?

Obrázek
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Re: Hodiny a časování

Příspěvek od daton »

Zdravím
takto vykládat funkci krystalu je asi trochu zavádějící. Frekvence krystalu je dána výbrusem. Krystal seříznutý na kmitočet 16kHz nebude kmitat na 40MHz a opačně. Ten výbrus či dnes řez je docela zásadní protože krystal při přivedení frekvence která téměř dosahuje kmitočtu výbrusu začne vibrovat a tyto vibrace jsou nejsilnější právě na daném kmitočtu (alespoń tak nás to učili) tak že se oscilátor v čipu doladí přesně na kmitočet toho krystalu. Kondenzátory které bývají před krystalem jsou pouze pro oddělení od obvodů oscilátoru a mohou být implementované na struktuře čipu. Krystal má výbrus z křemíku nebo z materiálu podobných a vyráběly obvykle pro vyšší kmitočty,
Rezonátory se vyráběly pro lacinější zařízení a hlavně nižší kmitočty (což už dnes asi neplatí). Bylo to určeno materiálem a hlavně tím, že rezonátor neměl vakuovou schránku kolem sebe (proto bývají krystaly větší).
Kondenzátory tedy rozhodně nelze měnit frekvenci kmitání krystalu, možná ji mírně ovlivnit ale opravdu jen nepatrně. A krystaly mají vždy jen dva vývody kdežto rezonátory mohou mít až čtyři.
pgerla
Příspěvky: 400
Registrován: 11 dub 2013, 00:17

Re: Hodiny a časování

Příspěvek od pgerla »

daton píše:Zdravím
takto vykládat funkci krystalu je asi trochu zavádějící. Frekvence krystalu je dána výbrusem. Krystal seříznutý na kmitočet 16kHz nebude kmitat na 40MHz a opačně.
Nikdo nemění frekvenci z 16 na 40, přesto se doučte jak harmonické násobky ovlivní chování výbrusu.

Kapacita kondenzátorů usnadňuje rozkmitání krystalu a ovlivňuje NEPATRNĚ jeho rezonanční frekvenci! Kapacita se zas mění s teplotou pouzdra a zas se posune frekvence.

Podle počtu nožiček odlišíte mouchu od pavouka, když nevidíte na obrázku proč má pouzdro obsahující kromě krystalu i dva kondenzátory nožičky tři.
Jirka
Příspěvky: 55
Registrován: 18 lis 2015, 12:06

Re: Hodiny a časování

Příspěvek od Jirka »

Ty millis mi nedají spát. Co říkáte na toto provedení.

Kód: Vybrat vše

// ??? asi OK i pri preteceni, rozdil NANO (kýve se) +- do 5 sec./6hod.
#include <Arduino.h>
int hodin=12,minut=0,sekund=0; // nastaveni startu
unsigned long systemovycas,starycas; // aktualni, pamet
bool prodlevapulz; // pulz kazdou prodlevu na 1 obeh
int cas1,cas2,cas3; // casovace
// xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void casInkrement () //
{
prodlevapulz=0;
systemovycas = millis()/1000;	// merim na 1 sec.

if (systemovycas != starycas)	// 
      { prodlevapulz=1; // pulz kazdou prodlevu na 1 obeh
        starycas = systemovycas;    // pamet
      }
}
// xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void hodiny()
{  sekund=sekund+1;
   if (sekund==60)
        {sekund=0; 
        minut=minut+1;}
   if (minut==60)
        {minut=0; 
        hodin=hodin+1;}
   if (hodin==24)
        hodin=0;
Serial.print(hodin);
Serial.print(":");
Serial.print(minut);
Serial.print(":");
Serial.println(sekund);
}

void setup()
{           // SSSSSSSSSSSSSSSSSSSSSS
  Serial.begin(9600);
// lcd.begin(16,2);
  pinMode(13,OUTPUT);
  casInkrement ();
}

void loop()
{    	// ZZZZZZZZZZZZZZZZZZZZZZZZ
casInkrement();
if (prodlevapulz)
  hodiny();

cas1 = cas1+prodlevapulz;   // 
if (cas1==4)
	digitalWrite(13,1);
if (cas1==7)
	{
	digitalWrite(13,0);
	cas1=0;
	}
delay(990);
    	// KKKKKKKKKKKKKKKKKK
}
Uživatelský avatar
fulda
Příspěvky: 1363
Registrován: 04 led 2016, 17:18

Re: Hodiny a časování

Příspěvek od fulda »

Pozor na desítkové dělení v případě přetečení.
Maximální hodnota unsigned long je 4.294.967.295, takže při přetečení (nastává každých 49 dní, 17 hodin 2 minuty a 47,295 vteřin budeš mít vteřinu kratší o 705 milisekund, protože po přetečení okamžitě vyhodnotíš změnu jako novou vteřinu.

Kombinace desítkové a dvojkové soustavy je swinstvo.

Mimochodem - daton mne správně upozornil, že v tom mojem kódu je také chyba. pokud mi vychází tik těsně před přetečení a naopak ms stihnu až po přetečení, tak to podmínka neodchytí a rogram bude čekat téměř na věky věků.

P.S. nějak se ti netrefila direktiva code :)
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Jirka
Příspěvky: 55
Registrován: 18 lis 2015, 12:06

Re: Hodiny a časování

Příspěvek od Jirka »

Zdar. Nechtěl jsem původně zabrat tolik na stránce. Jak se to code správně dělá?

S přetečením? Jo už to vidím. Ale už to řeším jen mimochodem (podle zkoušek je to stejně jen na kratší časy). Ale nenarůstá chyba.
"Kombinace desítkové a dvojkové soustavy je swinstvo." - co máš na mysli?
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Re: Hodiny a časování

Příspěvek od daton »

Podle počtu nožiček odlišíte mouchu od pavouka
Na tohle reagovat nebudu.

Ke zbytku, ohledně rezonátorů co jsou na vašich obrázcích je vše základní co potřebujete vědět zde
http://www.murata.com/~/media/webrenewa ... /p17e.ashx

A k běžným krystalům používaným v arduinech jsou informace zde
https://en.wikipedia.org/wiki/Crystal_oscillator

nechť se tedy poučí kdo chce sám. :D
pgerla
Příspěvky: 400
Registrován: 11 dub 2013, 00:17

Re: Hodiny a časování

Příspěvek od pgerla »

daton píše:nechť se tedy poučí kdo chce sám. :D
Tedy Vás poučím Datone

Procesory Atmel používají Piercův oscilátor
Obrázek

a jeho funcki pochopíte ze stránky Wikipedie https://en.wikipedia.org/wiki/Pierce_oscillator

Pana učitele požádejte o pomoc se stavbou tohoto zapojení:
Obrázek

Chcete-li se dále ztrapňovat, jsem Vám k dispozici ve všední dny i na nevšední otázky.
daton
Příspěvky: 664
Registrován: 16 bře 2013, 16:12

Re: Hodiny a časování

Příspěvek od daton »

nechť se tedy poučí kdo chce sám
Promiňte pane Pgerlo sám znamená sám, od vás opravdu rady ani poučení nepřijímám to si nastuduji u výrobce a reagovat již na vás nebudu, protože téma bylo celé jinak a jednalo se o určení zda je tam rezonátor či krystal a to se stalo v mém minulém příspěvku. Další debata je bezpředmětná.
pgerla
Příspěvky: 400
Registrován: 11 dub 2013, 00:17

Re: Hodiny a časování

Příspěvek od pgerla »

daton píše:Další debata je bezpředmětná.
To máte pravdu, pohledal jsem na internetu "vaše" millis() o kterém je tu zbytečná debata, bez ohledu na nepřesnost zdroje kmitočtu.

Obrázek
https://ucexperiment.wordpress.com/2012 ... -function/

Vám nebráním v další debatě jestli je lepší rezonátor z vakuových trubic, nebo od číňana.
Chybama se člověk učí, pokud není nepoučitelný ;)
Odpovědět