Stap 6: Hoe werkt het Circuit?
Hier is het algemene idee: we moeten zitten kundig voor een 5V logic signaal in-/ uitschakelen op en af te verleiden de afstandsbediening tot denken zijn de knoppen wordt ingedrukt. De Raspberry Pi werkt op een 3.3V logica niveau, maar in het algemeen chips ontworpen voor 5V logica nog 3,3 v als "hoog herkent". Dus een ideale u zou enkel moeten kunnen draad van de Raspberry Pi's GPIO pinnen rechtstreeks naar de afstandsbediening, met geen tussenliggende circuit. Dat soort van wat je ziet in dit Instructable (hoewel de pinnen niet verbonden rechtstreeks naar de verwijderen, er is een weerstand tussen).
Dus, ik probeerde deze methode eerst, maar kon niet krijgen om te werken op alle (zelfs voor een scala aan verschillende weerstand waarden). Uiteindelijk, na wat knutselen rond met een multimeter, leek het alsof mijn afstandsbediening was tekening meer stroom dan de Raspberry Pi's GPIO pinnen leveren kon - die werd veroorzaakt door de uitgangsspanning dalen tot rond twee-punt-iets, te laag te worden erkend als een logische hoog. Wat googlen over GPIO pin huidige beperkingen leiden naar een stelletje forumdiscussies over hoe je echt zou een buffer met de GPIO pinnen, ze zijn niet bedoeld om te rijden veel van alles direct.
Dus, het buffer circuit met behulp van steunpunten en MOSFETs. Een estafette is een elektrisch gestuurde schakelaar met een elektromagneet binnen. Een "enkelpolige dubbele afstand" (SPDT) relay kunt schakelen tussen twee verschillende verbindingen, afhankelijk van of de elektromagneet is energiek. Dus in dit geval, kunnen we haak een estafette tot + 5V 0V en knevel heen en weer afhankelijk van welke spanning we willen sturen naar de afstandsbediening. We gebruiken de Raspberry Pi waarmee de elektromagneet om te schakelen de relais in- of uitschakelen - maar de elektromagneten die nog steeds nodig recenter is dan de Raspberry Pi's GPIO pinnen kunnen leveren. Dus, we gebruiken een MOSFET, waarmee u te rijden high-power ladingen met behulp van een low-power source (u kunt geen magisch trekken macht nergens - u moet verbinding maken met een grotere externe voeding, in dit geval de Raspberry Pi's 5V bron die rechtstreeks uit de USB, die kan leveren recenter is dan de GPIO pinnen zelf). U zou kunnen vertrouwd met MOSFETs als u ooit hebt geprobeerd om te controleren van een motor of grote LED-strip met een Arduino, die heeft ook de huidige beperkingen.
De bovenstaande drie diagrammen weergegeven wat er gebeurt afhankelijk van welke GPIO pinnen zijn ingesteld op hoog in Python (die we krijgen tot volgende). Wanneer beide pinnen laag zitten, verbinden beide relais met de knoppen op de afstandsbediening 0V (gemalen), dus gebeurt er niets. Als GPIO 17 is ingesteld op hoog, de eerste MOSFET ingeschakeld, waarmee het huidige stroom via de elektromagneet in de eerste estafette, flipping de schakelaar en sluiten op de 5V in plaats van 0V. Dit stuurt een 5V signaal van de ON-knop pin op de afstandsbediening, waardoor het ras dat de knop is ingedrukt. Hetzelfde concept is van toepassing op de GPIO 18 en de OFF-knop.