Hjälp med att läsa av analoga signaler
Hjälp med att läsa av analoga signaler
Har en knappsats i en bil jag försöker läsa av analogt med en arduino men kör lite fast pga bristande kunskap.
Invändigt fungerar knappen enligt schemat till vänster, något förenklat.
Nuvarande inkoppling är enligt högra schemat där övre motståndet är för spänningsdelning.
Har tyvärr ingen bra bild på knappsatsen invändigt men verkar fungera snarlikt detta, dvs en gummi yta med någon sorts beläggning som sluter kretsen när den trycks ner mot kretskortet. För att läsa av detta med en arduino har jag använt en spänningsdelare och ska då få ut 0V, 0.12V, 1.73V och 4.8V.
Dock på grund av "brus" eller snarare ojämnt motstånd i knappsatsen beroende på väder, vind, temperatur, planeternas position och så vidare så svajjar dessa värden rejält.
Min nuvarande approach är ganska simplistisk, att försöka fånga ett intervall med en IF loop och därefter bestämma vad utsignalen ska göra.
Problemet uppstår att pga 0 och 0.12V har så liten marginal och knappsatsen är lynnig så kan dom gränserna flyta omkring så pass mycket att dom går om varandra.
Dvs ibland läser arduinon av 0.04V när den bör få 0.12V och tror att det är 0V nivån som är aktiverad och vice versa ... Dom högre nivåerna verkar vara tillräckligt "långt emellan" för att inte få samma problem.
Dom 8V som kretsen förses med är stabilt så allt "svaj" kommer från knappsatsen och dess inre motstånd är svåra/omöjliga att göra något åt.
Finns det något smartare sätt att hantera detta på än en enkel spänningsdelare?
På något sätt får dom det att fungera bra i den ursprungliga tillämpningen så rimligtvis är det något jag missar/inte vet om.
Hade varit mycket tacksam för tankar och idéer!
Invändigt fungerar knappen enligt schemat till vänster, något förenklat.
Nuvarande inkoppling är enligt högra schemat där övre motståndet är för spänningsdelning.
Har tyvärr ingen bra bild på knappsatsen invändigt men verkar fungera snarlikt detta, dvs en gummi yta med någon sorts beläggning som sluter kretsen när den trycks ner mot kretskortet. För att läsa av detta med en arduino har jag använt en spänningsdelare och ska då få ut 0V, 0.12V, 1.73V och 4.8V.
Dock på grund av "brus" eller snarare ojämnt motstånd i knappsatsen beroende på väder, vind, temperatur, planeternas position och så vidare så svajjar dessa värden rejält.
Min nuvarande approach är ganska simplistisk, att försöka fånga ett intervall med en IF loop och därefter bestämma vad utsignalen ska göra.
Problemet uppstår att pga 0 och 0.12V har så liten marginal och knappsatsen är lynnig så kan dom gränserna flyta omkring så pass mycket att dom går om varandra.
Dvs ibland läser arduinon av 0.04V när den bör få 0.12V och tror att det är 0V nivån som är aktiverad och vice versa ... Dom högre nivåerna verkar vara tillräckligt "långt emellan" för att inte få samma problem.
Dom 8V som kretsen förses med är stabilt så allt "svaj" kommer från knappsatsen och dess inre motstånd är svåra/omöjliga att göra något åt.
Finns det något smartare sätt att hantera detta på än en enkel spänningsdelare?
På något sätt får dom det att fungera bra i den ursprungliga tillämpningen så rimligtvis är det något jag missar/inte vet om.
Hade varit mycket tacksam för tankar och idéer!
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
- Klas-Kenny
- Inlägg: 11718
- Blev medlem: 17 maj 2010, 19:06:14
- Ort: Växjö/Alvesta
Re: Hjälp med att läsa av analoga signaler
Det är ju tre knappar, men fyra olika nivåer?
Vad är det som gör 0 ohm till jord?
Som jag förstår borde du inte behöva särskilja 0 och 0.12V, utan kan snarare se det som "Allt under 0.5V innebär att knappen med 30 ohm är intryckt".
Edit: Eller det är fyra knappar? Den på bilden är inte likadan som din..?
Om så är fallet, prova att byta 2k motståndet till tex. 470 ohm så får du kanske något trevligare spänningsnivåer. Sen är nog 8V olämpligt, inte helt snällt mot Arduinon när du inte trycker ned någon knapp. Antar att den tål max 5V...
Vad är det som gör 0 ohm till jord?
Som jag förstår borde du inte behöva särskilja 0 och 0.12V, utan kan snarare se det som "Allt under 0.5V innebär att knappen med 30 ohm är intryckt".
Edit: Eller det är fyra knappar? Den på bilden är inte likadan som din..?
Om så är fallet, prova att byta 2k motståndet till tex. 470 ohm så får du kanske något trevligare spänningsnivåer. Sen är nog 8V olämpligt, inte helt snällt mot Arduinon när du inte trycker ned någon knapp. Antar att den tål max 5V...
Re: Hjälp med att läsa av analoga signaler
Schemat blir nog lite missvisande, tänkte inte på det.
Knappen är till fönsterhissarna och har därmed 2 nivåer "ned", neutralt imellan(finns inte i skissen) och två nivåer upp.
Dumt nog ligger nivåerna inte i den ordningen utan längst ner är 0V och första nivån upp är 0.11V, vilket såklart ställer till det.
4 läges-switchen är därmed dom 4 olika nivåerna som knappen kan tryckas i.
Knappen är till fönsterhissarna och har därmed 2 nivåer "ned", neutralt imellan(finns inte i skissen) och två nivåer upp.
Dumt nog ligger nivåerna inte i den ordningen utan längst ner är 0V och första nivån upp är 0.11V, vilket såklart ställer till det.

