Fórum témák

» Több friss téma
Fórum » Motor idözitö kapcsoló
Lapozás: OK   1 / 1
(#) cottitomi hozzászólása Jan 12, 2012 /
 
Sziasztok!

Egy olyan áramkör kellene nekem ami egy ventillátort szabályozna.
Ahányszor megnyomom a bekapcs gombot , annyiszor x-ideig fog majd müködni.

Pl : 1x 5 percig
2x 10 percig
3x 15 percig stb ..

Köszönöm a segítséget.
(#) lorylaci válasza cottitomi hozzászólására (») Jan 12, 2012 /
 
Azt egy monostabil multivibrátorral könnyedén elérheted, hogy a gomb megnyomására 5 percig működjön, azonban a többszörös megnyomásra nekem is csak mikrokontrolleres ötletem van.
(#) proba válasza cottitomi hozzászólására (») Jan 12, 2012 /
 
Ha egyszerűen akarod, akkor poti +indítógomb.Ha csak gombbal akarod akkor programozás nélkül talán egy előre hátra számláló ,egy alapidős oszcillátor meg némi kapu segítségével.A számláló kimenete ha nulla, minden alapban, amikor gombot nyomsz egyet beszámol,kimenetet bekapcsolja ,elindítja az oszcillátort.Ennek a kimenete a hátra számláló bemenetre kötve.Ha az adott impulzusszám megjött (számláló kimenet ismét nulla ) leáll az egész.
Ami még bonyolítja ,valamiféle kijelzés is kell rá,tudd hol tart,mennyit léptettél be rajta. (egyszóval alkatrész temető min 3-4 IC)
(#) cottitomi válasza lorylaci hozzászólására (») Jan 12, 2012 /
 
Köszi a gyors valaszt , de az a mikrokontrolleres ötletet hogy is lehetne megvalositani?

Köszi ...
(#) Massawa válasza cottitomi hozzászólására (») Jan 12, 2012 /
 
A legegyszerübb, ha kialakitasz egy számlálót (5 percre) meg többfokozatú osztót (lehet diszkrét elemekböl vagy akár egy mikrokontrollerrel).
A gombnyomásra inditod a számlálót, és az osztofokozatot.
Egy ismételt gombnyomásra egy másik fokozatot (egy regiszterben meghatározod, hogy hány ilyen fokozatot akarsz - de tul sok, már bajos lesz, mert elveszted az ellenörzést, hogy milyen fokozatban is vagy - igy igy oldottam meg a falfütést a fürdöszobában, de csak 3 fokozatban 1,2 ill 3 oráig megy).
(#) Inhouse válasza cottitomi hozzászólására (») Jan 12, 2012 /
 
kell egy perces intervallumban is stabil időzítő kapcsolás, amit az időzítő tagokkal 5p/10p/15p között lehet kapcsolni. Kell elé egy 4017, ennek az órajelét adod a gombbal. Ahányszor megnyomod, az a számú kimenete él, azzal kell egy tranzisztorral kapcsolni az időzítő tagot az időzítő kapcsolásban. Amikor lejár az időzítő, reseteli a 4017-et. A 4017 10-ig tud számolni.

Üdv
Inhouse
(#) cottitomi válasza Inhouse hozzászólására (») Jan 12, 2012 /
 
Üdv Inhouse , egy konkret kapcsolast is tudnal esetleg mutatni? Köszi ...
(#) t0bi válasza cottitomi hozzászólására (») Jan 12, 2012 /
 
Helló!
Éppen MSP430-as mikrokontrollerekkel próbálkozom és ügyes kis feladatot találtál ki. :yes:
icserny 2. cikkében van egy példaprogram, amit kicsit át lehetett alakítani.4_2. Példa
Ha az áramkört bekapcsolod, akkor villognak a ledek. Az első gombnyomásra 5 percre magas szintü lesz a P1.7 kimenet, ha lejárt az 5 perc, akkor visszáll 0-ra és megint villognak. Ha többször nyomod meg a gombot, akkor a ciklus többször játszódik le. Meg lehet oldani, hogy néhány led segítségével digitálisan mutassa az áramkőr, hányszor nyomtad meg a gombot, ill. hány ciklus (hányszor öt perc) van még hátra.
  1. #include  "io430.h"
  2.     #include "intrinsics.h"
  3.      
  4.     //--- Az interrupt szinten módosított változó 'volatile' legyen!
  5.     volatile int jelzo = 0;      // Jelző a főprogram irányításához
  6.      
  7.     void main(void) {
  8.              int i;
  9.      
  10.              WDTCTL = WDTPW + WDTHOLD;  // Letiltjuk a watchdog időzítőt
  11.     //--- P1 PORT beállítása --------------------------------------------
  12.              P1OUT = 0;                 // Minden P1.x alacsony állapotba
  13.              P1DIR = ~BIT3;             // P1.3 bemenet, a többi kimenet
  14.     //--- P2 PORT beállítása kimenetnek     -----------------------------  
  15.              P2SEL = 0;                 // P2.x legyen digitális I/O
  16.              P2DIR = 0xFF;              // Minden P2.x legyen kimenet
  17.              P2OUT = 0;                 // Minden P2.x alacsony állapotba
  18.     //-------------------------------------------------------------------
  19.     // P1.3 bemenet beállítása: interrupt minden lefutó él beérkezésekor
  20.     //-------------------------------------------------------------------
  21.     //P1REN |= BIT3;             // P1.3 felhúzását itt engedélyezhetnénk
  22.              P1IES |= BIT3;             // P1.3 lefutó élre érzékeny
  23.              P1IFG &= ~BIT3;            // P1.3 IFG törlése
  24.              P1IE |= BIT3;              // P1.3 interrupt engedélyezése
  25.     //--- Programmegszakítás engedélyezése és a fő programhurok ---------
  26.              __enable_interrupt();      // A programmegszakítás engedélyezése
  27.  
  28.     while(1)
  29.     {
  30.       P1OUT &= ~BIT7;
  31.       if(jelzo == 0)
  32.          {
  33.            P1OUT ^= BIT0;                //P1.0 komplementáljuk
  34.            __delay_cycles(300000);       //Várakozás kb. 300 ms ideig
  35.          }
  36.       else
  37.          {
  38.           P1OUT |= BIT7;
  39.           for(i=0; i<(jelzo); i++)
  40.              {
  41.              P1OUT = jelzo;
  42.              __delay_cycles(300000000);      //Várakozás kb. 5 perc ideig
  43.              jelzo--;
  44.              }
  45.           }
  46.     }
  47. }
  48.     //--- Port 1 programmegszakítás kiszolgálása ------------------------
  49.     #pragma vector=PORT1_VECTOR
  50.     __interrupt void Port_1(void)
  51.     {
  52.              jelzo++;                   // következő állapotba vált
  53.              jelzo &= 0x07;             // jelzo nem lehet 7-nél nagyobb!
  54.              P1IFG &= ~BIT3;            // P1.3 interrupt jelzőbit törlése
  55.     }
(#) Bonca válasza cottitomi hozzászólására (») Jan 12, 2012 /
 
Hello!
Kiindulásnak itt egy elgondolás:
  1. unsigned short int TMR0_overflow;
  2.  
  3. void interrupt() {
  4.     if(INTCON.INT0IF) {                 // gombnyomás érkezett
  5.         T0CON.TMR0ON = 1;               // TMR0 elindítása
  6.         TMR0_overflow += 5;             // hozzáadva 5 perc
  7.         LATC.B0 = 1;                    // kimenet bekapcsolása
  8.         INTCO.INT0IF = 0;               // jelzőbit nullázása
  9.     }
  10.     if(INTCON.TMR0IF) {                 // TMR0 FF-ből 00-ba fordult
  11.         TMR0_overflow--;                // letelt egy perc
  12.         INTCON.TMR0IF = 0;              // jelzőbit nullázása
  13.     }
  14. }
  15.  
  16. void main() {
  17.     OSCCON = 0x62;                      // pdf 32.
  18.     ADCON1 = 0x0F;                      // pdf 226.
  19.     CMCON = 0x07;                       // pdf 235.
  20.     TRISB = 0b10000000;                 // B port 0. lába kimenet
  21.     LATB = 0;                           // B port minden lába logikai 0
  22.     TRISC = 0;                          // C port minden lába kimenet
  23.     LATC = 0;                           // C port minden lába logikai 0
  24.     INTCON = 0b11010000;                // pdf 95.
  25.     INTCON2 = 0b00000100;               // INTO lefutó élre figyel, pdf 96.
  26.     T0CON = 0b00000111;                 // 256-os előosztó, felhúzóellenállás, pdf 125.
  27.     TMR0H = 0;                          // kinullázza a Timer0 tartalmát
  28.     TMR0L = 0;                          // fontos a sorrend: 1.TMR0H 2.TMR0L
  29.  
  30.     while(1) {
  31.         if(TMR0_overflow==0) {
  32.             LATC.B0 = 1;                // kimenet kikapcsolása
  33.             T0CON.TMR0ON = 0;           // TMR0 megállítása
  34.         }
  35.     }
  36. }


A lényege, hogy egy 18F2520-as mikrovezérlő 4 MHz-es órajellel megy. A Timer0 értéke 1 us-onként nő eggyel. Ha 16 bites módban számol a Timer0, és 256-os előosztója van, akkor kb. 67 másodpercig lehet vele elszámolni, majd FF-ből átfordul 00-ba. Ez megszakítást generál. Minden ilyen megszakítás csökkenti eggyel a TMR0_overflow változó értékét. Minden gombnyomás növeli a TMR_overflow értékét 5-tel.
Ha pontosan kell az egy perc, akkor a Timer0-t nem nulláról kell indítani, hanem 7 másodpercnyi órajellel fel kell tölteni (pontosan 67.107.840-60.000.000).

Bonca

venti.jpg
    
(#) Marko Ramiusz válasza cottitomi hozzászólására (») Jan 12, 2012 /
 
Szia, cottitomi! Szerintem ez ismét egy olyan feladat, amit felesleges mikrokontrollerel túlbonyolítani főleg, ha nem tudsz, vagy nincsen lehetőséged programozni, plusz egy dologhoz minek venni egy komplett fejlesztőrendszert. Lehet kapni gyári összegző időzítőket, más néven retentív időzítőt. Jah, és gondolom nem szabályozni szeretnéd, hanem vezérelni. Jó, kicsit drágább a beszerzése, de még mindig olcsóbb, mint a programozás. Persze, az is lehet, hogy magad szeretnéd megépíteni az áramkört. Üdv.: Yoe
(#) Bonca válasza Marko Ramiusz hozzászólására (») Jan 12, 2012 /
 
Hello!
Nem mondanám bonyolultnak egy 8 lábú mikrovezérlő és egy relé összehuzalozását. Aki a digitális technikát szereti, annak sem bonyolult ez a feladat kapukból összeépítve. Az általam írt program fejlesztője a MikroC pedig ingyenes ekkora terjedelmű kódra.
Szívesen veszem a te ötletedet erre a problémára.

Bonca
(#) Bonca válasza Bonca hozzászólására (») Jan 12, 2012 /
 
Elszámoltam:
A TMR0 16 bites módban 4 MHz PIC órajellel és 256-os előosztóval csak 16,77696 másodpercig tud elszámolni:
(1/(4.000.000/4))*256*65535=16,77696 s
Minden gombnyomás 300 másodpercet ad hozzá az időzítéshez, azaz 18-cal kell növelni minden gombnyomásra a változót, nem pedig 5-tel:
300/16,77696=17,88.
Ha a TMR0_overflow marad "unsigned short int" típusú, akkor maximum 9-szer lehet 5 perceket időzíteni.

Bonca
(#) Marko Ramiusz válasza Bonca hozzászólására (») Jan 12, 2012 /
 
Szia, Bonca! Nyilván nem lehet bonyolult az egész, amennyiben ismerjük, magát a programozást. Jól írtad: "....Aki a digitális technikát ismeri...". Nekem a kérdésre, a leírtak a megoldásom. Üdv.: Yoe
(#) Bonca válasza Marko Ramiusz hozzászólására (») Jan 12, 2012 /
 
Kíváncsivá tettél, nem foglalkoztam még ilyennel. Mondj valami konkrét eszközt, amivel meg lehet csinálni ezt az időzítést. Jól sejtem, ezeket is programozni kell?

Bonca
(#) Inhouse válasza cottitomi hozzászólására (») Jan 13, 2012 /
 
Ha biztosra akarsz menni, Proli007el rajzoltass egyet, az tuti. Ha megkéred szerintem megcsinálja neked a rajzot, de ha idetéved, lehet, hogy magától is... igaz Proli007?

Üdv
Inhouse
(#) Hp41C válasza Bonca hozzászólására (») Jan 13, 2012 /
 
@ Bonca, @ t0bi:

Miért kell ehhez a feladathoz egy soklábú kontroller?

Egy pic10F200 egy 6 lábú SOT23 tokban meg tudja csinálni: 4MHz belső oszcilátor, Timer 0 - ugyan 8 bites, de azért van még 16 byte RAM, amiben bőven megcsinálható a Timer0 atfordulásainak számolása. A táp lábakon kívül 4 kivezetése van: Egy a motor vezérlésére, egy a nyomógombnak és egy vészstop, még mindig marad 1. Az ára pedig 52 Ft+ 27% Áfa - Nem éri el a kapcsolást végző tranzisztor / fet / triak / relé árát... Csak el ne vesszen - a mérete miatt...
(#) cottitomi válasza Hp41C hozzászólására (») Jan 14, 2012 /
 
Huu ez tök jo es egyszerü , tudnal segiteni a rajzban , nem vagyok profi , köszi elöre is ...
(#) Bonca válasza Hp41C hozzászólására (») Jan 14, 2012 /
 
Nem kell soklábú mikrovezérlő. Az elgondolást ötletadónak szántam, de ki akartam próbálni, mielőtt ide beírtam a kódot. A 18F2520-at viszonylag jól ismerem, és ez volt kéznél. Természetesen a 10F200 is elegendő erre a feladatra, bár nem támogatott a MikroC-ben. Ha kevés lábszámú vezérlő kell, akkor 18F1822 nyolclábút szeretem használni.
A speciális reléknél biztosan olcsóbb ez a megoldás, még ha PIC programozó klónt is kell építeni. Nekem az SMD kivitel kijött 2000 Ft-ból. A MikroC ingyen van, a nyomógomb, dobozolás, relé szintén nem nagy tétel. Mivel cottitomit érdekli a mikrovezérlős megoldás, gondolom, a programozót nem csak erre az egy alkalomra használná.

Bonca
(#) t0bi válasza Hp41C hozzászólására (») Jan 14, 2012 /
 
Természetesen mindenki a saját megoldását tartja a legjobbnak (hát persze, különben nem azt írta volna a probléma megoldásának).
Amióta elolvastam icserny cikkeit, az MSP430 LaunchPad-ot tartom a legjobbnak kisebb feladatokra. 800-900 Ft-ért kapsz két kontrollert, programozót, fejlesztőt, tartozékokat, stb, úgy, hogy kezdőknek is könnyű megérteni és ha csak egyszer használod az életben, akkor is megéri. A cikkek alapján a laikus is rövid idő alatt meg tud írni egy kis programot, garantált a sikerélmény (hátha cottitomi így megszereti a programozást?)
A Te megoldásod nagyon korrekt, de kell hozzá PIC, vagy AVR égető ennél azért több pénzért, vagy utánajárás a programozáshoz, arról nem is beszélve, hogy egy smd alkatrész beforrasztása sok cifra körmondatot varázsol a kezdők ajkaira (néha az enyémre is ).
Egyéb megoldásoknál a hardver lesz bonyább, ami szintén meg tudja nehezíteni a dolgokat.
(#) Hp41C válasza cottitomi hozzászólására (») Jan 14, 2012 /
 
Szia!

Megrajzoltam. A rajz a DIP8 tokozású kontrollerhez készült. A lábak funkciójának megtartásával átrajzolható a SOT23-6 tokosra is.

A programozáskor használt két kivezetés lett a két nyomógomb bemenete, a harmadik bemenet a MCLR (reset), de lehet más bemeneti funkciót is adni neki.

Gyakorlatilag a programozó adapteren megoldható a kapcsolás. 10F200 adatlap

A rajzon a J1 csatlakozó a programozó (pl. PICKit2) csatlakozója is egyben. A J2 pedig már a felhasználás. A GP0 kivezetésen levő ellenállás a kimenetet védi. Ide csatlakoztatható a tranzisztor / FET / optocsatoló / stb. Közvetlenül csak kis fogyasztású relé védődiódával. Nagyobb fogyasztásúhoz egy meghajtó tarnzisztort ajánlok.

Motor.JPG
    
(#) Hp41C válasza Hp41C hozzászólására (») Jan 14, 2012 /
 
Itt a belevaló - Csak 68 utasítás!! Abszolut kódra, Release módban kell fordítani.

Motor.asm
    
(#) cottitomi válasza Hp41C hozzászólására (») Jan 15, 2012 /
 
Hello! Nem tudtam hogy ezt is programozni kell, igy nem hiszem hogy meg tudom csinalni. De azert köszi ...
(#) Hp41C válasza cottitomi hozzászólására (») Jan 15, 2012 /
 
Ha kell, felprogramozott kontrollert tudok küldeni. csak DIP tokozásút.
(#) cottitomi válasza Hp41C hozzászólására (») Jan 15, 2012 /
 
Örülök neki , rendes töled ird meg emailben hogy mennyibe kerül es hogy hova utaljam, akkor kellene is 4 darab. köszi elöre is.
c.tomi@freemail.hu
(#) bodab hozzászólása Jan 22, 2012 /
 
Üdv mindenkinek
A segítségeteket szeretném kérni, mert villanyszerelési témában nagyon nem vagyok jártas.

A megoldandó probléma a következő:
Adott egy 230v-os 500w teljesítményű hajtóműves motor, ezt szeretném szakaszosan( a motor 1percet menjen, várjon 5 percet, majd megint menjen 1 percet...) működtetni. Próbáltam utána olvasni a neten, hogy időrelével vagy ütemadóval lehetne vezérelni, de nem nagyon lettem okosabb.
Olyan megoldás érdekelne, ha létezik ami nem túl drága mint egy gyári relé de biztonságosan működik.
A villanyszerelő kolléga szerint 2 db relé kellene hozzá ami min. 10-15 e ft, ezt soknak találom. A gyári konnektorba dugható digitális kapcsolók jók lehetnek ilyen célra?
Köszönöm előre is a segítséget.
(#) Hp41C válasza bodab hozzászólására (») Jan 23, 2012 /
 
Itt van a megoldás 10F200 -zal. Ez ugyan egy kicsit mást csinál, de ha jól megnézed a programot, számolja a perceket. Innen már elég könnyen meg lehet oldani a te feladatodat is. Ára: SOT23-6 tokban 52 Ft + Áfa + posta a ChipC@d -tól. Csak egy tranzisztor + relé kell még hozzá...
(#) Bergi hozzászólása Máj 21, 2012 /
 
Sziasztok!
pici segítséget - tanácsot kérek tőletek!
Használati melegvíz cirkulációs szivattyú vezérlés ügyében kérek tanácsot, tippet.
A lakás egyik végében van a kazán, a másikban pedig a konyha. A konyhában van egy csengőkapcsoló, melynek megnyomását követően a szivattyú kb. 30 mp-ig keringetné a melegvizet.

1, Eredetileg egy időrelével oldottam volna meg, de hát ami 3-4 e Ft-ba kerül az nem jó, ami jó az 7-10 e Ft körül van.

2, Lépcsóházi autómata is megfelelő lenne, sőt tökéletes, de hát az is 5-6 e körül van.

3, Anno vettem párszáz forintért a ventillátorba időzítőt, ami tök jól működik, de sajna nem bírna el egy 250W-os szivattyút.
Kérdés, lehet ezt a vezérlést használni úgy, hogy egy relét vagy mágneskapcsolót működtet, ezáltal kikerülve a teljesítmény problematikáját?
Ha ez nem jó, van más tippetek?
Előre is Köszönöm a segítségeteket.
(#) emanuelhedrich hozzászólása Márc 12, 2014 /
 
Sziasztok!
Segitségeteket kérém egy olyan feladatban, hogy van e megoldás arra, hogy az ablakot, egy időzítő segítségével be tudnám hajtani ?
Köszönöm a segítséget!
(#) proli007 válasza emanuelhedrich hozzászólására (») Márc 12, 2014 /
 
Hello! Ebből nem lehet megtudni, mit szeretnél időzíteni, csak azt, hogy mit szeretnél működtetni. De sem az időzítés idejét - indítását, sem működtetés módját, sem irány, vagy is nincs mire válaszolni.. üdv!
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem