www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

LED kot senzor
Pojdi na stran Prejšnja  1, 2, 3
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Merilna tehnika in senzorji
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
LEDuser
Član
Član



Pridružen-a: Pon 31 Mar 2008 12:06
Prispevkov: 1104
Aktiv.: 5.25
Kraj: Ljubljana

PrispevekObjavljeno: Sre Jan 21, 2009 3:48 pm    Naslov sporočila:   Odgovori s citatom

Trenutno se nekaj ukvarjam s tem projektom pa me zanima zakaj mi v Bascomu postavi na 1ko tudi PORTC.0 če je ta definiran kot vhod? Zdi se mi da je to zaradi tega ker je bil prej določen kot izhod (1) in ga sedaj obravnava kot pull-up upor. Kako bi to preprečil?

Koda:

Do

Config Portc.0 = Output

Portc.0 = 0
Portc.1 = 1

Waitms 1

Portc.0 = 1
Portc.1 = 0

Waitus 1

Goto Senzor

Loop

Senzor:

Do

Config Portc.0 = Input

        If Pinc.0 = 0 Then
        Goto Senzor

        Else
        Goto Priprava
        End If

Loop ...

_________________
Razsvetljujemo od leta 1920!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
MAAG
Član
Član



Pridružen-a: Čet 26 Jun 2008 14:18
Prispevkov: 178
Aktiv.: 0.86
Kraj: SG-MB

PrispevekObjavljeno: Sre Jan 21, 2009 8:57 pm    Naslov sporočila:   Odgovori s citatom

Mogoce pa prehitro preverjas, ce je Pinc.0 = 0 in se zaradi vztrajnosti se ne spremeni polariteta na pinu. Poglej v datashet hitrost preklopa iz "1" na "0".
_________________
Samo da se kadi Smile
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
LEDuser
Član
Član



Pridružen-a: Pon 31 Mar 2008 12:06
Prispevkov: 1104
Aktiv.: 5.25
Kraj: Ljubljana

PrispevekObjavljeno: Sre Jan 21, 2009 9:13 pm    Naslov sporočila:   Odgovori s citatom

To ne bo držalo ker meni program cikla v zanki "senzor" toliko časa dokler ne pade PINC.0 na 0.

Vidim da sem malo narobe napisal program zgoraj vendar to nima velikega pomena ker je važno samo na kakšen način mi zadeva ne deluje.

_________________
Razsvetljujemo od leta 1920!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.30
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Sre Jan 21, 2009 9:18 pm    Naslov sporočila:   Odgovori s citatom

Koda:

Senzor:

Do

Config Portc.0 = Input

        If Pinc.0 = 0 Then
        Goto Senzor

        Else
        Goto Priprava
        End If

Loop ...


Zakaj pa vedno znova konfiguriraš pin kot Input? Prestavi ga ven iz zanke...
Koda:

Senzor:

Config Portc.0 = Input
Do

        If Pinc.0 = 0 Then
        Goto Senzor

        Else
        Goto Priprava
        End If

Loop ...


Pa koliko imam jaz izkušenj, se da pin avtomatsko na 1, ko ga definiraš kot vhod, ker potem čaka, da ga daš na 0.

_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
LEDuser
Član
Član



Pridružen-a: Pon 31 Mar 2008 12:06
Prispevkov: 1104
Aktiv.: 5.25
Kraj: Ljubljana

PrispevekObjavljeno: Sre Jan 21, 2009 9:33 pm    Naslov sporočila:   Odgovori s citatom

Citiram:
Pa koliko imam jaz izkušenj, se da pin avtomatsko na 1, ko ga definiraš kot vhod, ker potem čaka, da ga daš na 0.


Jaz bi rad dosegel HI-Z stanje ker ko bom napolnil LED se mi bo počasi izpraznila preko vhoda. Poizkušal sem že z ADC vendar mi znova in znova izpiše vrednost 1023 kar pomeni da se mi od nekje pojavi "1".

_________________
Razsvetljujemo od leta 1920!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
program_er
Član
Član



Pridružen-a: Sob 08 Mar 2008 13:47
Prispevkov: 2173
Aktiv.: 10.30
Kraj: Maribor (Pohorje)

PrispevekObjavljeno: Sre Jan 21, 2009 9:42 pm    Naslov sporočila:   Odgovori s citatom

Jajks, čakaj, trenutno nimam časa, ampak bom potem poiskal tisto temo, tam sem jaz nekako rešil tole - oziroma boljše - se mi je posrečilo. Sem že pozabil...
_________________
Upanje ni del naše projektne strategije.
Member of Trisat - 1. Slovenian satellite running new fault tolerant aerospace processor.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
galex4
Član
Član



Pridružen-a: Tor 01 Apr 2008 18:27
Prispevkov: 459
Aktiv.: 2.18

PrispevekObjavljeno: Čet Jan 22, 2009 12:59 am    Naslov sporočila:   Odgovori s citatom

objavte še različne načrte za to! Zakon stvarca
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
galex4
Član
Član



Pridružen-a: Tor 01 Apr 2008 18:27
Prispevkov: 459
Aktiv.: 2.18

PrispevekObjavljeno: Tor Mar 10, 2009 5:20 pm    Naslov sporočila:   Odgovori s citatom

kako bi pa naredil to, da bi ledica najprej bila ugašnjena in nato ko se je dotakneš sveti ves čas, ne da bi se ugasnila in ponovno čakala na dotik??

jaz namreč želim, da bi bila ugasnena pa bi jo z dotikom prižgal in ugasno, kot stikalo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
galex4
Član
Član



