Odpuzovac na hlodavce

RV vicek.radek na cpost.cz
Středa Červenec 22 08:37:49 CEST 2015


Nejak jsem to moc nestudoval, ale proc si "nosnou" negenerujete v 
preruseni a burst, ktery neni tak zasadni na casovani nenechate v hlavni 
smycce? Ma to tu vyhodu, ze pak nemusite zjistovat jak co dlouho 
trva...staci jen osefovat vystupy do zesiku tak rychle aby se to 
preruseni stihlo a zbylo neco na hlavni smycku. Respektive i ty bursty 
je mozne si pocitat v preruseni - proste po x periodach signal bud 
pustite nebo vypnete.

Dulezite je, ze nosnou mate generovanou od HW timeru.

Radek Vicek


Dne 21.7.2015 v 21:58 Jaroslav Lukesh napsal(a):
> Dobrý den,
> chcípla nám kočka a nemá kdo lovit takové to chlupaté s ocáskem, no a
> než se sežene a vyroste nové kotě v lovce, tak nás v září hlodavci
> ohlodají. Našel jsem nějaké teorie i schémátka (vyloveno z archive.org a
> fakt si vzpomínám jenom velmi matně kde to mohlo být, proto je v
> příloze), no a protože prostě nemám plnou lékárničku s tím co tam
> chtějí, tak jsem to předělal do arduina. No tak se mě nechtělo na
> rozpálenou půdu.
> Nevím proč, ale zdá se mně, že to bylo 2x pomalejší než to mělo být
> (20-32-40kHz), no tak jsem udělal jednu úpravu a to tu, že oscilátor se
> nedělí dvěma a rovnou je brán jako Q0 (zde oznečené jako Q1). Schéma má
> číslování posunuté, je to tak i v tom programu. Axx je označené vývody 4011.
> Mohl by někdo kvalifikovaně odhadnout, kolik microsec zhruba může zabrat
> to zpracování v cyklu FOR...? Stačí mi zhruba nástřel ze zkušeností,
> kolik by to mohlo být, nikoli výpočet. Chci to na upřesnění toho DelayMicro
> A samozřejmě pokud máte nějaké tipy ohledně toho bitshiftu, či kritiku
> kódu že se to dělá jinak, tak se za to taky nebudu zlobit.
> No a největší sranda je ta, že když jsem tenhle kód teďka hodil do
> starého prostředí Arduino-1.5.1, tak jel 2x rychleji, než z UECIDE, vek
> terém jsem to psal a na které jsou upravené i čísla u DelayMicrosec a to
> mám v obou vybranou stejnou desku (Arduino Nano). Asi mi v tom taky
> řádili mimozemšťani, jako komusi nedávno v C::B.
> Děkuji, JL.
>
> #include <avr/wdt.h> // watchdog
>
> #define LED 13
> #define OUT1 9;  // pravá kaskáda tranzistorů
> #define OUT2 10; // levá
>
> byte SW1 = 1;   // 0 = hmyz, 1 = zvířata
>
> void hash_4020_1(){
>
>      // binární dělička 4020
>      // schéma plašiče je blbě číslované, začíná Q1 místo Q0 jak je v datasheetu
>      byte Q01 = 0;
>      byte Q04 = 0;
>      byte Q06 = 0;
>      byte Q08 = 0;
>      byte Q10 = 0;
>      byte Q12 = 0;
>      byte Q13 = 0;
>      byte Q14 = 0;
>
>      byte A11 = 0;
>      byte A12 = 0;
>      byte A09 = 0;
>      byte A10 = 0;
>
>
>          for (unsigned int i = 0; i <= 16383 ; i++){     // pin QC = i, ale nějak to nevycházelo moc nízko, tak i=Q1
>
>              Q01 = i & 1 ; // kaskáda binárních děliček
>              Q04 = i>>3 & 1 ;
>              Q06 = i>>5 & 1 ;
>              Q08 = i>>7 & 1 ;
>              Q10 = i>>9 & 1 ;
>              Q12 = i>>11 & 1 ;
>              Q13 = i>>12 & 1 ;
>              Q14 = i>>13 & 1 ;
>
>              if (SW1 == 0) // 4011
>                  A12 = Q12 | Q08 ;
>              else
>                  A12 = Q12 | Q08 | Q04 ;
>
>              A11 = not(A12 | Q01) ;
>              A10 = not(A11 | A12) ;
>
>              bitWrite(PORTB,1,A11);// D9     // pravá kaskáda tranzistorů
>              bitWrite(PORTB,2,A10);// D10    // levá
>
>              bitWrite(PORTB,5,Q14); // D13   // BLIK
>
>              if     (Q10 == 0 and Q13 == 0) delayMicroseconds(20); // řízení kmitočtu oscilátoru
>              else if(Q10 == 1 and Q13 == 0) delayMicroseconds(14);
>              else if(Q10 == 0 and Q13 == 1) delayMicroseconds(14);
>              else if(Q10 == 1 and Q13 == 1) delayMicroseconds(10);
>           }
>      }
>
> void setup() {
>       wdt_enable(WDTO_8S); //interní watchdog 8 vteřin - hodnoty WDTO_15MS, 30MS, 60MS, 120MS, 250MS, 500MS, 1S, 2S, 4S, 8S
>
>       pinMode(LED, OUTPUT);
>       digitalWrite(LED, 1);
>       delay(1000);
>       digitalWrite(LED, 0);
>
>       digitalWrite(10, 0);
>       tone(9,1000,100);
>
>       wdt_reset(); // watchdog OK
> }
>
> void loop() {
>      hash_4020_1();
>      wdt_reset(); // watchdog OK
> }
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
---------------------------------

