Fuktsensor -> uPC -> 7seg display

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Inlägg av xxargs »

hmm - är inne på precis samma spår med minimum 2 sensorer och användande av 10 bit AD-omvandlare - men tar i lite hårdare med så småningom ett försök med USB-anslutning ala PIC18f4550 för att kunna loggas och displayas med PC mm. - så får man se hur det går...
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

spännande :)


Här har ni min prel schema. ser ni ngt fel?

http://www.ladda-upp.com/bilder-a/ritnign-463.JPG

Sen satt jag o kollade på VOTI's sida och såg att wisp628 inte var specad för 16F690. Men jag antar att det skall funka, eller?
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

Det saknas kondensatorer före/efter spänningsregulatorn, och strömbegränsningsmotstånd till LED-displayen...
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

hehe det är inte inritat bara... jag har kondingar och jag har lagt några dioder i serie innan lysdioderna. Jag tänkte mer om det finns ngn port som inte kan kopplas på det sättet jag gjort pga av ngn konfigurerings begränsning.
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

Jag orkar inte gräva i PIC-databladet angående portarna, men varför har du kopplat dioder i serie innan lysdioderna?

Visst tar dioderna ner spänningen, men LEDs ska som bekant inte drivas med konstant spänning utan med konstant ström.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> ...och såg att wisp628 inte var specad för 16F690. Men jag antar att det skall funka, eller?

Kod: Markera allt

Specs of following targets were collected from the configuration file(s):

+12F609    16F676    16F818   +16F884   +18F2423  +18F2680   18F452    18F6620
+12HV609  +16F677    16F819   +16F886    18F2431  +18F2682  +18F4520   18F6621
+12F615   +16F684    16F83    +16F887   +18F2450  +18F2685  +18F4523  +18F6622
+12HV615  +16F685    16F84    +16F913   +18F2455   18F4220  +18F4525  +18F6627
 12F629   +16F687    16F84A   +16F914   +18F2458  +18F4221  +18F4550   18F6680
+12F635   +16F688    16F87    +16F916    18F248    18F4320  +18F4553   18F6720
 12F675   +16F689    16F870   +16F917   +18F2480  +18F4321   18F458   +18F6722
+12F683   +16F690    16F871   +16F946   +18F2510   18F4331  +18F4580   18F8410
 16F610   *16F716    16F872    18F1220  +18F2515  +18F4410  +18F4585   18F8490
 16HV610   16F72     16F873   +18F1230   18F252    18F442   +18F4610   18F8520
 16F616    16F73     16F873A   18F1320  +18F2520  +18F4420  +18F4620   18F8525
 16HV616   16F737    16F874   +18F1330  +18F2523  +18F4423  +18F4680  +18F8527
 16F627    16F74     16F874A   18F2220  +18F2525   18F4431  +18F4682   18F8585
 16F627A   16F747    16F876   +18F2221  +18F2550  +18F4450  +18F4685   18F8620
 16F628    16F76     16F876A   18F2320  +18F2553  +18F4455   18F6410   18F8621
 16F628A   16F767    16F877   +18F2321   18F258   +18F4458   18F6490  +18F8622
 16F630    16F77     16F877A   18F2331  +18F2580   18F448    18F6520  +18F8627
+16F631    16F777    16F88    +18F2410  +18F2585  +18F4480   18F6525   18F8680
+16F636   +16F785   +16F882    18F242   +18F2610  +18F4510  +18F6527   18F8720
 16F648A  +16HV785  +16F883   +18F2420  +18F2620  +18F4515   18F6585  +18F8722
 [+] Wisp6x8 firmware >= 1.10, [*] firmware >= 1.12
Ser ut så ja...
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Jag satte dioder för att slippa ta hänsyn till att olika antal led drar olika strömmar och jag tycker det blir ojämn ljusstyrka med ett motstånd.
Med dioder sätter jag spänningen till 1,6V och då drar de en acceptabels ström.. Men visst denna variant ger oxå variation på ljusstyrka...

Sodjan. Vet inte vad det var för lista jag hittade men enl denna ska dat iaf inte va ngt problem ju... ja då får man börja fundera på koden :)
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

Nej, lysdioderna drar inte en "acceptabel" ström om du ger dem en konstant spänning. De drar en ström som kommer att vara starkt temperatur- och inividberoende.

Dessutom drar inte lysdioder olika mycket ström, de TÅL olika mycket ström.

Om du inte får till ljusstyrkan med motstånd har du dimensionerat något dåligt.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Kan inte hitta i databldet för 16f690 vilket värde det är på ingångs impedansen? Ngn som vet detta?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Menar du digitala ingångar ? Irrelevant i så fall...
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

nej. jag menar om man sätter en ingång till ADC. vilket värde får den ADC'n som ingångs impedans. Jag ska näml koppla en fuktsensor som ska ha minst 80kohm last
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK.
Det står vilken imdedans som det som ansluts till ADC ingången
*max* får ha (för att behålla en viss noggranhet och övriga parametrar).

Men vänta...
*Minst* 80 KOhm last ? Det är väl bara att hånga på ett motstånd.

Sannolikt blir det enklare om du sätter en opamp mellan.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

mmm jag antar att en spänningsföljare borde göra jobbet.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Inlägg av newbadboy »

Nu till koden.

Jag har alltså tänkt läsa in ett värde mellan 0,75-3,9V på pinnen som heter AN2 (tror den räknas som kanal 3). Därefter ska jag jämföra värdet med ett förutbestämt värde. Ex så vet jag att en spänning på 2V motsvarar ca 40% relativ luftfuktighet. Är värdet rätt kommer rätt segmenkombination att tändas och visa 40 på displayen. Den lilla kod jag knackat ner följer. Och med denna kommer även frågorna. Jag använder MikroC

Frågor.

1/ Jag är inte helt säker på hur jag sätter RA2 som ADC ingång och resten av pinnarna som digitala utgångar.

2/ Värdet från ADC'n lägger jag i Value. Hur ska jag jämföra Value med ett värde som ex 2,453V? Hur ska jag skriva värdet 2,453 binärt så att säga? Jag kan ju inte använda , tecknet.


**************************************************************************************************************************


// Fuktmätare för luftfuktighet.
// Pic16f690. Intern oscillator 4Mhz. Extern MCLR

unsigned int Value;

void main(){

TRISC = 0b00000000; //PORTC är utgångar
TRISB = 0b00000000; //PORTB är utgångar
TRISA = 0b00100000; //PORTA, RA2= ADC ingång, andra utgångar
ADCON1 = ??????????;

while(1){

Value = ADC_read(3); //Read ADC channel 3.

if( Value == ????????){ //Läser in värdet value och jämför det
PORTA = xxxxx ; // med ett värde, ex binärt för 2V
PORTB = xxxxx ; //om dessa stämmer tänds olika segment
PORTC = xxxxx ; //annars jämförs nästa "if" sats
}

if(Value == ???????){

PORTA = xxxxx ;
PORTB = xxxxx ;
PORTC = xxxxx ;
}



}


}
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> 1/ Jag är inte helt säker på hur jag sätter RA2 som ADC ingång och resten av pinnarna som digitala utgångar.

Om det ens går...
Ibland får välja mellan vissa kobinationer av dig/analoga pinnar.
ADC kapitlet i databladet har alla detaljer.

Är det bara just 40% som du vill visa ?
Skriv svar