Lm35 till PIC
-
- EF Sponsor
- Inlägg: 2109
- Blev medlem: 27 augusti 2005, 20:57:58
- Ort: Borlänge
Re: Lm35 till PIC
Verkar vara rätt kopplat om du ser den framifrån. Har du en multimeter bör du kunna mäta utspänningen.
Re: Lm35 till PIC
> Testade koppla två motstånd från AN2.
Fullständigt komplett värdelös information utan att veta
vilka VÄRDE det är på motstånden.
*Om* du använder motstånd på ca 1-5 kohm, så borde du hamna
vid ca 512 som värde. Annars är något annat galet.
Och det är fullständigt ointressant att ens fundera på en LM35'a innan
du fixar att få ett vettigt värde från ADC'n med två motstånd !
> När jag kopplar AN2 till 5v får jag ett värde som pendlar kring 1023.
> När jag kopplar till gnd pendlar det kring 0. Låter det vettigt?
Ja.
Samma sak här. "Pendlar" är värdelös information. Om du säger att värdet
varierar med ca +/- 5 enheter (eller vad det nu var) så är det exakt den
information som är användbar. Det är i så fall även helt normalt.
> Om mitt minne stämmer rör det sig om 10-15 värden åt båda hållen.
Det finns ingen som helst sådan regel eller tumregel. Det beror helt och hållet
på den aktuella kopplingen. Det *går* att få ett mätvärde från ADC'n som
ligger i princip helt stabilt med något enstaka fladder i sista biten, men det
kräver också lite insatser. Med en enkel koppling på en labbplatta och utan
bra kunskap om hur man avkopplar och stabiliserar en analog koppling,
så kan kanske +/- 5-10 kN vara ett förväntat resultat. Om det inte är
tillräckligt bra, så är det inget större problem att komma ner i +/- 3-4 bit, men
det kräver som sagt lite mer av t.ex avkopplingen än vid en ren digital lösning.
Jag har haft ett gäng med sådana här (i TO92 kapsel):
http://jescab2.dyndns.org/pub_docs/as35fn.pdf.
De ska vara LM35 kompatibla.
> Har du en multimeter bör du kunna mäta utspänningen.
Ja, om det det redan är gjort så är det bara att köra.
Jag kopplade in en av de på PDF'en ovan, och en vanlig
voltmeter fungerade utmärkt för visning av temperaturen direkt.
Men, som sagt, om man inte kan få ett värde kring 512 med en 1:1
spänningsdelare med två motstånd, så är det ointressant med sensorn.
Fullständigt komplett värdelös information utan att veta
vilka VÄRDE det är på motstånden.
*Om* du använder motstånd på ca 1-5 kohm, så borde du hamna
vid ca 512 som värde. Annars är något annat galet.
Och det är fullständigt ointressant att ens fundera på en LM35'a innan
du fixar att få ett vettigt värde från ADC'n med två motstånd !
> När jag kopplar AN2 till 5v får jag ett värde som pendlar kring 1023.
> När jag kopplar till gnd pendlar det kring 0. Låter det vettigt?
Ja.
Samma sak här. "Pendlar" är värdelös information. Om du säger att värdet
varierar med ca +/- 5 enheter (eller vad det nu var) så är det exakt den
information som är användbar. Det är i så fall även helt normalt.

