Jag vill gärna vilja avläsa ca 500 kontaktpunkter med en microprocessor. Omöjligen tror jag inte att det finns så många portar. Har tänkt på multiplexering,logik eller liknande,sneglade lite på konsten att avläsa matriser mm.
Jag tror det finns någon smartis som har bättre koll på läget.
Help me,gärna med så få portar som möjligt=billig,PIC står mig närmast (enda jag kan)
Går det inte att ha en pulls givare och ett par synk punkter. Så att man får hålla räkningen. Vad ska det vara till? Att lösa det som en matris är inte så svårt men jag är inte så säker på att det är den bästa lösningen.
Om du ska ha en krets som mäter 500 kontaktpunkter , men bara en kontaktpukt åt gången så är det fixat med en j*vla massa lödanded och dioder.
256, 128, 64, 32, 16, 8, 4, 2, 1
Om vi har så värdera adderas i mjukvaran så har vi 9 utgångar att hålla reda på.
Du har ju 4 ingångar på seriellen och sen har du ett antal adressingångar på paralellen , kanske 5 st.
Då har du en färdig krets för att läsa av 500 brytare.
Du kommer behöver ÖVER 500 dioder då varje brytare måste ha minst 1 diod.
Om du vill kan du läsa av ytterligare 11 brytare , kanske för en 0-9 knappsats med enter-knapp.
Tänk på att du måste koppla det hela som en "common-point" krets.
Dvs att du har en gemensam och sedan en signal ut för varje knapp.
Sedan måste du ha någon form av 5volt spänning att lägga på common-tråden.
Denna lägesgivaren hade jag tänkt bli ett digitalt vattenpass där en kula ska rulla i en trumma med mer än 360 kontaktpunkter där varje kontaktpunkt är 1 grad gärna fler punkter för bättre upplösning.Hade en ide om en sorts uteslutnings-logik(kombinatorisk) för att fördela så många punkter på en få portars processor där kontaktpunkterna granne med den aktuella punkten som kulan befinner sig över inte avläses från samma port. En annan sak som jag fick tips om kunde kunna vara en räknare eller någon mer sekventiell lösning kanske?
Det var nog den jobbigaste metoden för att göra ett vappenpass jag hört talas om ... men ett sätt kanske kan vara att seriekoppla en väldans massa motstånd och läsa av en analog spänning istället. 360 lägen borde faktiskt gå bra att skilja på med en 10bits AD. Annars dela upp det i två halvor om 180 lägen.
Det känns lite onödigt att ha en matris om bara en punkt ska vara aktiv åt gången.
edit: och fler, upp till 1024 lägen går ju också att ha, kanske med en viss osäkerhet +/- ett läge, men det är väl inte så kritiskt i det här fallet.
En tredje variant är att använda en PSD (positionsdetektor). Då får du ut en analog spänning som har extrem upplösning som du kan göra vad du vill med, t.ex. omvandla i en ADC. Och den går att göra väldigt liten.