View Single Post
Sitat av roof55 Vis innlegg
0 og 1 gir ingen mening, digitalt sett, men analogt gir det en absolutt mening.
Vis hele sitatet...
I folkeopplysningens navn kan jeg prøve å forklare deg raskt hvordan dette egentlig henger sammen.

Et signal, i elektronikkens verden, er en informasjonsstrøm i form av en varierende strøm eller spenning. Disse kan generelt være av to forskjellige typer: digitale eller analoge.

Et analogt signal har en spenning eller strøm som samvarierer kontinuerlig med en eller annen tilstand i et fysisk system. Variasjonen i dette signalet er altså analog med den fysiske variasjonen. Et enkelt eksempel er signalet ut fra en mikrofon, hvor variasjonen i spenningen samsvarer med variasjonen i lufttrykket som treffer mikrofonens membran. Et annet eksempel kan være spenningen ut fra et potentiometer hvor skaftet er koblet til en motor, hvor spenningen da vil svare til motorens posisjon (dette vil være utgangspunktet til en enkel servo).

Et digitalt signal derimot, varierer ikke kontinuerlig, men har distinkte og bestemte diskrete verdier. Den vanligste typen digitale signal har to definerte spenningsnivåer, som regel 0 V og en høyere spenning, som hver representerer henholdsvis "0" og "1". Det finnes også andre typer hvor de binære verdiene 0 og 1 er representert ved to spenningsnivåer på en mer komplisert måte, som for eksempel manchesterkoding. Det finnes også tilfeller hvor de to binære verdiene representeres ved flere spenningsnivåer, som for eksempel alternate mark inversion. I tillegg finnes det signaler med flere spenningsnivåer som representerer flere verdier enn 0 og 1 (gjerne på en måte som tillater enkel dekoding tilbake til et binært logisk signal etter transmisjon), som for eksempel kvadraturamplitudemodulasjon. I prinsippet kan man også variere andre ting enn akkurat spenningen i signalet, som for eksempel å skifte mellom forskjellige frekvenser eller mellom forskjellige bølgeformer, så lenge det skiftes mellom diskrete verdier.

Dine sensorer er enten av eller på. De enten leder eller leder ikke, avhengig av om vannstanden er over eller under et bestemt nivå. Dette er rene binære verdier og har ingenting på en analogport å gjøre, selv om det teknisk sett selvsagt er fullt mulig å gjøre det slik. En analogport på en mikrokontroller har en ADC (analog til digital-konverter) som gjør om en analog spenning – altså en spenning som kan være hvilken som helst verdi mellom to ytterpunkter – til en digital representasjon som svarer til hvordan dette nivået ligger i forhold til ytterpunktene. Denne verdien vil nødvendigvis ha en viss oppløsning, som avhenger av hvor mange bits ADC-en er på. En 10 bits ADC vil representere denne spenningen som et tall mellom 0 og 210-1.

En digitalport, konfigurert som en input, vil du bare avlese som 0 eller 1. Normalt har hver pinne en pull-up-motstand, en pull-down-motstand eller begge deler. Disse kan normalt aktiveres med software, og sørger for at spenningsnivået på pinnen går henholdsvis høyt eller lavt om ingenting annet driver den. Du kan derfor koble sensoren din mellom en digitalport og jord, eller en digitalport og en egnet positiv spenning (for eksempel drivspenningen til kontrolleren), avhengig av om du bruker pull-up- eller pull-down-motstander. Du kan også selvsagt sette på dine egne pull-up- eller pull-down-motstander i stedet for å bruke integrerte om du heller vil det (eller om mikrokontrolleren ikke har det, noe som er veldig uvanlig).

For å kunne se om vannet er på vei opp eller ned, som du snakket om tidligere, må du bare se på rekkefølgen av triggingen av sensorene. Det er ingenting med hver enkelt sensor som kan gi deg denne informasjonen.
Sist endret av Provo; 2. november 2015 kl. 21:18.