Enkel adc med 12f675?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Enkel adc med 12f675?

Inlägg av newbadboy »

Ska läsa nivån från en fototransistor som kan ligga mellan 0-400mv. Tanken är att när nivån är mer än 100mV så ska jag toggla en utgång. Thats it. Som det är nu s växlar utgången hela tiden och bryr sig eg inte direkt om värdet från fototransistorn. Jag har kopierat mesta av koden från ett gammalt projekt där det har funkat. Har samma krets och t.om samma pinkonfigurering. Jag kan inte se just nu vad jag har missat :(

Ingång är GPIO/AN2
Ugång är GPIO0

Kretsen drivs med 2,5V och är oxå satt som Vref. Jag har då fått att 100mv är 29hex.

Koden följer nedan.

Kod: Markera allt

#define LED GPIO.F0

unsigned int adc_rd;
int k=0;

void main() {


TRISIO=0x6;
ANSEL=0x4;
CMCON=0x7;
LED=0;


adc_rd=ADC_Read(2);


                    
                    while(adc_rd > 0x29){

                          LED=1;
                          delay_ms(50);
                          LED=0;
                          delay_ms(700);
                          adc_rd=ADC_Read(2);



                                 }


}
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: enkel adc med 12f675?

Inlägg av Icecap »

Klart att den gör! Du har ju ingen loop i main, alltså resetter koden konstant.

Kod: Markera allt

void main(void)
  {
  Initiering osv...
  while(1) // <- Detta är en ändring
    {
    adc_rd=ADC_Read(2);
    while(adc_rd > 0x29)
      {
      LED=1;
      delay_ms(50);
      LED=0;
      delay_ms(700);
      adc_rd=ADC_Read(2);
      }
    } // <- Likaså detta
  }
Senast redigerad av Icecap 5 oktober 2013, 10:26:19, redigerad totalt 1 gång.
Användarvisningsbild
ecenier
Inlägg: 1150
Blev medlem: 13 december 2007, 17:51:42
Ort: Älvsjö
Kontakt:

Re: enkel adc med 12f675?

Inlägg av ecenier »

Har du kanske vänt fototransistorn åt fel håll? Drn ska ju kopplas in "baklänges".
Användarvisningsbild
Wedge
Inlägg: 1026
Blev medlem: 8 juli 2012, 17:33:33

Re: enkel adc med 12f675?

Inlägg av Wedge »

Icecap skrev:Klart att den gör! Du har ju ingen loop i main, alltså resetter koden konstant.
Kanske. Som jag tolkar TS inlägg så ligger man bara och blinkar LEDen i whileloopen ändå, med rätt frekvens på ON/OFF.
Startvärdet efter reset är LED=0, och det är bara inuti while som den tänds. Och fastnar man i den while-loopen oavsett vad sensorn ger så är det nog där som felet man bör börja med ligger. Sen kan man rätta resetproblemet. :)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: enkel adc med 12f675?

Inlägg av sodjan »

> Ska läsa nivån från en fototransistor som kan ligga mellan 0-400mv.

Hur är det kopplat? Är det inget mer än själva fototransistorn?

> Tanken är att när nivån är mer än 100mV så ska jag toggla en utgång.

Fungerar det hela om du kör nivån upp och ner med en potentiometer?

Det första du behöver göra är att isolera problemet till antingen
givaren/fototransistorn eller koden. Sen vet du var du ska leta...
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: enkel adc med 12f675?

Inlägg av newbadboy »

Bara fototrissa. Den är rätt vänd. Ska försöka hinna kolla på det lite mer ikväll.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: enkel adc med 12f675?

Inlägg av sodjan »

> Bara fototrissa.

OK. Jag ser inte hur det kan fungera. Har du kollar sidor som t.ex denna:
https://sites.google.com/site/therobotr ... to-arduino

Bild
SM7WVZ
Inlägg: 9
Blev medlem: 4 mars 2013, 19:56:38

Re: Enkel adc med 12f675?

Inlägg av SM7WVZ »

Hallåj,

en annan kommentar: Notera att undre gränsen för matningsspänning inte är 2,0V för 12F675 när ADC:n är aktiv utan 2,5V för fullt temperaturområde. Dock står det 2,2V i databladet för området 0-125 grader ser jag, så kanske är det inte detta som ställer till det. Annars skulle ju detta kunna förklara om det fungerar lite svajigt.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Enkel adc med 12f675?

