Sida 3 av 4
Postat: 25 juni 2006, 22:30:33
av Kezo
Nu är jag tillbaka från en tids isolation från världen (nätet var nere)!
Jo, jag fick det att funka och så men jag försökte få den att lysa samtidigt som den läste av med då gick det inte alls bra
Så om någon hade tips på hur man kan fixa det vore jag glad...
Postat: 25 juni 2006, 22:54:04
av Jeppsson
Du kan inte få den att lysa samtidigt som du läser av!
1. Tänd LEDen i några ms (Forward-bias)
2. "Ladda" LEDen genom att ge den spänning polvänt (Backward-bias)
3. Kolla om LEDen håller laddningen?
4. Gå tillbaka till nr 1
Detta går så snabbt att det ser ut som om LEDen är tänd hela tiden!
Postat: 26 juni 2006, 12:04:43
av Kezo
nej, jag vet att jag inte kan ge forward och back-bias samtidigt men när jag gjorde som du skrev så syntes det inte att LED:en lyste... det gick väl för långsamt eller nått... aja, får trimma koden lite då
Postat: 27 juni 2006, 16:30:29
av grapetonix
Ledsen, men urladdningskurvan tycks stabil som en sten oavsett om jag har fingret på dioden eller inte (har prövat flera). Skopet tillsammans med prob har ingångsimpedansen 10MOhm/10pF vilket vore vara i storleksordningen av en cmos-ingång. Konstigt att jag inte ser nåt

Postat: 27 juni 2006, 17:10:14
av Jeppsson
Vad menar du med "stabil"?
Att den håller laddningen hela tiden oavset om du rör LEDen eller inte, eller att den laddas ur på samma sätt oavset om du är nära LEDen eller inte?
Kör du med samma ASM-kod som jag gjorde?
Tänkte så att du på µprocessor går direkt från backward-bias till ingång så att LEDen inte hinner ladda ur sig!
Postat: 29 juni 2006, 18:59:04
av grapetonix
Tidskonstanten ser identisk ut, den tar alltså lika lång tid på sig att ladda ur oavsett hur jag håller fingret.
Jag applicerar en cirka 200us lång laddpuls (Rs=390 ohm) och switchar sedan omedelbart till ingång. För övrigt har jag dessutom prövat att forwarda vad ingången tycker till en utgångspinne och mäta bara där (hindra ev störningar från oscilloskopet). Högpulserna är lika långa oavsett. Skumt!
Postat: 29 juni 2006, 22:46:39
av maxxflow
Får man "låna" tråden lite?

Tyckte att detta lät intressant, så jag tänkte prova med en AVR ATtiny15 som jag hade liggandes...
Dock är jag helt nybörjare på asm/µP-programmering...
Följande kod har jag lyckats skriva hittills:
Hur ska jag fixa if-satsen i pseudokoden?
Alltså att kolla på PINB om dioden är urladdad?
Och Delay1ms ska justeras sedan ja, så att det blir rätt delay-tid...
Postat: 30 juni 2006, 16:29:46
av maxxflow
Kan detta funka?
Kod: Markera allt
.include "tn15def.inc"
.def Temp = R16
.def Delay = R17
.def Delay2 = R18
.org 0x0000 ; Interrupt vector
rjmp Mainloop
Mainloop:
ldi Temp, 0xFF
out DDRB, Temp ; Sätt PortB som utgång
ldi Temp, 0x01
out PORTB, Temp ; "Ladda" sensor-dioden
rcall Delay1ms
ldi Temp, 0x00
out PORTB, Temp ; Sluta ladda
ldi Temp, 0x00
out DDRB, Temp ; Sätt PortB som ingång
rcall Delay1ms
sbic PINB, 0 ; "Skip if bit 0 on PINB is 0"
rjmp StatusLED
rjmp Mainloop
Delay1ms:
ldi Delay, 0x04
Delayloop:
ldi Delay2, 0xFF
Delayloop2:
dec Delay2
brne Delayloop2
dec Delay
brne Delayloop
ret
StatusLED:
ldi Temp, 0xFF
out DDRB, Temp ; Sätt PortB som utgång
ldi Temp, 0x02
out PORTB, Temp ; Tänd status-LED:n
ldi Delay, 0xFF
Longdelay:
ldi Delay2, 0xFF
Longdelay2:
dec Delay2
brne Longdelay2
dec Delay
brne Longdelay
ldi Temp, 0x00
out PORTB, Temp ; Släck status-LED:n
ret
Och Delay1ms borde bli ungefär 1ms va?
Tiny15 gör 1 MIPS. Delay2-loopen innehåller två instruktioner. Delay2-loopen körs FF (256) gånger, och Delay-loopen körs fyra gånger, alltså 4*256=1024 + instruktionerna i Delay-loopen, men ungefär 1000 ändå... Alltså ungefär 1ms?
edit: Det ska alltså fungera så att först laddar den upp sensor-dioden i 1ms, sen ställs PORTB om till ingång, den väntar i 1ms, och kollar sen om sensor-ingången är hög. Om den är det (ingen urladdning - ingen "touch") så hoppar den till början av huvudloopen igen, om den inte är hög så hoppar den till StatusLED, som tänder status-LED:n och kör en delayloop så att man hinner se LED:n. Fulhack javisst, men bara för att testa

