11 svar
66 visningar
Maja9999 Online 560
Postad: Igår 10:28

Arduino kod AD-omvandlare

 

Påstående 1 är sant, men jag undrar varför "spanning" inte innehåller ett analogt värde istället för ett digitalt? Så som jag hade förstått det är 0-5V analogt och 0-1023 digitalt. Och jag tänker att det som kommer ut från "spanning" är ett värde mellan 0-5V, alltså analogt?

Det som hamnar i analogtVarde är väl ett digitalt värde 0-1023 som motsvarar en analog spänning 0-5V. Och sen i "spanning" omvandlas den tillbaka till 0-5V?

Eller stämmer det inte att analogt är 0-5V och digitalt är 0-1023?

Laguna 31851
Postad: Igår 10:33

Säger facit att påstående 1 är sant?

Maja9999 Online 560
Postad: Igår 10:51
Laguna skrev:

Säger facit att påstående 1 är sant?

ja

Laguna 31851
Postad: Igår 11:13

Jag tycker du verkar ha rätt (jag slog upp analogRead, jag kan inget utantill om Arduino), men det kanske är någon missuppfattning om terminologi, eller så har facit fel. Hur är det med resten av frågorna?

sictransit 2970 – Livehjälpare
Postad: Igår 11:58 Redigerad: Igår 12:06

Du har en analog insignal, en spänning som kan  ha ett oändligt antal värden. 

När den samplats i en ADC (Analog-Digital omvandlare) så har du en digital signal som kan anta 1024 olika värden. 

Om värdet lagras i en int eller float spelar ingen roll. Det som returneras av analogRead() är digitalt, 0-1023, räknas sedan om till (fortfarande digitalt) 0.0-5.0. Flyttalet kommer att ha 1024 olika värden som får representera närmevärden till de oändligt många som den analoga insignalen kan ha. 

Du har alltså omvandlat något kontinuerligt till något diskret, kanske man skulle säga på mattespråk. 

Maja9999 Online 560
Postad: Igår 13:17
sictransit skrev:

Du har en analog insignal, en spänning som kan  ha ett oändligt antal värden. 

När den samplats i en ADC (Analog-Digital omvandlare) så har du en digital signal som kan anta 1024 olika värden. 

Om värdet lagras i en int eller float spelar ingen roll. Det som returneras av analogRead() är digitalt, 0-1023, räknas sedan om till (fortfarande digitalt) 0.0-5.0. Flyttalet kommer att ha 1024 olika värden som får representera närmevärden till de oändligt många som den analoga insignalen kan ha. 

Du har alltså omvandlat något kontinuerligt till något diskret, kanske man skulle säga på mattespråk. 

Var räknas 0-1023 från analogRead om till digitalt motsvarande? 
Så t.ex en spänning mellan 0-5 V som i det här fallet när Vref=5V, så är det alltså inte alltid analogt? Jag trodde att digital bara var 0-1023 värdena

sictransit 2970 – Livehjälpare
Postad: Igår 13:35 Redigerad: Igår 13:47
Maja9999 skrev:
sictransit skrev:

Du har en analog insignal, en spänning som kan  ha ett oändligt antal värden. 

När den samplats i en ADC (Analog-Digital omvandlare) så har du en digital signal som kan anta 1024 olika värden. 

Om värdet lagras i en int eller float spelar ingen roll. Det som returneras av analogRead() är digitalt, 0-1023, räknas sedan om till (fortfarande digitalt) 0.0-5.0. Flyttalet kommer att ha 1024 olika värden som får representera närmevärden till de oändligt många som den analoga insignalen kan ha. 

Du har alltså omvandlat något kontinuerligt till något diskret, kanske man skulle säga på mattespråk. 

Var räknas 0-1023 från analogRead om till digitalt motsvarande? 
Så t.ex en spänning mellan 0-5 V som i det här fallet när Vref=5V, så är det alltså inte alltid analogt? Jag trodde att digital bara var 0-1023 värdena

