|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
arksi Član
Pridružen-a: Sre 03 Sep 2008 10:19 Prispevkov: 741 Aktiv.: 3.89 Kraj: Dolenjska
|
Objavljeno: Tor Feb 14, 2017 10:25 am Naslov sporočila: |
|
|
aggr3ssiv je napisal/a: |
Saj .hex lahko odprem, vendar mi tako ali tako nič ne koristi, ker se je ne da pretvoriti nazaj v C. |
Zakaj pa bi pretvarjal nazaj v C? Če znaš popraviti program, potem ga ahko napišeš tudi na novo, a ne?
PIC-ov jaz ne poznam. Kot sam vidiš je tvoj PIC drugačen od Silvota, ne bi rekel, da je vse kompatibilno. Ne moreš HEX zapeči "kar nekam". HEX je narejen za točno določen tip PIC-a.
Še namig za programiranje lastnega programa. Izbereš si dva izhoda, ki ju izmenično prižigaš: 1->0 in 0->1 s frekvenco 50hz. Tiristor prožis na interval cca. ene sekunde na tretjem izhodnem pinu.
|
|
Nazaj na vrh |
|
|
aggr3ssiv Neznanec
Pridružen-a: Sob 01 Nov 2014 19:27 Prispevkov: 6 Aktiv.: 0.05
|
Objavljeno: Tor Feb 14, 2017 5:49 pm Naslov sporočila: |
|
|
Bom povprašal v šoli, kako je s spremembo programa. Za začetek bom poizkusil z Arduinotom.
|
|
Nazaj na vrh |
|
|
aggr3ssiv Neznanec
Pridružen-a: Sob 01 Nov 2014 19:27 Prispevkov: 6 Aktiv.: 0.05
|
Objavljeno: Pon Mar 06, 2017 11:09 pm Naslov sporočila: |
|
|
Pozdravljeni!
Imam še eno vprašanje glede električnega pastirja, no bolj prošnjo. Namreč delujoč program za arduinota sem uspel spisat, ustavilo se je pa pri MikroC. Uporabljam PIC12f675 in se ze kar nekaj časa trudim s pisanjem programa, ampak mi ne gre najbolje.
Spisati sem uspel do te mere, a sedaj ne vem več kje tiči problem, zato vas prosim za pomoč.
Hvala za morebitne odgovore.
Program prekopiran iz MikroC:
Koda: |
//define 12F675
//ifdef(12F675){
#define pin2 RB5
#define pin3 RB4
#define pin5 RB2
//}
void main() {
PORTB = 0;
TRISB &= ~(1 << pin2);
TRISB &= ~(1 << pin3);
TRISB &= ~(1 << pin5);
while(1){
int i = 0;
for(i = 0; i < 50; i = i + 1){
if((PORTB & (1 << pin2)) > 0){
PORTB &= ~(1 << pin2);
PORTB |= (1 << pin3);
delay_ms(10);
}else{
PORTB &= ~(1 << pin3);
PORTB |= (1 << pin2);
delay_ms(10);
}
}
if((PORTB & (1 << pin5)) > 0){
PORTB &= ~(1 << pin5);
}else{
PORTB |= (1 << pin5);
}
}
}
... in delujoč arduino program ...
const int pin12 = 12;
const int pin11 = 11;
const int tiristor = 10;
void setup() {
pinMode(pin12, OUTPUT);
pinMode(pin11, OUTPUT);
pinMode(tiristor, OUTPUT);
}
void loop() {
for(int iStevec=1;iStevec>0;iStevec++)
{
digitalWrite(pin12, LOW), digitalWrite(pin11, HIGH);
delay(20);
digitalWrite(pin11, LOW), digitalWrite(pin12, HIGH);
delay(20);
if(iStevec%50==0)
{
digitalWrite(tiristor, HIGH), digitalWrite(tiristor, LOW);
}
}
} |
|
|
Nazaj na vrh |
|
|
Youtup Član
Pridružen-a: Pon 22 Avg 2016 23:55 Prispevkov: 28 Aktiv.: 0.30 Kraj: Zagradec
|
Objavljeno: Pet Mar 10, 2017 8:53 am Naslov sporočila: Baterijski električni pastir |
|
|
Pozdravljeni!
Vprašanje se nanaša na električni pastir našega člana Silva.
Vprašanje imam glede programiranja oziroma nastavljanja frekvence in pulzov.
L293, katerega uporabim kot astabilc, prožim s frekvenco 50Hz. Glede na to, da je zadeva na baterije, je mogoče že gdo poskušal frekvenco povečati/pomanjšati. Kakšna prednost v tem ?
Zanima me tudi na kakšen interval prožite tiristor ? Pulze na 1s ? Tukaj slutim; manjkrat ga odpiram manjkrat spraznim kondenzatorje posledično tudi manjša poraba. Bi to držalo ?
LP
_________________ Lp, Jure |
|
Nazaj na vrh |
|
|
Youtup Član
Pridružen-a: Pon 22 Avg 2016 23:55 Prispevkov: 28 Aktiv.: 0.30 Kraj: Zagradec
|
Objavljeno: Sre Mar 15, 2017 3:11 pm Naslov sporočila: Baterijski električni pastir |
|
|
Kod je razvidno iz prilog je pastir sestavljen.
Težave imam s preizkušanjem . Priključim na 12V, poraba cca 220mA. Nekaj je slišat a ne ravno glasno. Preizkusil z iskriščem je 1x vsekal lepo. To je bilo pa to. Sedaj samo lepo mirno nekaj pk pk pk dela. Čip L293 se ogromno greje kljub dodatnemu hladilniku (katerega ni na sliki)...
Takole sem pa programček naštimal:
const int pin12 = 12;
const int pin11 = 11;
const int tiristor = 5;
void setup()
{
pinMode(pin12, OUTPUT);
pinMode(pin11, OUTPUT);
pinMode(tiristor, OUTPUT);
}
void loop()
{
for(int iStevec=1;iStevec>0;iStevec++)
{
digitalWrite(pin12, LOW), digitalWrite(pin11, HIGH);
delay(50);
digitalWrite(pin11, LOW), digitalWrite(pin12, HIGH);
delay(50);
if(iStevec==50)
{
digitalWrite(tiristor, HIGH),
delay(1);
digitalWrite(tiristor, LOW);iStevec=0;
}
}
}
Ima gdo kakšen nasvet kje naj pričnem s previrjanjem ?
LP
Opis: |
|
Download |
Ime datoteke: |
priloge.zip |
Velikost datoteke: |
7.36 MB |
Downloadano: |
12 krat |
_________________ Lp, Jure |
|
Nazaj na vrh |
|
|
arksi Član
Pridružen-a: Sre 03 Sep 2008 10:19 Prispevkov: 741 Aktiv.: 3.89 Kraj: Dolenjska
|
Objavljeno: Čet Mar 16, 2017 8:28 am Naslov sporočila: Re: Baterijski električni pastir |
|
|
Youtup je napisal/a: |
.......Zanima me tudi na kakšen interval prožite tiristor ? Pulze na 1s ? Tukaj slutim; manjkrat ga odpiram manjkrat spraznim kondenzatorje posledično tudi manjša poraba. Bi to držalo ? LP |
Pri večini pastirjev je impulz na cca 1s. Seveda je tako, kot praviš. Več bo impulzov v časovni enoti, večja bo poraba in obratno.
Youtup je napisal/a: |
Kod je razvidno iz prilog je pastir sestavljen.
Težave imam s preizkušanjem . Priključim na 12V, poraba cca 220mA. Nekaj je slišat a ne ravno glasno. Preizkusil z iskriščem je 1x vsekal lepo. To je bilo pa to. Sedaj samo lepo mirno nekaj pk pk pk dela. Čip L293 se ogromno greje kljub dodatnemu hladilniku (katerega ni na sliki)....... |
Pastir, ki ga je izdelal Silvo je kar "požrešen" s tokom, saj uporablja običajen trafo obrnjen okoli. Večina pastirjev, ki ima manjšo porabo uporablja za zvišanje napetosti svičer (neke vrste feritni transformator).
Najprej preveri, če je na vhodu 12V trafota frekvenca 50Hz.
Če prav vidim je v tvojem programu zakasnitev "delay(50);" kar pomeni verjetno 50ms.
Koliko časa pa traja ena perioda pri frekvenci 50Hz??? Preveri še enkrat.
Tiristor vklopi približno na eno sekundo. Čas vklopa tiristorja naj ne bo predolg niti ne prekratek. malo moraš poeksperimentirati (če se prav spomnim sem jaz uporabil 100ms odprt tiristor).
Ko boš prepričan, da je frekvenca 50Hz preveri, če si trafo obrnil prav.
Žici, iz visokonapetostnega trafota daj cca 2 - 3mm skupaj in, če je vse ok, mora "sekat" iskra.
|
|
Nazaj na vrh |
|
|
Youtup Član
Pridružen-a: Pon 22 Avg 2016 23:55 Prispevkov: 28 Aktiv.: 0.30 Kraj: Zagradec
|
Objavljeno: Pon Mar 27, 2017 12:26 pm Naslov sporočila: |
|
|
Zadevo sem nekako spravil k življenju, sicer zamenjal oba kondenzatorja. Izbral sem manjša dva velikosti 1,5 in pa 10 mikrofaradov. Zadeva je na delovnem pultu kazala veliko življenja. Ob vgradnji v dozo pa zopet na starih potah.
Je možno da mi porabo dvignu na 1A Mal velik kaj ne ?
Sam l293 se greje zelo hitro...
_________________ Lp, Jure |
|
Nazaj na vrh |
|
|
arksi Član
Pridružen-a: Sre 03 Sep 2008 10:19 Prispevkov: 741 Aktiv.: 3.89 Kraj: Dolenjska
|
Objavljeno: Pon Mar 27, 2017 12:56 pm Naslov sporočila: |
|
|
Kako si zadevo spravil k življenju? A si zamenjal samo kondenzatorja, ali si tudi popravil program. A je frekvenca 50Hz? Zakaj pravzaprav zamenjati kondenzatorja???
Poraba gre pri meni (v sunkih polnjenja) do cca 700mA, kar je že kar "požrešno". Poraba 1A se mi zdi malo veliko.
L293 se sicer med delovanjem greje, ampak ne prehudo (v mojem pastirju). Dodaj na njega hladilno rebro in bo lažje "dihal".
Povej nam še kašen tiristor si uporabil?
|
|
Nazaj na vrh |
|
|
Youtup Član
Pridružen-a: Pon 22 Avg 2016 23:55 Prispevkov: 28 Aktiv.: 0.30 Kraj: Zagradec
|
Objavljeno: Tor Mar 28, 2017 12:43 pm Naslov sporočila: |
|
|
Zdravo,
program sem malce spremenil. In sicer takole:
const int pin12 = 12;
const int pin11 = 11;
const int tiristor = 5;
void setup() {
pinMode(pin12, OUTPUT);
pinMode(pin11, OUTPUT);
pinMode(tiristor, OUTPUT);
}
void loop() {
for(int iStevec=1;iStevec>0;iStevec++)
{
digitalWrite(pin12, LOW), digitalWrite(pin11, HIGH);
delay(10);
digitalWrite(pin11, LOW), digitalWrite(pin12, HIGH);
delay(10);
if(iStevec%50==0)
{
digitalWrite(tiristor, HIGH), digitalWrite(tiristor, LOW);
}
}
}
Tiristor sem pa namesto napisanega uporabil BT 152 800R. BT 151 niso imeli na zalogi pri trgovcu zato sem vzel BT 152, kolikor sem razbral iz karakteristik po specifikacijah je le malce močnejši.
Frekvenco sem pomeril s pomočjo multimetra če se lahko zanašam na to. Se giblje med 50Hz. Z osciloskopom imam manjše težave... zaradi neizkušenosti.
_________________ Lp, Jure |
|
Nazaj na vrh |
|
|
arksi Član
Pridružen-a: Sre 03 Sep 2008 10:19 Prispevkov: 741 Aktiv.: 3.89 Kraj: Dolenjska
|
Objavljeno: Tor Mar 28, 2017 1:20 pm Naslov sporočila: |
|
|
No, ta program je pa sedaj že drugačen, čeprav ne vem v katerem jeziku pišeš - ampak bistvo programa razumem.
Sedaj, ko si iz "delay(50);" spremenil na "delay(10);" bi pa že morala biti frekvenca tam okoli 50Hz.
Če prav razumem tvoj program potem šteješ v zanki prehode in, ko se zgodi 50 prehodov skozi zanko postaviš "digitalWrite(tiristor, HIGH),". Odpreš tiristor, vendar ga še v isti "sapi" zapreš. Daj tam, ko odpreš tiristor cca. 100ms pavze, da bo lahko tiristor v miru vklopil in izpraznil kondenzatorja čez VN trafo.
Praviš, da si vzel drugačen tiristor od tistega, ki ga je uporabil Silvo. Daj preveri 100%, če so ostale karakteristike iste kot pri tvojem BT 152. Tiristor se mora odpreti do konca pri 5V napetosti, ker če se ne, ne steče dovolj energije čez njega in se ne izprazni vsa energija iz kondenzatorjev. Posledično je lahko premalo energije za tokovni sunek na VN trafotu.
|
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 75 dni
Powered by phpBB © 2001, 2005 phpBB Group
|