Sida 2 av 7
Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 12:37:48
av jesse
Då är det nog bäst att mäta spänningen på A5 . Kanske det är fel på R2 (glapp).
Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 12:54:51
av Al_Bundy
Tack! Det var ett glapp fel jag hittade! Det var glapp mellan R2 och värst av allt......kabeln som var glapp satt kvar och "låtsades" som den verkligen var ansluten, men den var lös.! Fram med lödpennan!

Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 13:19:04
av Miramithe
Får man fråga vad du ska ha detta till?
Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 13:22:40
av Al_Bundy
Hur gör man så Analogread visar stabilt istället för att svänga så mycket?
Miramithe: Tangentbord som är digitalt...och en bra övning

Jag har flera tryckknappar än bara en som jag visar i schemat. Om jag trycker på knapp nummer 1 så kanske jag får 300 som analogread visar. Trycker jag på knapp nummer 3 så kanske jag får 500. Då ska ett program avgöra vilken knappt jag trycker på.
Men problemet är att om jag har ett motstånd på 30 kOhm och ett annat motstånd på 32 kOhm så visar dom ungefär det samma. Det skiljer vilket är bra men analogread varierar fram och tillbaka. Det är inte stabila värden som den ger.
Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 13:29:12
av Magnus_K
Inte direkt ett svar på din fråga Al_Bundy men jag har faktiskt ett liknande labb på min att-gör-lista.
Idén fick jag från TIP#5 i denna pdf ->
Microchip Tips'n'Tricks.
Nu är det förvisso en Microchip PDF men kan vara värt att läsa (och kanske prova).
Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 13:44:22
av Al_Bundy
Det är nummer #5 jag har gjort, men nu är detta PIC och jag kör AVR fast det ska väll inte vara så stor skillnad mellan dessa ändå?(nu kanske jag får världens kritik eller?)
Jag måste tyvärr ta förlorarbussen in till stan för att köpa en lödpenna. Min gick sönder nyss. Den jag köpte från Alipexress för totalt 21 kr