Pro případ, že tato zpráva obsahuje návrh smlouvy, Česká pošta, s.p. vylučuje možnost přijetí návrhu smlouvy s jakýmikoli změnami, dodatky či odchylkami. Navržení změn, dodatků či odchylek z Vaší strany považujeme toliko za podnět k dalšímu jednání o obsahu smlouvy. Až do okamžiku podpisu/uzavření smlouvy nejsme jakoukoli naší nabídkou vázáni. Výsledky jednání předcházejících uzavření smlouvy považuje Česká pošta, s.p. za nezávazné. Česká pošta, s.p. nenese žádnou odpovědnost za případné ukončení nebo přerušení jednání o smlouvě, a to bez ohledu na jeho důvod.

 

Tento e-mail včetně příloh může obsahovat důvěrné informace. Jestliže nejste zamýšlený adresát tohoto e-mailu, pak jakákoliv forma zveřejnění, tisk, kopírování, distribuce nebo šíření tohoto e-mailu a připojených příloh je přísně zakázáno. Pokud obdržíte tento e-mail omylem, oznamte to neprodleně jeho odesilateli a okamžitě tento e-mail včetně jeho příloh trvale vymažte ze svého systému. Odesilatel e-mailu neodpovídá za jakoukoliv škodu způsobenou modifikacemi či zpožděním přenosu e-mailu.


In the event that this email contains a contract proposal, Česká pošta, s.p. hereby excludes acceptance of the contract proposal with alterations, amendments and adjustments of any nature. Your proposal of alterations, amendments and adjustments may only be subject of further contract negotiation. Česká pošta, s.p. is not bound by any of its offer until the contract is concluded. Česká pošta s.p. considers the result of contract negotiations preceding the conclusion of contract non-binding. Česká pošta, s.p. is not liable for termination or interruption of any contract negotiation for whatever reason.

 

This e-mail and any attached files may contain confidential information. If you are not the intended addressee of this e-mail, you are hereby notified that any disclosure, printing, copying, distribution or dissemination of this e-mail and any attached files is strictly prohibited. If you receive this e-mail in error, please immediately notify the sender and permanently delete this e-mail and its attachments from your system. The sender of this e-mail does not accept liability for any damage that may be caused by any modifications or delay in the transmission of it.



Další informace o konferenci Hw-list