Meerdere fsr sensoren op 1 analoge ingang

Betreft een teensy microcontroller board:

Om meer sensoren te kunnen lezen dan er analoge ingangen zijn, had ik de volgende oplossing gevonden: sluit meerdere sensoren aan op 1 ingang en voorzie deze om de beurt van een voedingsspanning door het in en uitschakelen van digitale uitgangen.

Om nu de spanning van een bepaalde FSR te bepalen lees je de analoge ingang uit en kijk je welke FSR op dat moment gevoed werd, de gemeten waarde hoort dan bij deze sensor.

Dit lijkt te werken, echter alleen maar als ik een substantiele wachttijd inbouw na het switchen van de uitgangen. deze moet wel 500 microseconden zijn. Als deze korter is krijg ik false positives, ik krijg dan signaal voor beide sensoren op de zelfde lijn.

Hoe zou dit kunnen? iemand enig idee?

Alvast bedankt!

Nuja, 0,5 ms is geen eeuwigheid..

In theorie zou ik verwachten dat het helemaal niet (goed) werkt omdat analoge uitgangen van veel sensoren push-pull zijn en ongeschikt voor een analoge wired OR. Ook ESD diodes kunnen een goede werking van een OR verhinderen als de voeding 0V is.
Een gebruikelijke oplossing voor meer analoge ingangen is een analoge schakelaar (4051, 4066, 4067) of, afhankelijk van de precieze sensor en toepassing, uiteraard een geheel digitale oplossing.

Op 22 oktober 2018 12:04:42 schreef Aart:
Nuja, 0,5 ms is geen eeuwigheid..

In theorie zou ik verwachten dat het helemaal niet (goed) werkt omdat analoge uitgangen van veel sensoren push-pull zijn en ongeschikt voor een analoge wired OR. Ook ESD diodes kunnen een goede werking van een OR verhinderen als de voeding 0V is.
Een gebruikelijke oplossing voor meer analoge ingangen is een analoge schakelaar (4051, 4066, 4067) of, afhankelijk van de precieze sensor en toepassing, uiteraard een geheel digitale oplossing.

Ik weet niet precies wat je bedoelt met pull-push, maar ter verduidelijking: het betreft hier zelf gemaakte sensoren van velostat, een folie waarvan de weerstand veranderd als er druk op wordt uitgeoefend. Het gaat om een midi-xylofoon die ik aan het bouwen ben, dus veel ingangen en hele korte pulsen. Ik probeer wachttijden dan ook zoveel mogelijk te voorkomen

Je zou ook een weerstand in serie kunnen plaatsen met de folie.

ik weet de weerstand van je velostat niet dus heb maar wat waardes gegeven voor de weerstanden

Have you debounced your buttons today?

Bovenstaand idee gaat niet werken besef ik me net.

[Bericht gewijzigd door meetlint op maandag 22 oktober 2018 12:41:50 (17%)

Have you debounced your buttons today?

Remcoh, Ik DENK dat ik weet hoe je je schema in mekaar hebt gezet, maar ik kan het verkeerd hebben. Maar misschien gokken anderen verkeerd. Of ik. Dus effe snel een schematje tekenen en posten is wel een goed plan.

Ik denk dat het zou moeten werken. De capaciteit van deze sensoren, ook de zelfgemaakte is fors. Dus ja: Na het omschakelen kan je nog enige tijd de oude waarde zien.....

Ik zou de code zo opzetten:

code:


  while (1) {

     select_bank (0); // sensoren 0-9 aan
     delay_us (500);
     domeasurements (dest= &sensordata[0]);

     select_bank (1); // sensoren 10-19 aan
     delay_us (500);
     domeasurements (dest= &sensordata[10]);


     select_bank (2); // sensoren 20-29 aan
     delay_us (500);
     domeasurements (dest= &sensordata[20]);
  }

Let er op dat je de voedingspin van sensoren die je uitzet op "tristate" zet, niet zomaar op nul.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Have you debounced your buttons today?

Op 22 oktober 2018 12:58:35 schreef rew:
Remcoh, Ik DENK dat ik weet hoe je je schema in mekaar hebt gezet, maar ik kan het verkeerd hebben. Maar misschien gokken anderen verkeerd. Of ik. Dus effe snel een schematje tekenen en posten is wel een goed plan.

Ik denk dat het zou moeten werken. De capaciteit van deze sensoren, ook de zelfgemaakte is fors. Dus ja: Na het omschakelen kan je nog enige tijd de oude waarde zien.....

Ik zou de code zo opzetten:

code:


  while (1) {

     select_bank (0); // sensoren 0-9 aan
     delay_us (500);
     domeasurements (dest= &sensordata[0]);

     select_bank (1); // sensoren 10-19 aan
     delay_us (500);
     domeasurements (dest= &sensordata[10]);


     select_bank (2); // sensoren 20-29 aan
     delay_us (500);
     domeasurements (dest= &sensordata[20]);
  }

Let er op dat je de voedingspin van sensoren die je uitzet op "tristate" zet, niet zomaar op nul.

1: Dankjewel Een schema is inderdaad wel handig, weet je daar een goed tooltje voor?

2: dus een settle-time van 500 us is niet vreemd? (leek me zo lang) is er iets wat ik zou kunnen doen om dit zo kort mogelijk te houden?

3: aha: ik heb inderdaad de voedingspin op 0 gezet, raar dat het ondanks dat toch nog werkt. zou dit nog invloed kunnen hebben om het capaciteitsprobleem?

Op 22 oktober 2018 13:02:11 schreef meetlint:
[bijlage]

Ik snap hem helaas niet, hoe kun je nou bepalen welke fsr je aan het lezen bent?

In de bovenste stijgt de spanning bij 1 fsr indrukken en daalt bij de ander.
bij de 2e is het niet mogelijk.
Het waren maar wat snelle hersenspinsels van me.

Have you debounced your buttons today?
Arco

Special Member

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com