Denna gång köper jag en lödstation hos Claes Olles.
Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 13:44:44
av sodjan
> Hur gör man så Analogread visar stabilt istället för att svänga så mycket?
Vad är ditt krav för "stabilt" och hur mycket är "så mycket" ?
ADC värderna kommer i princip *alltid* att fladdra lite fram och tillbaka.
+/- 5 enheter är nog normalt, kanske +/- 10 på en labbplatta.
Ska man ner i lägre värden så blir det snabbt ganska avancerat.
Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 14:11:23
av Al_Bundy
Okej. Antingen måste jag byta motstånd så det är större ohmskillnad mellan dessa eller så kan jag göra...? Finns det något annat knep för att få det lite mera stabilt från en ADC omvandlare?
Nyss startat ATmega.
Kod: Markera allt
3000000.00
3000000.00
3000000.00
3000000.00
Trycker in knapp 1
2997067.25
2997067.25
3000000.00
2970674.50
2970674.50
2970674.50
Släpper knapp 1
Trycker in knapp 2
Släpper knapp 2
Trycker in knapp 3 rätt snabbt.
Kod: Markera allt
á1111436.ºj
1108504.37
1114369.50
1108504.37
Trycker in knapp 4 rätt snabbt efter jag släppte knapp 3.
Kod: Markera allt
2932551.25
á2929618.75
2935484.00
2932551.25
Trycker in knapp 5 rätt snabbt efter jag släppte knapp 4.
Kod: Markera allt
2997067.25
2994135.00
2997067.25
2991202.25
2991202.25
Knapp 6.
Kod: Markera allt
2985¦¦Iªj
2982404.75
2988269.75
2988269.75
Knapp 7
Knapp 8
Trycker inte in någon knapp.
Knapp 9.
Kod: Markera allt
2530791.75
253372Iªj
2533724.25
á2533724.25
Släpper knapp 9.
Kod: Markera allt
2953079.00
295894Iªj
2953079 j
2956011.75
3000000.00
2997067.25
3000000.00
2997067.25
Så är mellan rummen för mig. Jag vill kunna helst skilja mellan dessa. Som du ser så är det inte stor skillnad mellan vissa knappar, men ändå en mätbar skillnad.
Jag hade tänkt och använda mig av en
switch case för att bestämma vilka knappar jag trycker på med hjälp av > och < operatorerna.
Kod: Markera allt
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A5);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * 3000000.0/1023.0;
// print out the value you read:
Serial.println(voltage);
delay(500);
}
Så här ser det ut om jag kör utan dividering.
Knapp 1
Knapp 2
Knapp 3
Kod: Markera allt
á54.00
54.00
54.00
54.00Cá54.00
55.0j
54.00
Knapp 4
Kod: Markera allt
997.00
998.00
999.00
998.00
997.00
998.00
999.00
Knapp 5
Knapp 6
Kod: Markera allt
1018 j
102rj
1021.00
1017.00
1017.00
1018.00
1017.0j
1018.00
1018.00
Knapp 7
Knapp 8
Kod: Markera allt
178.00
177.00
177.00
177.j
177.00
177 j
178.00
Knapp 9
Kod: Markera allt
1018.00
1017.00
1017.00
1017.j
1015.00
1015.00
1015.00
Knapp 0
Kod: Markera allt
864.00
864.00
864.00
864.00
865.00
865.00
866.00
Knapp *
Kod: Markera allt
1009.00
1008.00
1008.00
á1007.00
á1009.00
1006.00
1008.00
Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 14:33:17
av sodjan
Lite underliga värden. Varför har du *7* siffror plus 2 decimaler !?
Du kan lika gärna köra med ADC värdet direkt, att gå omvägen via
en omräkning till något som ska likna "volt" är helt onödigt.
Hur som helst, har du räknat på hur mycket det faktiskt "fladdar"?
3000000.00
2997067.25
Skillnad: 2933.
Eller 3000000/2973 = ca 0.1 %.
Det är ju upplösningen för en 10 bitars ADC!
Alltså "fladdrar" det enbart en LSB, vilket är fantastiskt bra!
Du kan själv räkna på de andra värderna...
Re: Sv: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 14:34:48
av Miramithe
Denna koppling har 1k ohm. Ska jag bygga ihop och testa?
Edit bilden kom inte med. Ska fixa på datorn ...
Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 14:45:46
av Al_Bundy
sodjan skrev:Lite underliga värden. Varför har du *7* siffror plus 2 decimaler !?
Du kan lika gärna köra med ADC värdet direkt, att gå omvägen via
en omräkning till något som ska likna "volt" är helt onödigt.
Hur som helst, har du räknat på hur mycket det faktiskt "fladdar"?
3000000.00
2997067.25
Skillnad: 2933.
Eller 3000000/2973 = ca 0.1 %.
Det är ju upplösningen för en 10 bitars ADC!
Alltså "fladdrar" det enbart en LSB, vilket är fantastiskt bra!
Du kan själv räkna på de andra värderna...
Knapp 1
Knapp 2
Knapp 3
Knapp 4
Knapp 5
Knapp 6
Knapp 7
Knapp 8
Knapp 9
Knapp 0
Knapp *
Knapp #
Ingen knapp intryckt
Vad står alla %&¤r osv för? Är det typ ungefär som man kan skriva 10L som är ett långt tal?
Om det inte finns andra lösningar så måste jag byta motstånd som skiljer dem mer åt.
Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 14:49:21
av Al_Bundy
Så här ser mitt tangentbord ut. Digitalt t.o.m
I mitten längst ned är ingångarna för att mäta resistansen.
Första rad från vänster: 1,2,3,4,5
Andra rad från vänster: 6,7,8,9,0
Tredje rad från vänster: *, #

Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 15:00:57
av sodjan
Utan att veta hur det hela är kopplat så skulle jag
säga att det är störningar i överföringen. Eller någon
bug i utskriftrutinen, men det är nog mindre sannolikt.
Men dina värden ser ju väldigt stabila och bra ut!
> så måste jag byta motstånd
Från vadå?
Varför ligger t.ex knapp 6 och 7 så nära varandra?
Har du inte samma motstånd hela vägen?
Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 15:16:03
av Nerre
Al_Bundy skrev:Vad står alla %&¤r osv för? Är det typ ungefär som man kan skriva 10L som är ett långt tal?
Störningar, skulle jag tro. (Om du menar det som skrivs ut.)
Re: Arduino: Analogread visar endast 1023 hela tiden!
Postat: 7 mars 2014, 15:42:23
av SeniorLemuren
På bilden som visa kretskortet från baksidan så ser det ut som om du har olika resistans på motstånden på de olika knapparna.
Eller ser jag fel? Vissa in-värden visat bra skillnad mellan de olika knapptryckningarna medans vissa (som sodjan påpekade) ligger väldigt nära varandra, det kan medföra osäker bedömning om vilken knapp som är tryckt.
Med samma resistans på alla motstånd borde det inte vara några som helst problem att få det att funka.