Portál AbcLinuxu, 13. května 2025 00:49
Řešení dotazu:
"Pokud se jedná o pulzní signál, mějte na paměti, že limit PC817 je cca 3kHz."chapu spravne ze by to slo ovladat z Arduina z PWM ktere ma pod 1kHz?
"Řídící napětí: 3.6–24V"take ok kdyz Arduino na PWM dava pri HIGH 5V?
chapu spravne ze by to slo ovladat z Arduina z PWM ktere ma pod 1kHz?Nebude tam žádné PWM, prostě
digitalWrite(pin, 1); delay(1000); digitalWrite(pin, 0);
, potřebná šířka pásma 1 Hz :).
#include <avr/sleep.h> int btnPower = 2; int btnPanel = 3; delay(2000); digitalWrite(btnPower, 1); delay(500); digitalWrite(btnPower, 0); delay(2000); digitalWrite(btnPanel, 1); delay(500); digitalWrite(btnPanel, 0); sleep_enable(); set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_cpu();
pinMode(btnPower, OUTPUT)
.
Strana 25: G: S813 Open/Close (Panel) I: S816 Power M: S807 AUX [pokud by vez ztracela info o vybranem vstupu]jako az to rozdelam tak muzu promerit zeme u spinacu a PW301 zda jde o stejnou, pokud jo tak asi staci vytahnout k Nano+Optoclenum jen 9V , 1x GND, a od kazdeho spinace 1 Non-GND drat ./?
[...] PW301 kde je vyvedeno 2×9V [...] pripadne ... CS702 k CD [...] tam je 2×5V a 1x7.7Vtak ani jedno pri standby neni, je tam 0V :) nakonec sem pouzil 5.9V (pin 28, CS8011, strana 26 uplne nahore, k radiu), kazdopadne diky za vsechny tve rady a postrehy :)
#include <avr/sleep.h> void setup() { int btnPower = 2; int btnPanel = 3; pinMode(btnPower, OUTPUT) pinMode(btnPanel, OUTPUT) delay(2000); digitalWrite(btnPower, 1); delay(500); digitalWrite(btnPower, 0); delay(2000); digitalWrite(btnPanel, 1); delay(500); digitalWrite(btnPanel, 0); } void loop() { sleep_enable(); set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_cpu(); }a pak z toho co sem nasel mi neni jasne, jake je nejvhodnejsi co nejvetsi uspani, zda ten pouzitej sleep_cpu, a jestli pak vlastne set_sleep_mode neni zbytecnej, nebo misto sleep_cpu pouzit sleep_mode kterej by mel zavolat ten nastavenej rezim, tak jestli pwr_down neni vice nez sleep_cpu?
#include <avr/sleep.h> #include <avr/power.h> #include <avr/wdt.h> void setup() { int btnPower = 2; int btnPanel = 3; pinMode(btnPower, OUTPUT) pinMode(btnPanel, OUTPUT) delay(2000); digitalWrite(btnPower, 1); delay(500); digitalWrite(btnPower, 0); delay(2000); digitalWrite(btnPanel, 1); delay(500); digitalWrite(btnPanel, 0); sleep_enable(); ADCSRA = 0; // disable ADC power_all_disable (); // disable all modules wdt_disable(); // disable Watchdog set_sleep_mode(SLEEP_MODE_PWR_DOWN); } void loop() { sleep_cpu(); }zanedbane trafo+diody v tvem vypoctu jsou asi jedno, protoze trafo+diody by stejne zralo, vez v standby (dle nekalibrovaneho co mozna 1-2W pridava meraku) je ~5W, ale Nano uspane pobezi jen kdyz vez bude prehravat zvuk z HTPC coz zere ~10-11W, kdyz HTPC nebude 5m hrat tak se uspi (HTPC) a vez se pres smartzasuvku kompletne odpoji od napajeni
Relé má zanedbatelný odpor v sepnutém stavu, takže to by určitě problém nebyl, ale přijde mi to jako kanón na vrabce. Výkonový darlington TIP120 bude asi stejně špatná volba (též má vysoké saturační napětí).
Pokud trváš na optočlenu, tak bych se zbavil rezistoru v sérii s výstupním tranzistorem. Pokud by to nechtělo fungovat, tak ještě zvýšit proud diodou (max 20mA, snížit sériový odpor na vstupu a/nebo vyřadit indikační diodu (nevím, co tam osazují)).
Osobně bych arduino připojil přímo. Tranzistor má v sobě a spínat proti zemi není problém. Podmínka je, že na tlačítku není větší napětí než 5V (napájení AVRka), což by asi mělo být splněno, protože IC801 má napájení 5V. Druhá podmínka je, že se výstup arduina nesmí nastavit na tvrdou úroveň H (tlačítka by nefungovala a při stisknutí by tekl proud, který může zničit výstup). Tj. používat pouze:
digitalWrite(pin, LOW); // tvrdá úroveň nula, tlačítko sepnuto
pinMode(pin, INPUT); // vysoká impedance, tlačítko rozepnuto
pinMode(pin, OUTPUT); delay(2000); digitalWrite(pin, LOW); delay(500); pinMode(pin, INPUT);nebo pocatecni prepnuti na OUTPUT v tomto pripade odpada? kdyz LOW je pri OUTPUT asi vychozi hodnota ne? nebo:
ad relé: Asi mi něco uniká, ale nedokážu si představit spolehlivé odpojení sama sebe. Po odpojení napájení arduina se ztratí ovládací signál toho relé a celé to začne od začátku (kmitá). Nákres?
ad optočlen: Samozřejmě nic nebrání jej použít samostatně ve vlastním zapojení. Vždy je potřeba omezit proud diodou na povolenou hodnotu (20mA), takže bez jednoho odporu se to nejspíš neobejde.
ad tranzistor: Vykuchat z nějakého šrotu? :)
ad přímo: Tak samozřejmě na vlastní nebezpečí, ale uvedu argumenty.
Arduino moloch kód moc neznám. Samotné MCU má jako výchozí nastavení po resetu vstup a datový registr (určuje hodnotu výstupu) je nula. Asi by mělo stačit pinMode(pin, OUTPUT), aby to začalo simulovat stisk tlačítka (výchozí výstup je LOW) a pak pinMode(pin, INPUT) pro puštění.
Jo a je potřeba si vybrat piny Arduina, které nejsou na desce již někam zapojeny (jako například UART či LEDka).
uz sem v tom celkem stracim a tak nevim zda nebude pro me nejvhodnejsi sahnout po tom kanonu v podobe 4ch rele 5v :)s tim ze nejdriv zkusim (s vykuchanyejma vystupnima R) ten 4ch OptoModul
Když na to chceš jít vědecky, tak při sepnutém tlačítku POWER bude na vstupu AD převodníku 5/(10+1+1+1.2+1.8+2.2)*(1+1+1.2+1.8+2.2) = 2.09V. Pro vedlejší tlačítko CD EDIT to bude 5/(10+1+1+1.2+1.8+2.2+2.7)*(1+1+1.2+1.8+2.2+2.7) = 2.49V a pro PLAY/REC 5/(10+1+1+1.2+1.8)*(1+1+1.2+1.8) = 1.67V. Rozhodovací úroveň bude tedy cca +/-0.2V. Pokud bude na "tlačítku" víc jak 0.2V, tak to nebude fungovat.
Přes tlačítko POWER teče proud 5/(10+1+1+1.2+1.8+2.2) = 0.3mA. Odpor spínače tedy musí být menší než 0.2V/0.3mA = 666ohm. To je peklo co?
Pokud už máš objednán ten opto modul, tak z něj vyhoď výstupní 3k rezistor a nejspíš to bude fungovat. Pokud ne, tak změř v sepnutém stavu napětí na výstupním tranzistoru (tlačítku) a asi bude > 0.2V. Pak bych zvyšoval proud diodou optočlenu.
ULN2803A je opět založen na darlingtonově tranzistoru, který má obecně vyšší saturační napětí C-E (úbytek v sepnutém stavu), než jeden samostaný tranzistor. Viz datasheet Figure 2, kde to začíná kolem 0.6V. Graf je spíš pro velké proudy, ale i tak bych si tipnul, že to nebude méně než 0.5V => fungovat to opět nebude.
Proti tomu s něčím jako BC547 se dokážeš dostat pod 0.1V viz datasheet Figure 2 křivka Vce. Odpor v bázi cokoliv mezi 1k až 10k.
ma to vyhody/nevyhody oproti tomu rele?Relé vyžaduje větší proud a produkuje napěťové špičky - většina jich nelze řídit přímo z procesoru, musíš tam dát tranzistor a diodu na pochytání těch špiček.
tady sem nasel neco podobneho , kde vidim zapojeni na TX ktere ma to Arduiono jen 1, nebo se to da zapojit i na PWM kterych ma vice?To je divné schéma, naopak to chceš připojit na libovolný z pinů, který nemá zabranou funkci - takže třeba na 2-13 a A0-A6 (a z jednoho arduina tak můžeš ovládat třeba 18 spínačů).
1. rele sepne+zacne odpocet a po jeho skonceni rozepne 2. zacne odpocet+rele_rozeple a po jeho skonceni sepne a zustane seplekdyz s tim Arduinem to vypada snadneji nez sem cekal asi pujdu tou cestou, i proto ze v budoucnu to treba pouziju i na neco jineho :)
13 - po přivedení impulzu na vstup IN (trigger), se spustí se odpočet T1, poté se relé sepne a běží odpočet T2, po dokončení odpočtu relé rozepneteda nevim zda pri Vez-Zasuvka-On kdy predtim by rele-celek bylo bez napeti, by pri zaroven dostupnem napeti na + a IN by to bralo zaroven jako privedeni impulsu, nebo si myslel neco uplne jineho?
"ta by byla na smartzasuvce, pri Vez-Zasuvka-On je vez ale v standby"z hw ktere nevypinam prave pocitam s:
etherwake mac_of_htpc curl vez/cm?cmnd=Power%201
standby ji prave zakazat nejdeV tom prípade by som tomu muzeálnemu kúsku doprial odpočinok, a zobral niečo iné. Zosíkov za pár mincí je plný aliexpress. Načo sa trápiť. Alebo, ak má IR ovládanie, tak by som to vyriešil odpísknutím cez infra diódu.
ovladac ma (nevim kde, ale sla by koupit za par stovek nahrada) ale stejne bych to nechtel resit umistenim "smart"-irda nekde naproti vezi a ovladat pres toMyslím že by stačilo nejaké IRDA upchávatko do 3.5 jacku zo zvukovky cez obyčajný audio kábel. Predáva sa to obvykle ako príslušenstvo ku smartfónom aby nimi vedel človek ovládať staré spotrebiče. Ale išlo by to aj ubastliť. A zaslať pár vĺn cez zvukovku na diaľkové je to najmenej, ak zoženieš kódy (alebo si požičiaš diaľkové nech tie kódy zistíš). Ale ja osobne by som do tej dosky nezasahoval keďže som neštudoval slaboprúd.
do repraku jdou 2x 4dratyTakže to má štvorpásmové repráky, to by som nevyhadzoval a správal by som sa k tomu slušne. Jednak je to rarita, druhak to má lepší zvuk ako moderné silikónové blany (ak sa tie pôvodné nepresučili alebo nenatrhli). Od 90' mám Grundig MAX 1, prekrásna dizajnovka. Takže ti držím palce a teším sa na blogísek.
Vtedy boli aj predvolené profily equalizéru (Rock, Klasika, Pop, Karaoke, ...) ktoré sa potom dali ešte ohnúť viacpásmovým equalizérom. Znelo to hnusne. Mal som jednu takú vežu čo mala podobný problém ako tvoja. Po zapnutí do elektriky sa jej rozsvietil displej na ktorom blikala tá valčeková hra z pákového gamblerského automatu (Vytočíš napr. 3x čerešňu, vyhráš nejaké body). Musel som to po zapnutí prepnúť, to blikanie ma nevýslovne rozčuľovalo.
Nakoniec skončila u kamaráta na záhrade, kde ju dorazil so slovami:
Urobím z nej štúdiový monitor, uvidíš aký bude mať čistý zvuk.
Vybral výhybky z reprákov, zvuk znel horšie a do týždňa tak roztrhal blany na reprákoch.
#include <avr/sleep.h> #include <avr/power.h> #include <avr/wdt.h> void setup() { int btnPower = 2; int btnPanel = 3; pinMode(btnPower, OUTPUT); pinMode(btnPanel, OUTPUT); delay(1000); digitalWrite(btnPower, 1); delay(250); digitalWrite(btnPower, 0); delay(3000); digitalWrite(btnPanel, 1); delay(250); digitalWrite(btnPanel, 0); sleep_enable(); ADCSRA = 0; // disable ADC power_all_disable(); // disable all modules wdt_disable(); // disable Watchdog set_sleep_mode(SLEEP_MODE_PWR_DOWN); } void loop() { sleep_cpu(); }a par fotek
Dva paralelně bylo samozřejmě myšleno paralelně k sobě (aby byl výsledný odpor 330/2) a tuhle dvojici pak v sérii s optočlenem (ne paralelně k optočlenu).
Většina optočlenů má mizerné CTR, takže aby to něco seplo, tak proud diodou musí být též velký. Zde je spínaný proud zanedbatelný, ale též to ovlivňuje saturační napětí, které může v jeho aplikaci tropit neplechu. Ale jak jsem psal, tak 330 bude nejspíš OK.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.