Pridružen-a: Tor 01 Apr 2008 18:27
Prispevkov: 459
Aktiv.: 2.18

PrispevekObjavljeno: Tor Apr 07, 2009 5:51 pm    Naslov sporočila:   Odgovori s citatom

mene zanima sledeče, in sicer kako so definirani porti

če napišem
TRISB = 0 'porti so izhodni

PORTB.7=0
PORTB.6=1

samo mi ni jasno, če je pin PORTB.7 = 0 to ne pomeni da je LED dioda preko upora vezana na maso poleg tega pa, če že sam ukaz TRISB = 0 pomeni da so vsi porti B izhodni, kako je lahko potem en pin vhod? Iz tega ukaza lahko razberem to da je anoda diode na portu 7 in ima vrednost 0, pin na katerem pa je upor pa vrednost 1

razumem to, če je anoda diode vezana na pin uC upor pa na maso, da jo prižgemo z logično 1 ali pa če je anoda dioda vezana na napajanje in upor na pin uC jo prižgemo z logično 0.

V zgornem primeru pa temu ni tako, prosim za razlago
program pišem v mikroBASIC-u za PIC-e
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
galex4
Član
Član



Pridružen-a: Tor 01 Apr 2008 18:27
Prispevkov: 459
Aktiv.: 2.18

PrispevekObjavljeno: Čet Apr 09, 2009 4:29 pm    Naslov sporočila:   Odgovori s citatom

se high "Z" da rešiti s pomočjo open colector??
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Majster
Član
Član



Pridružen-a: Sob 14 Nov 2009 1:05
Prispevkov: 344
Aktiv.: 1.81
Kraj: Majšperk

PrispevekObjavljeno: Sob Apr 24, 2010 4:40 pm    Naslov sporočila:   Odgovori s citatom

Še moja koda za PIC, po zgledu program_er-ja. Uporabljal sem zeleno LED-ico in meni dela Smile Ko je LED-ica zakrita bo svetila z rahlim utripanjem, ko je pa na svetlobi bo ugasnjena z rahlim utripanjem Smile Mogoče bi lahko dodal malo več komentarjev x)

Koda:
 /* Program za uporabo LED diode kot senzor
 Pisal: Jan Haložan */
 #include <16f876a.h>                                   //uporabljamo PIC16F876A
 #fuses NOLVP,NOBROWNOUT,HS,NOPROTECT,PUT,NOWDT        //varovala
 #use delay(clock=6000000)                             //kvarc je 6MHz

 #define led0 PIN_B7                                   //katoda
 #define led1 PIN_B6                                   //anoda

 int16 cas;

 void main()
 {
    set_tris_B(0b00000000);
    output_high(led1);
    output_low(led0);
    delay_ms(995);
    cas = 0;

    while (1)
    {
       set_tris_B(0b00000000);
       output_high(led1);
       output_low(led0);
       delay_ms(5);

       output_low(led1);
       output_high(led0);

       set_tris_B(0b00000011);

       do
       {
          cas = cas + 500;
          delay_us(500);
       } while(input(PIN_B7)>0);

       set_tris_B(0b00000000);
       if (3000>cas)
       {
          output_low(led0);
          output_low(led1);
          delay_ms(500);
          cas = 0;
       }
       else
       {
          output_high(led1);
          output_low(led0);
          delay_ms(500);
          cas = 0;
       }
    }
 }

_________________
Smith & Wesson — the original point and click interface.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Majster
Član
Član



Pridružen-a: Sob 14 Nov 2009 1:05
Prispevkov: 344
Aktiv.: 1.81
Kraj: Majšperk

PrispevekObjavljeno: Ned Apr 25, 2010 2:07 pm    Naslov sporočila:   Odgovori s citatom

Pa še nekaj popravkov in nastavitev, da se prižge ko daš na njo prst. Dodal sem še "zaščito" da je čas praznjenja omejen, ker drugače se mi je LED-ica praznila tudi po 5s v temi Shocked
Tu je koda:
Koda:
 /* Program za uporabo LED diode kot senzor
 Pisal: Jan Haložan */
 #include <16f876a.h>                                   //uporabljamo PIC16F876A
 #fuses NOLVP,NOBROWNOUT,HS,NOPROTECT,PUT,NOWDT        //varovala
 #use delay(clock=6000000)                             //kvarc je 6MHz

 #define led0 PIN_B7                                   //katoda
 #define led1 PIN_B6                                   //anoda

 int32 cas;

 void main()
 {
    set_tris_B(0b00000000);
    output_high(led1);
    output_low(led0);
    delay_ms(990);
    cas = 0;

    while (1)
    {
       delay_ms(5);
       set_tris_B(0b00000000);
       output_high(led1);
       output_low(led0);
       cas = 0;
       delay_ms(5);

       output_low(led1);
       output_high(led0);

       set_tris_B(0b00000011);

       while(input(PIN_B7)==1 && cas<200000)
       {
          cas = cas + 500;
          delay_us(500);
       }

       set_tris_B(0b00000000);
       if (30000<cas)
       {
          output_low(led0);
          output_high(led1);
          delay_ms(1000);
          cas = 0;
       }
       else
       {
          output_low(led1);
          output_low(led0);
          delay_ms(1000);
          cas = 0;
       }
    }
 }

_________________
Smith & Wesson — the original point and click interface.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Merilna tehnika in senzorji Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3
Stran 3 od 3

 
Pojdi na:  
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: 6 dni


Powered by phpBB © 2001, 2005 phpBB Group