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?
Säger facit att påstående 1 är sant?
Laguna skrev:Säger facit att påstående 1 är sant?
ja
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?
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.
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
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.
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ärdenaDen 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.
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.
Förmodligen gör jag misstaget att tänka på skillnaden mellan kontinuerlig och diskret när det står om analog och digital.