Den elektriska signalen in till den lilla arduinon är analog, kanske är det spänningen över en resistor vars värde varierar med temperaturen. Det finns oändligt många värden som spänningen kan ha. 

Så fort du mäter den med analogRead() har du ett digitalt värde. Du har bara 1024 olika värden som skall representera samtliga oändligt många olika spänningar in. Man säger att upplösningen är 10 bitar, alltså 2^10=1024. Datorn och ditt program hanterar bara digitala värden. Du kan hantera flyttal/decimaltal, men det är en helt annan sak och skall inte förväxlas med analogt. 

2,500 V in ger värdet 512. 
2,501 V in ger också värdet 512. 
Inte förrän spänningen stiger till 2,505 V får du 513 från analogRead(). 

Analog signal:

Varierar kontinuerligt i tiden och kan anta alla värden.

Digital signal:

Består av mätvärden tagna vid bestämda tidpunkter och kan bara anta vissa diskreta värden.

Maja9999 Online 560
Postad: Igår 13:43
sictransit skrev:
Maja9999 skrev:
sictransit skrev:

Du har en analog insignal, en spänning som kan  ha ett oändligt antal värden. 

När den samplats i en ADC (Analog-Digital omvandlare) så har du en digital signal som kan anta 1024 olika värden. 

Om värdet lagras i en int eller float spelar ingen roll. Det som returneras av analogRead() är digitalt, 0-1023, räknas sedan om till (fortfarande digitalt) 0.0-5.0. Flyttalet kommer att ha 1024 olika värden som får representera närmevärden till de oändligt många som den analoga insignalen kan ha. 

Du har alltså omvandlat något kontinuerligt till något diskret, kanske man skulle säga på mattespråk. 

Var räknas 0-1023 från analogRead om till digitalt motsvarande? 
Så t.ex en spänning mellan 0-5 V som i det här fallet när Vref=5V, så är det alltså inte alltid analogt? Jag trodde att digital bara var 0-1023 värdena

Den elektriska signalen in till den lilla arduinon är analog, kanske är det spänningen över en resistor vars värde varierar med temperaturen. Det finns oändligt många värden som spänningen kan ha. 

Så fort du mäter den med analogRead() har du ett digitalt värde. Du har bara 1024 olika värden som skall representera samtliga oändligt många olika spänningar in. Datorn och ditt program hanterar bara digitala värden. Du kan hantera flyttal/decimaltal, men det är en helt annan sak och skall inte förväxlas med analogt. 

2,500 V in ger värdet 512. 
2,501 V in ger också värdet 512. 
Inte förrän spänningen stiger till 2,505 V får du 513 från analogRead(). 

Analog signal:

Varierar kontinuerligt i tiden och kan anta alla värden.

Digital signal:

Består av mätvärden tagna vid bestämda tidpunkter och kan bara anta vissa diskreta värden.

Ah okej tack :)

Hoppas det gick att förstå skillnaden. Fråga mer annars så skall jag försöka förklara bättre. 

Laguna 31851
Postad: Igår 16:02

När jag väl har en flyttalsvariabel med ett värde mellan 0 och 5,0 så skulle jag behandla den som en analog kvantitet, visserligen med begränsad noggrannhet, men det är kanske inte så man uttrycker sig.

Laguna skrev:

När jag väl har en flyttalsvariabel med ett värde mellan 0 och 5,0 så skulle jag behandla den som en analog kvantitet, visserligen med begränsad noggrannhet, men det är kanske inte så man uttrycker sig.

Om du istället mäter spänningen med en digital multimeter kanske den visar 2,501 V. Decimaler men digitalt. Ett gammalt visarinstrument är däremot analogt. 

Laguna 31851
Postad: Igår 17:24

Förmodligen gör jag misstaget att tänka på skillnaden mellan kontinuerlig och diskret när det står om analog och digital.

Svara
Close