4 läges-switchen är därmed dom 4 olika nivåerna som knappen kan tryckas i.
- Synesthesia
- Inlägg: 655
- Blev medlem: 22 januari 2010, 19:14:10
- Ort: Mellan Göteborg och Kungsbacka
Re: Hjälp med att läsa av analoga signaler
Du skulle behöva lägre värde på R8 för att se skillnad på 30Ω och 0Ω, men då blir det svårare med de högre värdena istället.
Eller du skulle kunna ha en ytterligare "pullup" med lägre värde från en lägre spänning genom en diod, då från en spänning som (inklusive diod) ligger under den som blir när du trycker 560Ω.
Eller du skulle kunna ha en ytterligare "pullup" med lägre värde från en lägre spänning genom en diod, då från en spänning som (inklusive diod) ligger under den som blir när du trycker 560Ω.
Re: Hjälp med att läsa av analoga signaler
Klas-kenny: Sorry mitt förra svar gick lite fort.
Problemet är att så som knappen fungerar så har den bakgrundsbelysning som har 8V, och detta går genom knappsatsen invändigt som sen jordar någon av dom 4 lägena.
Hade inte ens tänkt på att den pga pullup får 8V, verkar funka än så länge.
Mycket riktigt så är den på bilden inte samma, utan bara för att visa på "typen" av konstruktion, om det spelar roll för att den är så svajjig.
Halverade jag R8 så skiljer det 0.233V istället för 0.118V så blir i princip hälften så svårt att se skillnaden där, kanske räcker. Får lite överspänning med R6 på 5.2V men uppenbarligen verkar 8V på analog in funka, för stunden.
Får programmera om på något sätt om jag ska köra så. För nuvarande anses knappen vara opåverkad om den ger 1023 som analogt värde men det kommer då även ske vid bruk av R6.
Synesthesia: Den lösningen var riktigt spännande!
Har bara testat lite grann men ..
5V med diod och 220ohm motstånd.
8V med 1.5k motstånd.
Ger nivåerna 0V, 0.64V, 3.55V, 4.45V.
Något hög ström på 24.7mA om den analoga ingången nu låter ström flöda eller beter dom sig när man mäter spänning med multimeter?
Testade med 2.5V+diod dvs 1.8 någonstans.
0V, 0.53V, 2.15V och 4.43V
Ger nog bäst marginal åt alla håll än så länge.
Problemet är att så som knappen fungerar så har den bakgrundsbelysning som har 8V, och detta går genom knappsatsen invändigt som sen jordar någon av dom 4 lägena.
Hade inte ens tänkt på att den pga pullup får 8V, verkar funka än så länge.


