Twee signalen van verschillende voltages lezen met één input

Dag iedereen,

Voor een projectje met een arduino probeer ik op elke analoge pin twee inputs te lezen. Enerzijds een button die door een gebruiker ingedrukt kan worden, anderzijds een puls komende van een Raspberry Pi Zero.

Mijn oplossing is als volgt:
http://www.bodicker.be/images/arduino/read2inputs1pin_2.jpg

Als ik de simulatie run, lijkt alles goed te gaan. Druk ik de knop in, dan loopt er 2.5mA door de linkse ammeter, en meet ik 5V. Als de Pi een puls geeft, dan loopt er 1.42mA door de onderste ammeter, en meet ik 2.83V. Op die manier kan ik dus mooi een onderscheid maken tussen de button en de puls.

Mijn probleem stelt zich echter als beiden tegelijk komen: dan meet ik 5V (wat op zich geen probleem is, een druk op de knop moet voorrang krijgen op de puls), maar volgens de simulatie meet ik in de onderste ammeter ook -171.44nA. Lijkt me verwaarloosbaar, en door de diode rechts vloeit er geen stroom van de Arduino naar de Pi, maar ik vraag me toch af waar de simulatie die waarde dan vandaan haalt. Mag ik deze (mini-)stroom dan ook zomaar negeren?

Bijkomend stel ik me de vraag of ik aan de kant van de Arduino best ook geen diode zet. Normaal gezien zal de spanning van de Pi nooit meer dan 3.3V bedragen, en zal er dus nooit stroom vloeien van de Pi naar de Arduino en is er geen diode nodig. De simulatie toont ook 0A bij een puls en een open knop. Of zie ik dit toch fout?

Aangezien ik erg veel moeite heb gehad om een resem Pi Zeros bij elkaar te krijgen, zou ik graag wat meer zekerheid hebben alvorens het in het werkelijke leven te testen :)

Alvast bedankt!

Marlon

PS. voor diegenen die interesse hebben in de simulator, deze vond ik hier:
http://www.falstad.com/circuit/circuitjs.html
Ik vind 'm nogal handig, en er zitten veel voorbeelden bij - wie weet heeft iemand anders er ook nog wat aan.

Het zal het lek van deze specifieke diode zijn.
Is het zinvol je in een simulatie druk te maken om zaken die in de praktijk moeilijk te meten zullen zijn ?

Let overigens op, de gnd van de "Duino lijkt niet aangesloten te zijn.

[Bericht gewijzigd door Aart op maandag 13 november 2017 17:46:14 (19%)

Peter_dtn

Golden Member

Ik zou de diode eruithalen en in beide signaalleidingen een weerstand zetten van 2k, de bestaande 2k blijft zitten. Je hebt dan spanningsdelers, als je de schakelaar indrukt staat er 2V5, wanneer de Pi actief wordt is het 1V6. Makkelijk onderscheid en de stroom wordt beperkt door de twee extra 2k weerstanden.

Je moet wel de Pi in input mode zetten zodat er geen stroom door die 2k loopt als je geen puls geeft, actief hoog ingeval van de puls..

[Bericht gewijzigd door Peter_dtn op maandag 13 november 2017 18:04:03 (18%)

Lambiek

Special Member

Persoonlijk zou ik de RPI een signaal via een optocoupler laten sturen en beide signalen via een spanningsdeler, en ik zou twee diodes neerzetten.

Op deze manier dus.

Die 470E kan nog wel iets kleiner denk.

Als je haar maar goed zit, GROETEN LAMBIEK.

Hartelijk dank voor de snelle reacties!

Op 13 november 2017 17:45:26 schreef Aart:
Het zal het lek van deze specifieke diode zijn.
Is het zinvol je in een simulatie druk te maken om zaken die in de praktijk moeilijk te meten zullen zijn ?

Dat was ook zo'n beetje mijn vraag, ik ging er van uit dat er geen stroom zou mogen vloeien en maakte me dus gewoon zorgen omdat er wel een (minuscuul kleine) stroom getoond werd... Geen zorgen maken dus.

Op 13 november 2017 17:45:26 schreef Aart:
Let overigens op, de gnd van de "Duino lijkt niet aangesloten te zijn.

Bedoel je de analoge pin van de Arduino? Als je een voltmeter toevoegt in de simulator, dan maakt het niet uit of je deze met gnd verbindt of niet. Ik heb deze dan voor mezelf laten "zweven" zodat het opviel dat het eigenlijk om die pin ging en niet zozeer een connectie van de rest van het circuit. Maar bedankt voor de waarschuwing!

Op 13 november 2017 18:00:58 schreef Peter_dtn:
Ik zou de diode eruithalen en in beide signaalleidingen een weerstand zetten van 2k, de bestaande 2k blijft zitten. Je hebt dan spanningsdelers, als je de schakelaar indrukt staat er 2V5, wanneer de Pi actief wordt is het 1V6. Makkelijk onderscheid en de stroom wordt beperkt door de twee extra 2k weerstanden.
Je moet wel de Pi in input mode zetten zodat er geen stroom door die 2k loopt als je geen puls geeft, actief hoog ingeval van de puls..

Grappig, dat was eigenlijk mijn initiële schema :)
Tot iemand plots zei om de interne weerstand van de arduino te gebruiken, de andere weerstanden weg te laten, en het me toen opviel dat er stroom liep van de Arduino naar de Pi. Waarna ik een diode toevoegde, en zo bij m'n vraag terecht kwam.
Ik denk dat ik uiteindelijk deze situatie verkies - met deze oplossing kan ik tevens ook een onderscheid maken tussen de button en de button+pin. Voorlopig niet nodig, maar is misschien handiger voor in de toekomst.

Op 13 november 2017 18:50:32 schreef Lambiek:
Persoonlijk zou ik de RPI een signaal via een optocoupler laten sturen en beide signalen via een spanningsdeler, en ik zou twee diodes neerzetten.

Zo had ik het nog niet bekeken! Maar aangezien zowel de Arduino als de Pi hun voeding van dezelfde bron nemen, denk ik niet dat er voordeel is beide systemen te isoleren.
Bovendien heb ik nog nooit gewerkt met optocouplers, heb ik er geen in huis, en zag ik bij de voorraad van Conrad door de bomen het bos niet meer :)
Maar 'k heb tenminste wel weer wat bijgeleerd over optocouplers!

Nogmaals bedankt iedereen!

Marlon

Op 13 november 2017 23:29:45 schreef Marlon:
Hartelijk dank voor de snelle reacties!
[...]Dat was ook zo'n beetje mijn vraag, ik ging er van uit dat er geen stroom zou mogen vloeien en maakte me dus gewoon zorgen omdat er wel een (minuscuul kleine) stroom getoond werd... Geen zorgen maken dus.

Zo'n simulatie-ding gaat benaderen totdat de boel "voldoende nauwkeurig" is. Als er 2.54mA loopt door die weerstand is 100nA verwaarloosbaar. Dat weet ie. Dus wordt er niet verder gezocht naar een nauwkeurigere oplossing.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/