Sensorer, hur läsa av? *KLAR*

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg av björn »

Jag vet inte om det finns för ljus tyvärr.
peter555
Inlägg: 6047
Blev medlem: 12 februari 2006, 10:02:22

Inlägg av peter555 »

Det finns ljussensorer som ger en digital utsignal, kommer tyvärr inte ihåg vem som gör såna.
net4all
Inlägg: 538
Blev medlem: 7 februari 2007, 12:06:34

Inlägg av net4all »

Med andra ord blir det till att leta igen elfas enorma register :)

Ska testa kimmis ritning idag och se om den fungerar bättre.
JimmyAndersson, har du kvar koden?
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Tyvärr har jag inte kvar koden. :(
Gjorde bara en snabb test med MikroBasic och en PIC12F675.

I princip gjorde jag såhär:
* Gör I/O-pinnen till en utgång och sätt den hög (5V) i en sekund.
* Gör I/O-pinnen till en utgång.
* Starta en timer och knappa ihop en räknare som stoppar när I/O-pinnen blir låg.

Sedan används resultatet av "tidtagningen" för att bestämma hur lång tid urladdningen tog, dvs hur stort motståndet (sensorn) var.
net4all
Inlägg: 538
Blev medlem: 7 februari 2007, 12:06:34

Inlägg av net4all »

Som jag ser det är det ca 3 saker jag inte gjorde, först:
*Hur fick du den till 5v? kan PICen höja så mycket?
*En sekund, jag körde med en ms!
*Räknare? jag tog och nollade TMR0 och lät den räkna upp och sen när pinnen blev "0" så sparade jag värdet i en variabel, c-kod:

Kod: Markera allt

char tid; //Variabel att lagra värdet i
TRISB.5=0; // Sätt porten som utgång
PORTB.5=1; // Dra pinnen till logisk 1
//vänta 1 sekund
TRISB.5=1; // Sätt porten till ingång
TMR0=0; //Nolla TMR0
while(PORTB.5==1)
{
tid=TMR0;

}
EDIT: Borde det inte fungera?
EDIT2: Hur presenterade du resultatet? Till datorn?
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

"Hur fick du den till 5v? kan PICen höja så mycket?"

Det beror på matningspänningen, men om PIC-kretsen matas med 5V så hamnar det på 5V, eller åtminstone väldigt nära. Har inte kollat på länge...



"Räknare? jag tog och nollade TMR0 och lät den räkna upp"

Det gjorde jag också. I mitt förra inlägg skrev jag:

"Starta en timer och knappa ihop en räknare" :)


Jag presenterade resultatet genom att koppla lysdioder till resterande utgångar och låta dem visa resultatet binärt. Snabb testlösning. :)


Jag programmerar inte i C, men jag tycker ändå att det fattas massa saker i din kod. T.ex kollen av timer-interrupt, initiering av tja, allt möjligt. :)
net4all
Inlägg: 538
Blev medlem: 7 februari 2007, 12:06:34

Inlägg av net4all »

Jo, men det är inte ett helt program, bara ett snabbt utkast.

Timer interupt, du menar att man ska hålla reda på om den hinner slå runt?
Jo, det måste jag nog fixa.

Ut och testa igen.
net4all
Inlägg: 538
Blev medlem: 7 februari 2007, 12:06:34

Inlägg av net4all »

Nu fungerar det!

Fast några saker måste fixas:

Hur stor är risken för "spännings topp" dvs det som 100ohm motståndet skulle motverka? Och vad händer om det skulle hända? PICen går sönder?

JimmyAndersson: När du körde med 15Kohm över kondingen så fick du vänta ett tag på värden, eller hur?

Jobbar på att skriva interrupt rutinen för TMR0 nu(har alldrig använt interrupt förut).

OFFT: Vilka standard motstånd tycker ni att man ska köpa in, dvs bra att ha delar?

EDIT: Aj då! Det blev 2st :oops: Hur för jag bort det första??
bos
Inlägg: 2314
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Inlägg av bos »

Klicka på krysset till höger om "citera", eller klicka "ändra" och sen "Ta bort det här inlägget".
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Vilka standard motstånd tycker ni att man ska köpa in,

En av de standard satser som t.ex C-O eller Kjell har.
Skulle bara bli löjligt att börja räcka upp olika värden... :-)

> Hur stor är risken för "spännings topp" dvs det som 100ohm motståndet skulle motverka?

Den har inte den fuktionen. Tänk efter vad som händer när kondingen
är helt ur-laddad och pinnen lägger 5V direkt till den...
net4all
Inlägg: 538
Blev medlem: 7 februari 2007, 12:06:34

Inlägg av net4all »

Ok, hinner inte göra något nu, ska kolla på den där standard satsen..

5v till GND, Bränd PIC... :)

EDIT: Det finns inget kryss och ingen "Ta bort inlägg" knapp
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> EDIT: Det finns inget kryss och ingen "Ta bort inlägg" knapp

Enbart på det *sista* inlägget i tråden, skulle inte vara bra
om man kan plocka bort inlägg inne i tråden som andra kanske
redan har svarat på...

Man får strömrusning om man lägger pinnen hög direkt till en (urladdad)
konding utan strömbegränsning. Spelar mer eller mindre roll
beroende på kondensatorns storlek, så klart...
net4all
Inlägg: 538
Blev medlem: 7 februari 2007, 12:06:34

Inlägg av net4all »

Ok, så ju större kondensator desto större "sug" eller desto mer ström försöker den dra till sig genom PICen då?

Har nu skaffat fram motorer och ska börja bygga på roboten.

Någon som har använt Lego motorerna förut? Går dom bra?
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Plockade bort det dubbla inlägget. :)

edit: Utan motståndet på 100Ω så fick jag en spänningspeak på (tror det var) 8V. Testade med oscilloskopet, så den spänningen hamnade aldrig i PIC-kretsen.
net4all
Inlägg: 538
Blev medlem: 7 februari 2007, 12:06:34

Inlägg av net4all »

Ok, det blir till att köpa motstånd, har hitils kört med ca 60ohm.
Har nästan inga "standard" delar tex motstånd...

Ska nu ta och sätta ihop några gamla h-bryggor som jag köpte för ett tag sedan, får hoppas att dom fungerar med lego motorerna. :)

Fråga om h-bryggor: vad händer om man sätter en pwm pinne som går in i bryggan till 1? Bräns den sönder då? Det varierar så klart beroende på konstruktion, men vad brukar hända?

EDIT: Tack JimmyAndersson :)

EDIT2: Håller på att skriva ett bättre sensor program och skulle skriva min första interrupt rutin.
Och som vanligt stöter man på problem direkt, efter lite kollande så verkar det som om PIC16F628 inte har TMR0 interrupt.
Snälla säg att jag har fel!
Skriv svar