Mycket riktigt så är den på bilden inte samma, utan bara för att visa på "typen" av konstruktion, om det spelar roll för att den är så svajjig.
Halverade jag R8 så skiljer det 0.233V istället för 0.118V så blir i princip hälften så svårt att se skillnaden där, kanske räcker. Får lite överspänning med R6 på 5.2V men uppenbarligen verkar 8V på analog in funka, för stunden.
Får programmera om på något sätt om jag ska köra så. För nuvarande anses knappen vara opåverkad om den ger 1023 som analogt värde men det kommer då även ske vid bruk av R6.
Synesthesia: Den lösningen var riktigt spännande!
Har bara testat lite grann men ..
5V med diod och 220ohm motstånd.
8V med 1.5k motstånd.
Ger nivåerna 0V, 0.64V, 3.55V, 4.45V.
Något hög ström på 24.7mA om den analoga ingången nu låter ström flöda eller beter dom sig när man mäter spänning med multimeter?
Testade med 2.5V+diod dvs 1.8 någonstans.
0V, 0.53V, 2.15V och 4.43V
Ger nog bäst marginal åt alla håll än så länge.
Re: Hjälp med att läsa av analoga signaler
Uppdaterat schemat en del.
5 positions switch så det återspeglar verkligheten bättre. Ingen kontakt, 0, 30, 550 och 1870 ohm.
R9 agerar pulldown och ser till att A0 inte ser mer än ca 5.3V om knappen är opåverkad.
D1 och R7 drar upp nivåerna för R4 enligt Synesthesias förslag.
Testat lite värden fram och tillbaka och detta verkar rätt ok.
Ger 0V, 0.57V, 2.4V och 3.9V, tappar lite på toppen pga min pulldown men intervallen emellan varje steg bör vara goda nog.
5 positions switch så det återspeglar verkligheten bättre. Ingen kontakt, 0, 30, 550 och 1870 ohm.
R9 agerar pulldown och ser till att A0 inte ser mer än ca 5.3V om knappen är opåverkad.
D1 och R7 drar upp nivåerna för R4 enligt Synesthesias förslag.
Testat lite värden fram och tillbaka och detta verkar rätt ok.
Ger 0V, 0.57V, 2.4V och 3.9V, tappar lite på toppen pga min pulldown men intervallen emellan varje steg bör vara goda nog.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
-
- Inlägg: 8402
- Blev medlem: 15 april 2006, 18:57:29
- Ort: Typ Nyköping
Re: Hjälp med att läsa av analoga signaler
Ditt verkliga problem.är dina "strömbrytare" de kan i slutet tillstånd vara från 50 Ohm till uppåt 1000 Ohm (eller mer när de blir äldre).
Provmät många gånger på de olika knapparna och olika hårt på olika delar av knappen så får du bättre förutsättningar för att göra en vettig konstruktion.
Provmät många gånger på de olika knapparna och olika hårt på olika delar av knappen så får du bättre förutsättningar för att göra en vettig konstruktion.
Re: Hjälp med att läsa av analoga signaler
Sen borde du kosta på dig ett enklare lågpassfilter på utsignalen till AD.
Re: Hjälp med att läsa av analoga signaler
limpan4all: Ja strömbrytarna är inte toppen men lite låst vid dom pga originaldel till bilen och vill behålla utseendet.
Tror jag ska kosta på mig en ny knappsats till nästa revision och se om det ger mer stabila värden.
ToPNoTCH: Vad skulle det ge för effekt?
Jag förstår att ett LP filter blockerar högre frekvenser men skulle det ge en bättre avläsning när det handlar om likström?
Tror jag ska kosta på mig en ny knappsats till nästa revision och se om det ger mer stabila värden.
ToPNoTCH: Vad skulle det ge för effekt?
Jag förstår att ett LP filter blockerar högre frekvenser men skulle det ge en bättre avläsning när det handlar om likström?
Re: Hjälp med att läsa av analoga signaler
Säg avkopplings kondensator då..Dock på grund av "brus" eller snarare ojämnt motstånd i knappsatsen beroende på väder, vind, temperatur, planeternas position och så vidare så svajjar dessa värden rejält.
Re: Hjälp med att läsa av analoga signaler
Du kanske skulle mäta strömmen istället?
Du kan ju mäta med en multimeter till att börja med och anteckna resultaten.
Du kan ju mäta med en multimeter till att börja med och anteckna resultaten.
Re: Hjälp med att läsa av analoga signaler
De där 24.7mA du skriver om rimmar inte med schemat?
Re: Hjälp med att läsa av analoga signaler
Menade absolut inte att ifrågasätta, var genuint nyfken på varför man använder det.
Men alright, då fattar jag nog lite sammanhanget med citatet, typ glättning av signalen för att minska oväsenet.
4kTRB: 24.7mA var vad programmet (Proteus) räknade fram, inte orkat verifiera om det var rätt. Också provat lite för många olika uppsättningar så kan vara att jag kommit ihåg fel siffror eller blandat ihop.
Ska testa mäta strömmen för nästa revision och se om det på något sätt ger pålitligare resultat!
Re: Hjälp med att läsa av analoga signaler
Störningarna är ju dock växelspänning, medan den önskade signalen är likspänning (så länge knapparna hålls i ett visst läge), så därav förslaget på konding från Topnotch.
Håller med limpan4all att knapparna är väl inte jättebra.
Bonus: Mekar du med detta för att ordinarie elektronik strular? I så fall så kanske det i sin tur beror på att knapparnas ledande material är slut.
Det är ett vanligt problem att det ledande gummit eller vad det nu är för material blir kass. Det kan gå att laga med t.ex. Biltemas reparationsjox för trasiga bakruteelvärmetrådar eller liknande. Tror också jag läst om folk som helt enkelt "målat" ytan rikligt med blyertspenna, men jag kan minnas fel.
Eller tänker du använda en extra fönsterhissknappsats till egna grejer, för att få fler knappar i fordonet som matchar fordonens befintliga design så att säga? I så fall modda knappsatsen så att du t.ex. får en ledare per knapp eller motståndsvärden som är mer lämpliga.
Gravt sidospår. Det finns en de-facto-standard för trådfjärrkontroller till videobandspelare från början av 80-talet som använder motståndsstege på liknande vis. Också så har vissa ganska nya bilstereo ingång för trådfjärr på liknande vis, tror t.ex. Pioneer har detta. Minns inte om motståndsvärdena är kompatibla mellan dessa. Som sidospår på detta sidospår så kan nämnas dels att pause är 0 ohm, för att denna ingång ska gå att använda med on/off-avtryckare på separat videokamera. Ytterligare ett sidospår är att Hitachi VT-88 och OEM-varianten B&O VHS 90 använder denna standard för sina interna knappar, och ifall man ansluter en extern fjärr parallellt så får man slowmotion som annars inte finns officiellt. De har motorstyrning/mekanik osv för video med long play, men trumma med två huvuden för video i normal hastighet och två huvuden för hifiljud som funkar både för normal hastighet och longplay, och växlar normalt mellan endast ljud för longplay och bild+ljud i normal hastighet, men som sagt med fjärrkontrollen kan man titta på inspelad bild i halv hastighet.
Allt detta upptäckte jag tack vare att jag har en sån B&O som jag under många år saknade deras specialfjärrkontroll till, men jag hade en trådfjärr och upptäckte att motståndsstegen stämde direkt, så jag anslöt den. När jag ändå berättar anekdoter som extremt avlägset har en svag koppling till tråden så kan jag också passa på att fjärren till B&O TV som kan styra denna video har firmwarefel som gör att när den ska återgå till att styra TV istället för video efter nån minut så växlar den inte bara sina knappars betydelse utan sänder även "stäng av"-fjärrkontrollkod till videon, så man måste lägga fjärrkontrollen i soffan riktad mot ryggstödet när man använt den. Detta är ändå B&O, som skulle vara ett av de lyxigaste märkena inom området 
Håller med limpan4all att knapparna är väl inte jättebra.
Bonus: Mekar du med detta för att ordinarie elektronik strular? I så fall så kanske det i sin tur beror på att knapparnas ledande material är slut.
Det är ett vanligt problem att det ledande gummit eller vad det nu är för material blir kass. Det kan gå att laga med t.ex. Biltemas reparationsjox för trasiga bakruteelvärmetrådar eller liknande. Tror också jag läst om folk som helt enkelt "målat" ytan rikligt med blyertspenna, men jag kan minnas fel.
Eller tänker du använda en extra fönsterhissknappsats till egna grejer, för att få fler knappar i fordonet som matchar fordonens befintliga design så att säga? I så fall modda knappsatsen så att du t.ex. får en ledare per knapp eller motståndsvärden som är mer lämpliga.
Gravt sidospår. Det finns en de-facto-standard för trådfjärrkontroller till videobandspelare från början av 80-talet som använder motståndsstege på liknande vis. Också så har vissa ganska nya bilstereo ingång för trådfjärr på liknande vis, tror t.ex. Pioneer har detta. Minns inte om motståndsvärdena är kompatibla mellan dessa. Som sidospår på detta sidospår så kan nämnas dels att pause är 0 ohm, för att denna ingång ska gå att använda med on/off-avtryckare på separat videokamera. Ytterligare ett sidospår är att Hitachi VT-88 och OEM-varianten B&O VHS 90 använder denna standard för sina interna knappar, och ifall man ansluter en extern fjärr parallellt så får man slowmotion som annars inte finns officiellt. De har motorstyrning/mekanik osv för video med long play, men trumma med två huvuden för video i normal hastighet och två huvuden för hifiljud som funkar både för normal hastighet och longplay, och växlar normalt mellan endast ljud för longplay och bild+ljud i normal hastighet, men som sagt med fjärrkontrollen kan man titta på inspelad bild i halv hastighet.


