Trådlös jul Light Timer med Raspberry Pi och Python (6 / 11 steg)
Steg 6: Hur fungerar kretsen?
Här är den allmänna idén: vi behöver för att kunna växla en 5V logik signal på och av för att lura fjärrkontrollen att tro att knapparna trycks. Raspberry Pi fungerar på en 3.3V logik nivå, men generellt chips avsedd för 5V logik kommer fortfarande känna igen 3.3V som "hög". Så, helst bör du bara kunna tråd Raspberry Pi GPIO pins direkt till fjärrkontrollen, med inga mellanliggande kretsen. Det är typ vad du ser i detta Instructable (även om stiften inte är ansluten direkt till ta bort, det finns ett motstånd i mellan).
Så, jag försökte att metoden först, men kunde inte få det att fungera på alla (även för en rad olika motstånd värden). Slutligen, efter lite mixtrande med en multimeter, det såg ut som min fjärrkontroll var dra mer ström än Raspberry Pi GPIO stift kunde leverera - som orsakade den tillverkade spänningen sjunka till runt två-punkt-något, för låg för att erkännas som en logisk hög. Lite googlande om GPIO pin nuvarande begränsningar leder till en massa forumdiskussioner om hur du ska egentligen använda en buffert med GPIO stiften, de är inte avsedda att driva mycket av något direkt.
Således, buffert kretsen med hjälp av reläer och MOSFETs. Ett relä är en elektriskt styrd switch med en elektromagnet inuti. En "single pole double throw" (SPDT) relä kan växla mellan två olika anslutningar, beroende på huruvida elektromagneten är strömförande. Så i det här fallet kan vi koppla ett relä till + 5V och 0V och växla fram och tillbaka beroende på vilken spänning vi vill skicka till fjärrkontrollen. Vi använder Raspberry Pi för att styra elektromagnet för att aktivera reläet eller inaktivera - men elektromagneter fortfarande kräver mer ström än Raspberry Pi GPIO stift kan leverera. Så, vi använder en MOSFET, som tillåter dig att köra hög effekt massor hjälp en låg effekt (du kan inte magiskt dra ström från ingenstans - du måste ansluta till en större extern strömförsörjning, i detta fall Raspberry Pi 5V källa kommer direkt från USB, som kan leverera mer ström än GPIO stift sig). Du kanske är bekant med MOSFETs om du någonsin försökt att styra en motor eller stor LED strip med en Arduino, som också har nuvarande begränsningar.
De tre diagrammen ovan Visa vad som händer beroende på vilken GPIO pins är satt till hög i Python (som vi ska få till nästa). När båda stiften sitter på låg, ansluta båda kavlarna knapparna på fjärrkontrollen till 0V (marken), så händer ingenting. När GPIO 17 är inställd på hög, slås första MOSFET på, vilket gör att nuvarande flöda genom elektromagneten i första stafett, vända växeln och ansluta den till 5V istället för 0V. Detta skickar en 5V signal till knappen på stift på fjärrkontrollen, att göra den avlägsna tror knappen har tryckts. Samma koncept gäller GPIO 18 och på av-knappen.