Raspberry Pi – Python GPIO Interrupts . GPIO.add_event_detect

22 maart 2021

Voor het aansturen van processen met Arduino’s en Raspberry’s zijn deze werkpaarden uitgevoerd met IO poorten. Deze IO poorten zijn Input/Output poorten waarmee signalen van onder andere sensors en schakelaar uitgelezen kunnen worden. Vervolgens kan een geprogrammeerd algoritme bepalen welke wat er op basis van deze signalen moet plaatsvinden: calculeren van de gemeten waarden, weergave op displays en indicatorlichten, maar ook de aansturing van drivers voor stappenmotors, relais en het posten van parameters op een HTTP:// web service of API. 

Wanneer een IO poort gebruikt worden om een interactie te meten, dan kan het gewenst zijn om bij activering voorrang te krijgen op alle lopende processen. Dit is van toepassing wanneer bijvoorbeeld een rotatiesensor uitgelezen moet worden of wanneer een object op een lopende band een bepaalde positie passeert. Maar ook wanneer een maximale temperatuur bereikt wordt of wanneer er een knop uit een management console indrukt wordt. 

In de bovengenoemde gevallen is de interrupt IO een passende oplossing. Door een specifieke configuratiesetting krijgt een IO poort een soort ‘watch dog’ functie waarmee continue wordt gecontroleerd of er een interactie plaatsvindt. In de praktijk een handige oplossing, waarbij kennis van programmeren en het begrip van logische elektrische signalen bij elkaar komt. Raising edge, falling edge en specifieke trigger levels zijn hierbij essentieel. Zowel de Raspberry Pi als de Arduino, STM en ESP omgevingen bieden hierin een rijk scala aan mogelijkheden. Spec sheets omschrijvingen hiervan zijn vaak uitgebreid, taai van stof maar wel essentieel om een betrouwbare oplossing te realiseren.