Arduino: Varför 0 till 1023 vid analog ?
Arduino: Varför 0 till 1023 vid analog ?
Hej!
Jag gjorde ett litet expriment på digitalRead och analogRead.
Det första experimentet som jag gjorde var digitalRead. Då skulle man trycka på en knapp och sen då visar monitor en etta eller en nolla, vilket jag direkt förstår vad det är. On eller Off.
Experiment finns här: http://arduino.cc/en/Tutorial/DigitalReadSerial
Men däremot analogRead så förstog jag inte så mycket om. Där var det en potentiometer som jag skruvade på. När man skruvade på den så visades tal från 0 till 1023 på en monitor som är integrerat med Arduino IDE.
Varför blev det 0 till 1023 och inte 0 till 1024 ?
Experiment finns här: http://arduino.cc/en/Tutorial/AnalogReadSerial
Tack!
Jag gjorde ett litet expriment på digitalRead och analogRead.
Det första experimentet som jag gjorde var digitalRead. Då skulle man trycka på en knapp och sen då visar monitor en etta eller en nolla, vilket jag direkt förstår vad det är. On eller Off.
Experiment finns här: http://arduino.cc/en/Tutorial/DigitalReadSerial
Men däremot analogRead så förstog jag inte så mycket om. Där var det en potentiometer som jag skruvade på. När man skruvade på den så visades tal från 0 till 1023 på en monitor som är integrerat med Arduino IDE.
Varför blev det 0 till 1023 och inte 0 till 1024 ?
Experiment finns här: http://arduino.cc/en/Tutorial/AnalogReadSerial
Tack!
Re: Arduino: Varför 0 till 1023 vid analog ?
Därför att det finns 1024 "positioner" varav en är "0".
Re: Arduino: Varför 0 till 1023 vid analog ?
ok... (nytt försök)
Du har bara tio bitar som talet ska få plats i.
noll = 00 0000 0000
1023 = 11 1111 1111
1024 = 100 0000 0000 = elva bitar - får inte plats.
Men en liten följdfråga:
om Aref = 5.0 volt, ska man då räkna med att Aref motsvaras av 1024 eller 1023 ?
dvs. ska det vara:
eller ska det vara
(det är en kuggfråga - jag vet svaret)
Du har bara tio bitar som talet ska få plats i.
noll = 00 0000 0000
1023 = 11 1111 1111
1024 = 100 0000 0000 = elva bitar - får inte plats.
Men en liten följdfråga:
om Aref = 5.0 volt, ska man då räkna med att Aref motsvaras av 1024 eller 1023 ?
dvs. ska det vara:
Kod: Markera allt
float volt;
u16 analog;
...
analog = ADC; // läs in från ADC
volt = analog * 5.00 / 1024;
Kod: Markera allt
float volt;
u16 analog;
...
analog = ADC; // läs in från ADC
volt = analog * 5.00 / 1023;
Re: Arduino: Varför 0 till 1023 vid analog ?
Jadu..bra fråga 
Jag vet inte.
Jag förstår inte heller varför jag har bara 10 bitar och inte 11 bitar. 2^11 = 2048. Brukar finnas som megabyte på ram. Iallafall vad jag har på min dator.
Men om du tar ett praktiskt exempel med t.ex en blinkande LED och en eller flera knappar kanske? Typ om man trycker in två knappar så lyser lampan och trycker man in den tredje så blinkar lampan osv.

Jag vet inte.
Jag förstår inte heller varför jag har bara 10 bitar och inte 11 bitar. 2^11 = 2048. Brukar finnas som megabyte på ram. Iallafall vad jag har på min dator.
Men om du tar ett praktiskt exempel med t.ex en blinkande LED och en eller flera knappar kanske? Typ om man trycker in två knappar så lyser lampan och trycker man in den tredje så blinkar lampan osv.
Re: Arduino: Varför 0 till 1023 vid analog ?
Därför att din ADC är på 10 bitar och inte 11 bitar. Resten av det du skriver förstår jag absolut ingenting av, vad har lysande eller blinkande lysdioder med ADCn att göra?
- Lennart Aspenryd
- Tidigare Lasp
- Inlägg: 12607
- Blev medlem: 1 juli 2011, 19:09:09
- Ort: Helsingborg
Re: Arduino: Varför 0 till 1023 vid analog ?
Mata inte trollen!
Grundläggande kunskaper är binärt, och basic
Grundläggande kunskaper är binärt, och basic
- JimmyAndersson
- Inlägg: 26579
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
Re: Arduino: Varför 0 till 1023 vid analog ?
Lasp:
Att slänga ur sig "Troll" skapar bara en jobbig stämning.
Skriv något konstruktivt istället.
Åter till ämnet!
Att slänga ur sig "Troll" skapar bara en jobbig stämning.
Skriv något konstruktivt istället.
Åter till ämnet!
Re: Arduino: Varför 0 till 1023 vid analog ?
Om man tänker på ett mindre exempel så kanske de blir lättare att förstå.
2 bitar som ger fyra olika kombinationer.
00 <- 0
01
10
11 <- 3
sammanlagt fyra varianter
i 10 bitar
0000000000 <- 0
-//-
1111111111 <-1023
sammanlagt 1024
2 bitar som ger fyra olika kombinationer.
00 <- 0
01
10
11 <- 3
sammanlagt fyra varianter
i 10 bitar
0000000000 <- 0
-//-
1111111111 <-1023
sammanlagt 1024
Re: Arduino: Varför 0 till 1023 vid analog ?
Okej. Det förklarar rätt bra det därWalle skrev:Därför att din ADC är på 10 bitar och inte 11 bitar. Resten av det du skriver förstår jag absolut ingenting av, vad har lysande eller blinkande lysdioder med ADCn att göra?