Postat: 30 juni 2006, 18:52:59
av grapetonix
Ni som har fått det här att fungera:
Ni kör inte med nåt ytterligare knep ni inte tänker på?
Pullups/pulldowns?
Annat?
Ser ingångsttegen kanske lite lätt olika ut mellan olika picar?
Jag kör med 12F675 och no luck whatsoever.
Av vad allt jag läst verkar det som att det inte är någon kapacitansändring p.g.a. fingrets närhet som används,
utan snarare kapacitansändrande ljusavkänning (laddningsbärargen. i PN-övergången)
Se t.ex.
http://www.edn.com/article/CA6335303.ht ... ryid=44217
Denna märker jag mycket tydligt av. Faktiskt om jag bara kopplar en gul diod till en multimeter ser jag 100mV i ett ljust rum och 5mV om jag sätter fingret på. Funkar era sensorer verkligen i ett dödmörkt rum?
Postat: 30 juni 2006, 21:05:51
av JimmyAndersson
För ca 2 veckor sedan så var det någon på mIRC'en som höll på med detta. Kanske Jeppsson? Minns då att personen (vem det nu var) hade upptäckt att "status-Lysdioden" reagerade oavsett om den första lysdioden var inkopplad eller inte. Dvs att kretsen verkade fungera pga störningar från handen när man hade den nära PIC-kretsen.
Har inte sett en bokstav om detta i den här tråden, så jag tänkte bara kolla om det problemet är löst?
Postat: 30 juni 2006, 21:51:43
av Kezo
Det var jag!
Jo, jag labbade lite och det funkade och så, men så drog jag ut sensor-LED:en (minns inte varför) och då reagerade som sagt status-LED:en på mitt finger i närheten av labbplattan. Jag glömde visst att skriva det här
Men vad tror ni det kan bero på? Kapacitans i labbplattan?
Postat: 30 juni 2006, 22:09:28
av Jeppsson
Det jag har kommit framtill är att en LED oxå kan fungera som en fotodiod och av ge en spänning när den träffas av ljus i en viss våglängd!
I mina tester med LED som en touch sensor så kunde jag ha släckt, tänt eller lyssa med en lampa rakt in i LEDen utan att det påverka. Men så fort jag kom i närheten med fingert eller någon annan "kroppsdel"

så reagerade den. (Jag menar att LEDen reagera inte kroppsdelen

)
Jag kunde även få LEDen att reagera när jag kom i närheten av den från undersidan och lampan lös uppifrån... Därför är jag rätt så säker på att det är kapacitansen i kroppen som har den största inverkan.
Postat: 1 juli 2006, 15:39:24
av grapetonix
Oavsett vad det är frågan om, verkar allt detta vara för instabilt för att användas i någon praktisk tillämpning.
Jag menar, en till synes stabil reaktion har jag också fått från närhet med fingret till flytande ingångar på CMOS-grindar.
Postat: 1 juli 2006, 23:02:44
av $tiff
Vad har vi nu kommit fram till, att Jeppssons experiment från första posten fungerar lika bra utan sensor-lysdioden inkopplad, och att det alltså är banorna i experimentbrädan som utgör den kapacitanskänsliga utrustningen (en öppen kondensator).
Eller är det någon som kan bekräfta att det
inte fungerar om man tar bort lysdioden?
Postat: 2 juli 2006, 02:36:08
av Jeppsson
Jag har inte LED sensorn uppkopplad längre, andra projekt på gång!
Men klart att man kan koppla upp och kolla, det är inte så många komponenter som behövs!
Får se om jag hinner imorgon söndag! Rapport kommer i denna tråden!