Založen: Aug 04, 2009 Příspěvky: 1427 Bydliště: okres Písek
Zaslal: pá říjen 20 2023, 19:44 Předmět:
Tazetel nemá v oblibě I²C.
Nádherně by to šlo řešit šesti PCF8574 a signály SCL & SDA sdílet oběma MCU (mají-li aspoň dva vývody typu open collector). Přepínací obvod by byl třeba jen jeden (pro přepínání vstupů A0, A1, A2 jedním, či druhým MCU; PCF8574 reaguje na celkem osm slave adres).
Založen: Nov 01, 2008 Příspěvky: 4297 Bydliště: Skalica
Zaslal: so říjen 21 2023, 7:19 Předmět:
TO Vladano: Presne tak som to urobil, len som tam použil 74HC257. Ináč keď rád kreslíš ako by si zostavil riadiaci obvod na prepínanie displejov? Ideálne (3sekundy display č.1,) (0,5s impulz do E na zatemnenie)(3sekundy display č.2) a zasa zatemnenie a zasa to isté dokola.
Založen: Jan 01, 2023 Příspěvky: 1999 Bydliště: Česká Lípa
Zaslal: ne říjen 22 2023, 2:32 Předmět:
1. Můj nick v této diskusi není Vladano, ale Valdano podobně jako se bývalý argentinský fotbalista nejmenuje JorgeVladano, ale Jorge Valdano.
2. Tohle bych řešil špíš Arduinem třeba verzí Nano. Doporučoval bych se to naučit. Není to zas tak složité. Níže je jednoduchý program, který by to zvládl. Použité digitální piny 2 a 3. Pin 2 ovládání E a pin 3 přepínání mezi MCU1 a MCU2.
kód:
#define PIN_ZATEMNENI 2
#define PIN_PREPMCU 3
#define MCU1 LOW
#define MCU2 HIGH
#define TMA HIGH
#define ZOBRAZ LOW
#define STAV_TMA 1
#define STAV_MCU 2
int mcu = 0;
int stv = 0;
unsigned long csz = 0;
unsigned long tck = 0;
void loop()
{
tck = millis();
switch (stv) {
case STAV_TMA:
if (tck - csz > 500) {
// po uplynuti 500 ms zmenit MCU a zobrazit
if (mcu == 1) {
mcu = 2;
digitalWrite(PIN_PREPMCU, MCU2);
} else {
mcu = 1;
digitalWrite(PIN_PREPMCU, MCU1);
};
digitalWrite(PIN_ZATEMNENI, ZOBRAZ);
csz = tck;
stv = STAV_MCU;
};
break;
case STAV_MCU:
if (tck - csz > 3000) {
// po uplynuti 3000 ms zatemnit
digitalWrite(PIN_ZATEMNENI, TMA);
csz = tck;
stv = STAV_TMA;
};
break;
};
};
3. Řídící obvod bez programování jen velmi hrubým odhadem viz přiložený obrázek, ale nejsem jist nakolik to bude funkční. Spíš bych doporučoval to Arduino Nano, se kterým je to jednodušší.
Založen: Jan 01, 2023 Příspěvky: 1999 Bydliště: Česká Lípa
Zaslal: ne říjen 22 2023, 12:37 Předmět:
Řešení s 74HC595 nebo 74HC4094 a třemi dráty to už nechávám na někom jiném kdo bude ochoten Kutilmilovi také napsat hotový příklad pro Arduino. Kutilmil jak už sám psal to naprogramovat neumí a tudíž je potřeba to napsat kompletní tj. pouhé náznaky pro něj zřejmě budou nedostačují. Ono je vůbec otázkou jestli půjde do jakéhokoli řešení přes Arduino apod. nebo jestli spíš raději nepoužije ten dříve uvedený bastl jen s několika obvody bez programování.
Podle toho co Kutilmil psal už ten přepínač udělal z obvodů 74HC257, akorát mu chybí to řízení a k tomu je jednodušší Arduino Nano než složit to z obvodů.
Jako náhrada toho přepínače s tím, že by byly zachovány 74HC573, které dle dříve uvedeného Kutilmil už má zapojeny k těm segmentovkám by se dalo použít Arduino Mega 2560, které má dostatek digitálních pinů, aby se to všechno dalo zrealizovat jen přes Arduino. Rozložení pinů na desce Arduina viz přiložený obrázek. Níže je zdroják pro Arduino Mega 2560.
Doba zatemnění i přepínání mezi MCU1 a MCU2 je uvedena na začátku zdrojáku jako definice DOBA_ZATEMNENI a DOBA_PREPMCU přičemž čas je v ms. Pokud by byla potřeba změna některého z pevně definovaných časů při ladění pak stačí změnit hodnotu v definici a znovu přeložit a naprogramovat Arduino. Toto je minimalistická verze, která předpokládá, že se časy odladí napevno.
Pokud by bylo potřeba udělat časy nastavitelné za chodu Arduina dalo by se to řešit dvěma potenciometry zapojenými na dva Analogové vstupy Arduina a pak by se daly časy zatemnění i přepínání mezi MCU1 a MCU2 plynule měnit za chodu v určitém předdefinovaném rozmezí, ale taková potřeba nebyla definována tj. zatím předpokládám výše zmíněné použití pevně definovaných časů.
int i = 0;
int mcu = 0;
int stv = 0;
int zobr = 0;
unsigned long csz = 0;
unsigned long tck = 0;
void setup()
{
// 39 digitalnich pinu pro vstupy a vystupy prepinace
// z toho
// 13 (3 az 15) pro vystupy prepinace na displej
// 13 (22 az 34) pro vstupy prepinace z MCU1
// 13 (35 az 47) pro vstupy prepinace z MCU2
for (i=3; i<16; i++) pinMode(i, OUTPUT);
// pinMode(i, INPUT) pro piny 22 az 47 neni potreba volat,
// protoze digitalni vstupy to maji jiz implicitne nastaveno
csz = millis();
mcu = 1;
zobr = 1;
stv = STAV_MCU;
};
void loop()
{
tck = millis();
switch (stv) {
case STAV_TMA:
if (tck - csz > DOBA_ZATEMNENI) {
// po uplynuti DOBA_ZATEMNENI v ms zobrazit
if (mcu == 1) {
mcu = 2;
} else {
mcu = 1;
};
zobr = 1;
csz = tck;
stv = STAV_MCU;
};
break;
case STAV_MCU:
if (tck - csz > DOBA_PREPMCU) {
// po uplynuti DOBA_PREPMCU v ms zatemneni
zobr = 0;
csz = tck;
stv = STAV_TMA;
};
break;
};
if (zobr == 0) {
// zatemneno
for (i=3; i<16; i++) digitalWrite(i, LOW);
} else {
// zobrazeno
if (mcu == 1) {
// 13 (3 az 15) pro vystupy prepinace na displej
// 13 (22 az 34) pro vstupy prepinace z MCU1
for (i=3; i<16; i++) digitalWrite(i, digitalRead(i + 19));
} else {
// 13 (3 az 15) pro vystupy prepinace na displej
// 13 (35 az 47) pro vstupy prepinace z MCU2
for (i=3; i<16; i++) digitalWrite(i, digitalRead(i + 32));
};
};
};
Arduino_Mega_2560_pinout.jpg
Komentář:
Rozložení pinů na desce Arduino Mega 2560
Velikost:
149.62 kB
Zobrazeno:
35 krát
Naposledy upravil Valdano dne ne říjen 22 2023, 13:18, celkově upraveno 3 krát.
Založen: Mar 05, 2007 Příspěvky: 6176 Bydliště: Jesenice u Prahy
Zaslal: ne říjen 22 2023, 13:16 Předmět:
Valdano napsal(a):
Jako kompletní náhrada toho přepínače by se dalo použít Arduino Mega 2560, které má dostatek digitálních pinů, aby se to všechno dalo zrealizovat jen přes Arduino.
Opakuji, že je to hovadina, jelikož to Arduino může dělat celou tu funkci a není potřeba nic přepínat.
Ale to kutimil neřekl, co přesně chce realizovat a s čím
Založen: Jan 01, 2023 Příspěvky: 1999 Bydliště: Česká Lípa
Zaslal: ne říjen 22 2023, 13:33 Předmět:
Hned na první stránce v tomto tématu je od Kutilmila obrázek viz níže. V něm je jasně zakresleno, že tam má 6 kusů segmentovek a také už tam má připojeno 6 x 74HC573 a také tam má dva MCU, ale ty podle mého názoru on neprogramoval, protože jak už tu sám uvedl tohle on prostě neumí obecně. Zatím podle zadání chce řešit jen ten obdélník mezi tím a nic jiného. Neřeším tady, že to jde jinak. To už bylo zmíněno v předchozí častí diskuse, ale Kutilmil to prostře zatím jinak řešit nechce, a to beru jako základ. Když to jinak nechce tak jsem tu uvedl možnosti jak by to šlo řešit s tím co už tam má a nerozváděl jsem tu možnosti jak to celé včetně těch 74HC573 zahodit a udělat jinak.
Samozřejmě, že existují jiné možnosti, ale ty prostě nejsou aktuální, protože podle toho co zatím Kutilmil napsal je aktuální to řešení s přepínáním 13-ti výstupů na 6x74HC573 z 2x13 vstupů ze dvou MCU a nic jiného a z toho jsem vycházel u toho příkladu s Arduinem Mega 2560. Teprve pokud Kutilmil uvede, že to řešení chce změnit na jiné konkrétní tak to bude aktuální, ale jinak to nemá smysl, protože jak už jsem psal třeba Kutilmil ani vůbec nestojí o kompletní řešení přes jakýkoli procesor, který bude potřeba programovat vzhledem k tomu, že je to pro něj asi více méně "nesrozumitelný blackbox".
Takže možná to bylo stejně zbytečné uvádět tu jakýkoli příklad a Arduinem jelikož Kutilmil spíš asi preferuje řešení se samostatnými obvody, aby se vyhnul jakékoli potřebě cokoli programovat. Řešení bez nutnosti cokoli programovat jsem tady už nakreslil jednak přepínač s obvody 4 x 74HCT157 a poté co zde Kutilmil uvedl, že už si postavil obdobný přepínač z obvodů 74HC257 a ptal se na obvod bez programování pro již zmíněné řízení časování tak jsem zde doplnil schéma s obvodem 555, 74112 a 74164 jako doplněk k tomu přepínači, který už si sám postavil. Pokud to Kutilmilovi takto vyhovuje a preferuje raději řešení s obvody bez programování tak to je jeho věc.
Založen: Jan 01, 2023 Příspěvky: 1999 Bydliště: Česká Lípa
Zaslal: ne říjen 22 2023, 14:56 Předmět:
Samozřejmě, že uměl, ale schválně to nechávám na vás. Já už jsem tu dal možnosti, které aktuálně považuji za relevantní a zatím jsem za to sklidil jen kritiku. No tak když umíte tak hezky kritizovat tak tu také přiložte trochu víc ruku k dílu a napište kompletní příklad pro Arduino pro tento účel vy sám. To jistě zvládnete a nebo ne?
Založen: Mar 16, 2005 Příspěvky: 32853 Bydliště: Česká Třebová, JN89FW21
Zaslal: ne říjen 22 2023, 15:41 Předmět:
Tam v podstatě není potřeba nic jinýho, než diodama ve výstupech oddělený hradla libovolný logiky, který lze zapojit jako logickou úrovní zablokovatelnej opakovač/invertor úrovně. Hradlo NAND má na svým výstupu log.1 vždycky, když má aspoň na jednom vstupu log.0, zatímco když je na tom vstupu log.1, výstup invertuje stav dalšího vstupu, takže když vezmu dvouvstupový hradlo a na jeden vstup přivedu podle potřeby volitelnou logickou úroveň a na druhej jeden funkční bit toho přenášenýho signálu, dokážu volbou mezi log.0 a log.1 na ovládacím vstupu ovlivnit, jestli mi budou tím hradlem impulsy = změny logickejch úrovní procházet, nebo jestli se hradlo zablokuje v jedný výstupní úrovni. Stejně tak když vezmu hradla s trojstavovým výstupem = přivedením ovládací úrovně na příslušnej vstup zablokuju všecky výstupy ve stavu vysoký imprdelance a když budu mít takhle paralelně ke sběrnici připojenejch X budičů, můžu si ovládáním vybírat ty, který data ze svejch vstupů pustí dál a který se bloknou. Na to nepotřebuju žádný programování MCU ... _________________ Nasliněný prst na svorkovnici domovního rozvaděče: Jó, paninko, máte tam ty Voltíky všecky...
Založen: Jan 01, 2023 Příspěvky: 1999 Bydliště: Česká Lípa
Zaslal: ne říjen 22 2023, 16:09 Předmět:
Kutilmil, jak už tady psal výše, si přepínač už sám postavil ze 4 kusů 74HC257. Jeden kus 74HC257 je multiplexer s třístavovými výstupy a v podstatě nahrazuje 4 dvojice hradlových vstupů s ovládáním přepínání na 4 výstupy. 4 kusy 74HC257 je celkem 2 x 16 vstupů na 1 x 16 výstupů a z toho Kutilmil využil 2 x 13 vstupů na 1 x 13 výstupů. Takže to samotné přepínání už má Kutilmil v podstatě vyřešeno.
Akorát ještě chtěl navíc doplnit to řízení časování a tak jsem mu tady výše doplnil schéma s obvodem 555, 74112 a 74164 jako doplněk k tomu přepínači, který už si sám postavil.
To co jsem tady psal ohledně Arduina jsem uvedl navíc a původně spíš k tomu časování a samozřejmě uznávám, že ten další zdroják pro přepínání co jsem tu pak ještě přidal byl v podstatě úplně zbytečný, ale když už tu je tak ho mazat nebudu, ale nic dalšího k tomu už také nebudu psát i když se tady danhard snažil provokovat.
Jinak pokud jde o to řešení, které si zvolil Kutilmil tak to zkrátka beru tak, že někdo má raději řešení s různými obvody bez programování než aby cokoli programoval což je v duchu tohoto serveru a sekce Poradna není nijak vyhrazena jen pro řešení s programováním. U tohoto řešení jde v podstatě o elektro bastlení což by na tomto serveru neměl být problém.
Naposledy upravil Valdano dne ne říjen 22 2023, 16:19, celkově upraveno 1 krát.
Založen: Mar 16, 2005 Příspěvky: 32853 Bydliště: Česká Třebová, JN89FW21
Zaslal: ne říjen 22 2023, 16:17 Předmět:
danhard napsal(a):
Především je zapotřebí ...
PŠŠŠŠT, to se tady nesmí vykřikovat tak nahlas !!!! _________________ Nasliněný prst na svorkovnici domovního rozvaděče: Jó, paninko, máte tam ty Voltíky všecky...
Založen: Nov 01, 2008 Příspěvky: 4297 Bydliště: Skalica
Zaslal: ne říjen 22 2023, 19:34 Předmět:
Dík Valdano a prepáč mi skomolenie mena. No ohľadom programovania: Je to ako píšeš. Ja by som rád naprogramoval nový kontroler a bolo by všetko vyriešené ale jednoducho nikdy som do programovania neprenikol a neviem to. Jediné čo viem naprogramovať a trúfnem si povedať že tam viem všetko je siemens LOGO!
Čo sa týka riadiacej dosky: Než si mi odpísal tak som spravil to čo posielam. Je v nej naviac zakomponované aj ovládanie pomocou 12V a reset stopiek. Neviem či to je zrozumiteľné. Keď tak kukni.
Časy uváděny v GMT + 1 hodina Jdi na stránku Předchozí1, 2, 3, 4Další
Strana 3 z 4
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.