Re: Hjälp med att läsa av analoga signaler
Låter mycket rimligt med kondensator då, ska bli spännande att se vad som händer med mina avlästa värden!
Misstänker att knappsatsen är fuktskadad, även om den "ser" OK ut inuti så kommer den från en bil som stått ute längre tid utan framruta. Så får definitivt bli en "ny" när jag nu orkar ta tag i detta projekt igen, typ i vår.
Anledningen till den här lösningen är att bilen inte haft el-hissar innan.
Oavsett hur man gör så måste man flytta över elhissarna som sitter på en "plåt" bakom själva dörrsidan och tillhörande dörrsida med knappsatser osv. Därefter skiljer det sig lite.
Alternativ 1:
Flytta över hela kabelstammen från donatorbil med elhissar(mycket dryg att få ur hel, ännu värre att få in igen) och därefter genomlida en väldigt dåligt dokumenterad process för att lyckas programmera om någon "klimatdator" i bilen, under förutsättning att den man tar från donatorbilen fortfarande fungerar. Av någon anledning måste dom programmeras in för varje bil dom hamnar i och dom finns i många olika varianter dvs ingen garanti att donatorn kommer fungera för det som redan finns i vår bil osv.
Jag la någon vecka på att rota i detta men för varje svar uppstår 10 frågor ...
Alternativ 2. Flytta bara över mekanik/dörrsidor/knappsatser och gör en egen styrdator som tolkar knapparna, dra någon enstaka extra kabel t.ex till fönsterhissmotorerna och knappar.
Fönsterhissarna "original" är "smarta" med någon sorts canbus, vilket såklart lett till att dom var en väldigt vanlig felkälla på dessa bilar ..
Min lösning blev att lobotomera dom och bara driva hissmotorn rakt av, färre felkällor och betydligt färre kablar ut i varje dörr, tror jag sparade mellan 4 och 8 kablar/ledare per dörr men kan komma ihåg fel.
"Grundkravet" var att det skulle se relativt original ut invändigt så eventuella, mer pålitliga, hemmabyggen föll bort.
Misstänker att knappsatsen är fuktskadad, även om den "ser" OK ut inuti så kommer den från en bil som stått ute längre tid utan framruta. Så får definitivt bli en "ny" när jag nu orkar ta tag i detta projekt igen, typ i vår.
Anledningen till den här lösningen är att bilen inte haft el-hissar innan.
Oavsett hur man gör så måste man flytta över elhissarna som sitter på en "plåt" bakom själva dörrsidan och tillhörande dörrsida med knappsatser osv. Därefter skiljer det sig lite.
Alternativ 1:
Flytta över hela kabelstammen från donatorbil med elhissar(mycket dryg att få ur hel, ännu värre att få in igen) och därefter genomlida en väldigt dåligt dokumenterad process för att lyckas programmera om någon "klimatdator" i bilen, under förutsättning att den man tar från donatorbilen fortfarande fungerar. Av någon anledning måste dom programmeras in för varje bil dom hamnar i och dom finns i många olika varianter dvs ingen garanti att donatorn kommer fungera för det som redan finns i vår bil osv.
Jag la någon vecka på att rota i detta men för varje svar uppstår 10 frågor ...
Alternativ 2. Flytta bara över mekanik/dörrsidor/knappsatser och gör en egen styrdator som tolkar knapparna, dra någon enstaka extra kabel t.ex till fönsterhissmotorerna och knappar.
Fönsterhissarna "original" är "smarta" med någon sorts canbus, vilket såklart lett till att dom var en väldigt vanlig felkälla på dessa bilar ..
Min lösning blev att lobotomera dom och bara driva hissmotorn rakt av, färre felkällor och betydligt färre kablar ut i varje dörr, tror jag sparade mellan 4 och 8 kablar/ledare per dörr men kan komma ihåg fel.
"Grundkravet" var att det skulle se relativt original ut invändigt så eventuella, mer pålitliga, hemmabyggen föll bort.