Tack!
Re: Arduino: Varför 0 till 1023 vid analog ?
När jag gjorde det där exprimentet så använde jag en potentiometer på 10k ohm. Jag antar att när jag hade "full resitans" på potentiometern så visade monitorn 1023 och när jag hade ingen resitans alls så visade monitorn 0.
Om jag använder ett motstånd på 5k ohm, borde det inte monitorn visa hälften av 1023 då?
Om jag använder ett motstånd på 5k ohm, borde det inte monitorn visa hälften av 1023 då?
Re: Arduino: Varför 0 till 1023 vid analog ?
Ta reda på vad troll är innan du själv blir ett... Det finns tillräckligt med riktiga troll på forumet som det är redan.
http://sv.wikipedia.org/wiki/Internettroll
Om trådskaparen ställer frågor på ett forum av en eller annan anledning skall väl han eller hon knappast bli förlöjligad även om personen ifråga inte har full förståelse på svaret, har man inget konstruktivt att skriva kan man ju alltid gå på toaletten för att få ur sig skiten...
Ett forum är väl en plats för ALLA även de som inte redan kan allt...
Trist att läsa att även de äldre medlemmarna bär sig åt som många yngre...
Och nu kommer det givetvis att komma en massa kommentarer angående det här inlägget oxå, bara för att det MÅSTE ifrågasättas.
Så varsågoda och "Let the flaming begin"
http://sv.wikipedia.org/wiki/Internettroll
Om trådskaparen ställer frågor på ett forum av en eller annan anledning skall väl han eller hon knappast bli förlöjligad även om personen ifråga inte har full förståelse på svaret, har man inget konstruktivt att skriva kan man ju alltid gå på toaletten för att få ur sig skiten...
Ett forum är väl en plats för ALLA även de som inte redan kan allt...
Trist att läsa att även de äldre medlemmarna bär sig åt som många yngre...
Och nu kommer det givetvis att komma en massa kommentarer angående det här inlägget oxå, bara för att det MÅSTE ifrågasättas.
Så varsågoda och "Let the flaming begin"
Re: Arduino: Varför 0 till 1023 vid analog ?
> ...borde det inte monitorn visa hälften av 1023 då?
Nej. (Här får man verkligen bita sig i tungan och räkna till 10...)
Jag tycker att det är bäst att du funderar mer på vad du skriver.
Det blir så lätt infekterat när det dyker upp så genomkorkade frågor.
> ...så använde jag en potentiometer på 10k ohm.
Som var kopplad enligt bilden på den länk som *DU SJÄLV* postade ???
Eller hur var den inkopplad?
Var den *INTE* kopplad med alla tre benen enligt bilden?
> Om jag använder ett motstånd på 5k ohm,
Ett motstånd med tre ben !!??
Om inte så får du faktiskt förklara bättre vad du gjorde...
Nej. (Här får man verkligen bita sig i tungan och räkna till 10...)
Jag tycker att det är bäst att du funderar mer på vad du skriver.
Det blir så lätt infekterat när det dyker upp så genomkorkade frågor.
> ...så använde jag en potentiometer på 10k ohm.
Som var kopplad enligt bilden på den länk som *DU SJÄLV* postade ???
Eller hur var den inkopplad?
Var den *INTE* kopplad med alla tre benen enligt bilden?
> Om jag använder ett motstånd på 5k ohm,
Ett motstånd med tre ben !!??
Om inte så får du faktiskt förklara bättre vad du gjorde...
Re: Arduino: Varför 0 till 1023 vid analog ?
Al_bundy:
Vilken resistans på potentiometern är egentligen oväsentligt rörande bitarna, det som ändras är skalan, dvs. hur "fort" den analoga signalen ändras...
Edit: Och vips så dök nästa upp...
apropå konstruktiva inlägg...
Vilken resistans på potentiometern är egentligen oväsentligt rörande bitarna, det som ändras är skalan, dvs. hur "fort" den analoga signalen ändras...
Edit: Och vips så dök nästa upp...

Re: Arduino: Varför 0 till 1023 vid analog ?
Problemet är att när du gör en analog > digital konvertering måste du någonstans (gissningsvis i kod eftersom du labbar med uC) definiera vad som skall konverteras. Du kan koppla vilken pot som helst i ditt exempel men du måste ändå någonstans tala om vad som skall vara 0ohm och vad som skall vara xx-ohm.
Du kan till och med vända på steken och bestämma att värdet ändras baklänges mot vad det gör nu.
Någonstans i koden finns definierat vad x ohm är (t.ex. 0 eller 10kohm 1023).
EDIT> Eller i en inbyggd funktion i Arduino, ser det ut som när jag tittade på exemplet.
Du kan till och med vända på steken och bestämma att värdet ändras baklänges mot vad det gör nu.
Någonstans i koden finns definierat vad x ohm är (t.ex. 0 eller 10kohm 1023).
EDIT> Eller i en inbyggd funktion i Arduino, ser det ut som när jag tittade på exemplet.