Inlägg av newbadboy »

Jag var så inne på att jag missat ngt på pinconfig delen så att jag missade helt att jag inte skrivit huvud while(1) loopen.

Nu funkar iaf koden om jag testar det med en pot. :bravo:

Nästa problem är nog hur jag kopplat in fototrissan. Jag hade ingen susning hur de skall kopplas. Jag mätte spänning mellan emitter-bas när jag belyste den så då tog jag den och kopplade till ADC. men detta blir helskumt. När fototrissan är på plats mäter jag bara olika negativa spänningar..jag kan inte förklara detta just nu men det är oavsett fel.

Ser ut som jag får läsa på lite hur man koppla in en sådan :)

Problemet är lite om jag följer den bilden sodjan länkar till är att den verkar vara digital koppling vad jag kan se.
Jag har i vissa lägen väldigt snålt med ljus så att jag är inte säker på att trissan kommer sluta/öppna ordentligt. Därav vill jag läsa ett analogt värde, så att även svagt ljus kan detekteras.
Senast redigerad av newbadboy 5 oktober 2013, 19:48:34, redigerad totalt 1 gång.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Enkel adc med 12f675?

Inlägg av newbadboy »

SM7WVZ skrev:Hallåj,

en annan kommentar: Notera att undre gränsen för matningsspänning inte är 2,0V för 12F675 när ADC:n är aktiv utan 2,5V för fullt temperaturområde. Dock står det 2,2V i databladet för området 0-125 grader ser jag, så kanske är det inte detta som ställer till det. Annars skulle ju detta kunna förklara om det fungerar lite svajigt.


Bra kommentar.. detta har jag missat. men jag klarar mig då matningen är som sagt 2,5V. Inte 2,0
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Enkel adc med 12f675?

Inlägg av Icecap »

Sodjan har lagt in ett schema som visar det ganska tydligt. Strömmen genom transistorn varierar med mängden lys den utsätts för så ska du ha ett visst arbetsområde är det bara att välja rätt värde på motståndet. Du bör även avkoppla över motståndet med t.ex. en 10nF-100nF keramisk kondensator för att få stabil läsning med AD-omvandlaren.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Enkel adc med 12f675?

Inlägg av sodjan »

> Problemet är lite om jag följer den bilden sodjan länkar till är att den verkar vara digital koppling vad jag kan se.

Nej. Spänningen kommer att variera med ljusstyrkan.

Själva förhållandet styrs av typ/modell på fototransistor ("ljuskänslighet")
och storleken på motståndet (som Icecap) skrev. Men vi har (hade) ju en
susning om under vilka förhållanden det ska användas. Du får experimentera
fram optimala värden utifrån dina förhållanden.

> Nästa problem är nog hur jag kopplat in fototrissan. Jag hade ingen susning hur de skall kopplas.

Lite underligt efter som "arduino photo transistor" ger en hel del träffar i google.
En av de första har bilden som jag länkade in. Eller kör "bildsökning" i google med
samma sökargument så får du en massa schema direkt.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Enkel adc med 12f675?

Inlägg av newbadboy »

Det är sant, vad jag gjorde var att jag googlade på trissan. Det är en rätt gammal pjäs så just den hittade jag inte så mycket info om. Har en påse som jag fick för länge sedan.

Sedan googlade jag inte mer för jag trodde mig veta hur de skall kopplas 0:)
Användarvisningsbild
Walle
Moderator
Inlägg: 7701
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Re: Enkel adc med 12f675?

Inlägg av Walle »

Vore det inte vettigt att använda comparatorn istället för ADCn? Då kan ju ju med lätthet koppla en pot till komparatorns minusingång för justering tillslagspunkten. Givetvis går det också att göra med ADCn, men det blir mer kod så samt att det faktiska inlästa värdet är ointressant i sig.
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Enkel adc med 12f675?

Inlägg av Icecap »

Med ADC'n kan man lägga in tröskelvärden och spara ett potentiometer, självklart måste man ställa in rätt värde vilket gör det mer besvärligt vid massproduktion. Men vid one-of duger det alldeles fint.

Och potentiometer kostar, fyller och är instabila över tid.
Skriv svar