> Om mitt minne stämmer rör det sig om 10-15 värden åt båda hållen.
Det finns ingen som helst sådan regel eller tumregel. Det beror helt och hållet
på den aktuella kopplingen. Det *går* att få ett mätvärde från ADC'n som
ligger i princip helt stabilt med något enstaka fladder i sista biten, men det
kräver också lite insatser. Med en enkel koppling på en labbplatta och utan
bra kunskap om hur man avkopplar och stabiliserar en analog koppling,
så kan kanske +/- 5-10 kN vara ett förväntat resultat. Om det inte är
tillräckligt bra, så är det inget större problem att komma ner i +/- 3-4 bit, men
det kräver som sagt lite mer av t.ex avkopplingen än vid en ren digital lösning.
Jag har haft ett gäng med sådana här (i TO92 kapsel):
http://jescab2.dyndns.org/pub_docs/as35fn.pdf.
De ska vara LM35 kompatibla.
> Har du en multimeter bör du kunna mäta utspänningen.
Ja, om det det redan är gjort så är det bara att köra.
Jag kopplade in en av de på PDF'en ovan, och en vanlig
voltmeter fungerade utmärkt för visning av temperaturen direkt.
Men, som sagt, om man inte kan få ett värde kring 512 med en 1:1
spänningsdelare med två motstånd, så är det ointressant med sensorn.
Re: Lm35 till PIC
Börjar tro att det är nått fel på sensorn. Finns det något sätt att testa den?
När jag kopplar:
RA2 till 5v ger 1023
RA2 till gnd ger 1
RA2 via två motstånd ett till gnd och ett till 5v ger 516.
Dessa resultat känns väl rimmliga?
När jag kopplar:
RA2 till 5v ger 1023
RA2 till gnd ger 1
RA2 via två motstånd ett till gnd och ett till 5v ger 516.
Dessa resultat känns väl rimmliga?
Re: Lm35 till PIC
Har labborerat lite med koden. Hittade några fel. Den senaste versionen gav dessa värden.
Re: Lm35 till PIC
OK.
Om en så pass fundamental uppgift plötsligt ändras så är det
väl naturligt att tala om det.
> Finns det något sätt att testa den?
Du menar förrutom den enkla metod som redan har föreslagits?
Fungerade inte den? Eller valde du bort den av någon anledning?
Elller är det så att du inte läser andras inlägg?
> Dessa resultat känns väl rimmliga?
Ja.
Om en så pass fundamental uppgift plötsligt ändras så är det
väl naturligt att tala om det.
> Finns det något sätt att testa den?
Du menar förrutom den enkla metod som redan har föreslagits?
Fungerade inte den? Eller valde du bort den av någon anledning?
Elller är det så att du inte läser andras inlägg?
> Dessa resultat känns väl rimmliga?
Ja.
Re: Lm35 till PIC
Sorry han posta mitt inlägg innan dit utförliga inlägg kom upp. Postade de nya resultaten direkt när jag fått fram dom. Läser alla inlägg noga. Utan er hjälp hade jag aldrig kommit så här långt.
Re: Lm35 till PIC
Nu har jag mätt på sensorn med multimeter och den gav utslag. Mycket märkligt. Några förslag på vad jag ska testa?
Re: Lm35 till PIC
Nej inte mer, men allt som skrivits, en gång till så det fungerar "samtidigt".
Finns inte så mycket mer att testa än att sammanfoga testfallen. Koppla sensorn till AN2 och mäta med multimetern på AN2 samtidigt som du kör koden. Om du i testet mäter rätt med motstånd och sensorn fungerar med multimetern så _kan_ det inte bli fel längre.
Lycka till!
Finns inte så mycket mer att testa än att sammanfoga testfallen. Koppla sensorn till AN2 och mäta med multimetern på AN2 samtidigt som du kör koden. Om du i testet mäter rätt med motstånd och sensorn fungerar med multimetern så _kan_ det inte bli fel längre.
Lycka till!
Re: Lm35 till PIC
> Nu har jag mätt på sensorn med multimeter och den gav utslag.
Enligt spec ?
Enligt spec ?
Re: Lm35 till PIC
Sorry att jag inte svarat på länge. Har varit mycket med skolan.
Har nu köpt några potentiometrar ska testa med dom i helgen.
Sitter och läser databladet till pic16f690. Försöker lära mig hur ansel och anselh registret fungerar. Men förstår inte riktigt skillnaden?
Sen förstår jag inte riktigt den binära kodningen. Någon som har lust att förklara på ett enkelt sätt hur det fungerar? Jag skriver i mikroc.
Ser ju ut ungefär så här:
0bxxxxxxxx. Vad representerar respektive x possition?
Har nu köpt några potentiometrar ska testa med dom i helgen.
Sitter och läser databladet till pic16f690. Försöker lära mig hur ansel och anselh registret fungerar. Men förstår inte riktigt skillnaden?
Sen förstår jag inte riktigt den binära kodningen. Någon som har lust att förklara på ett enkelt sätt hur det fungerar? Jag skriver i mikroc.
Ser ju ut ungefär så här:
0bxxxxxxxx. Vad representerar respektive x possition?
Re: Lm35 till PIC
0bxxxxxxxx = binäratalsystemet
vad varje x har för funktion kan bara databladet för PIC kretsen tala om, och det som står i databladet gäller även i microC.
Slå upp matteboken om talsystem så hittar du troligen en mycket bra förklarning på hur det fungerar.
vad varje x har för funktion kan bara databladet för PIC kretsen tala om, och det som står i databladet gäller även i microC.
Slå upp matteboken om talsystem så hittar du troligen en mycket bra förklarning på hur det fungerar.
Re: Lm35 till PIC
Har försökt läsa databladet men får ingen ordning på det. Kollar sidan 61 för inställning av a/d portar.
Om jag tex vill ha ra0 som analog och resten som digitala. Hur blir det då?
Ansel=0b10000000?
Om jag tex vill ha ra0 som analog och resten som digitala. Hur blir det då?
Ansel=0b10000000?
Re: Lm35 till PIC
Fick fram detta i databladet:
PIC16F690 Pin Diagram (PDIP, SOIC, SSOP)
RA0/AN0/C1IN+/ICSPDAT/ULPWU
Som jag förstår det, har du tänkt rätt.
Har mircoC sin bit0 på samma plats?
PIC16F690 Pin Diagram (PDIP, SOIC, SSOP)
RA0/AN0/C1IN+/ICSPDAT/ULPWU
Kod: Markera allt
©
2008 Microchip Technology Inc.
DS41262E-page 61
PIC16F631/677/685/687/689/690
REGISTER 4-3: ANSEL: ANALOG SELECT REGISTER
R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1
ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0
bit 7 bit 0
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
-n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
bit 7-0
ANS<7:0>
: Analog Select bits
Analog select between analog or digital function on pins AN<7:0>, respectively.
1= Analog input. Pin is assigned as analog input(1).
0= Digital I/O. Pin is assigned to port or special function.
Note 1:
Setting a pin to an analog input automatically disables the digital input circuitry, weak pull-ups and
interrupt-on-change if available. The corresponding TRIS bit must be set to Input mode in order to allow
external control of the voltage on the pin.
Har mircoC sin bit0 på samma plats?
Re: Lm35 till PIC
> Sitter och läser databladet till pic16f690.
> Försöker lära mig hur ansel och anselh registret fungerar.
> Men förstår inte riktigt skillnaden?
Ja, det står ju i databladet. Dock ser jag att det finns ett fel
på sidan 61, du kanske har sett det. Det står :
ANS<11:8> : Analog Select bits
Analog select between analog or digital function on pins AN<7:0>, respectively.
Det ska så klart vara :
ANS<11:8> : Analog Select bits
Analog select between analog or digital function on pins AN<11:8>, respectively.
Man, vad är det på sidan 61 som du inte förstår? Förrutom det där
felet alltså?
> Sen förstår jag inte riktigt den binära kodningen.
Detta är fullständigt fundamentalt!
http://sv.wikipedia.org/wiki/Bin%C3%A4ra_talsystemet
Kolla även "Andra talsystem" på den sidan.
> 0bxxxxxxxx. Vad representerar respektive x possition?
En bit.
> Om jag tex vill ha ra0 som analog och resten som digitala. Hur blir det då?
> Ansel=0b10000000?
RA0 (själva I/O pinnen) har alltså funktionen AN0 (analog pinne nr 0).
"TABLE 5: PIC16F690 PIN SUMMARY" på sidan 5.
Biten som styr pullup för AN0 är alltså ANS0, eller hur ?
"REGISTER 4-3: ANSEL: ANALOG SELECT REGISTER" på sidan 61.
ANS0 är bit *0*i ANSEL, inte bit 7 som du har satt i din fråga ovan.
Alltså: Ansel=0b00000001
Du bör också kolla "Accessing Individual Bits Of Variables" i MikroC manualen !
Du bör kunna skriva "ANS0_bit = 1;" eller liknande. Testa!
Fördelen är att du inte behöver veta vilken bit i regsitret det är.
Just när det gäller AN0/ANS0 så var det ju enkelt, men t.ex ANS11
är bit 3 i ANSELH, och det behöver man alltså då inte kolla upp.
> Försöker lära mig hur ansel och anselh registret fungerar.
> Men förstår inte riktigt skillnaden?
Ja, det står ju i databladet. Dock ser jag att det finns ett fel
på sidan 61, du kanske har sett det. Det står :
ANS<11:8> : Analog Select bits
Analog select between analog or digital function on pins AN<7:0>, respectively.
Det ska så klart vara :
ANS<11:8> : Analog Select bits
Analog select between analog or digital function on pins AN<11:8>, respectively.
Man, vad är det på sidan 61 som du inte förstår? Förrutom det där
felet alltså?
> Sen förstår jag inte riktigt den binära kodningen.
Detta är fullständigt fundamentalt!
http://sv.wikipedia.org/wiki/Bin%C3%A4ra_talsystemet
Kolla även "Andra talsystem" på den sidan.
> 0bxxxxxxxx. Vad representerar respektive x possition?
En bit.
> Om jag tex vill ha ra0 som analog och resten som digitala. Hur blir det då?
> Ansel=0b10000000?
RA0 (själva I/O pinnen) har alltså funktionen AN0 (analog pinne nr 0).
"TABLE 5: PIC16F690 PIN SUMMARY" på sidan 5.
Biten som styr pullup för AN0 är alltså ANS0, eller hur ?
"REGISTER 4-3: ANSEL: ANALOG SELECT REGISTER" på sidan 61.
ANS0 är bit *0*i ANSEL, inte bit 7 som du har satt i din fråga ovan.
Alltså: Ansel=0b00000001
Du bör också kolla "Accessing Individual Bits Of Variables" i MikroC manualen !
Du bör kunna skriva "ANS0_bit = 1;" eller liknande. Testa!
Fördelen är att du inte behöver veta vilken bit i regsitret det är.
Just när det gäller AN0/ANS0 så var det ju enkelt, men t.ex ANS11
är bit 3 i ANSELH, och det behöver man alltså då inte kolla upp.