Goedendag,
Ik heb vorig jaar een Arduino Uno gekocht tezamen met de PCA9685 16-kanaals PWM shield, 12 LED strips en 2 ultrasoon sensoren. Het idee was om een trapverlichting te maken die, afhankelijk van de richting, de traptreden 1-voor-1 zou laten oplichten en daarna weer langzaam zichzelf liet uitdoven. Samen met iemand anders waren we begonnen en was de code geschreven. Als triggers voor de looplichtcode (boven/onderaan de trap) gebruikten we ultrasoonsensoren, waarvoor ook een code geschreven was. Het signaal werd hoog indien de afstand, die door de sensor continu gemeten werd, kleiner werd (voet komt voorbij gelopen) dan een instelwaarde (overkant van de vrije traptrede).
Voor de test haalt de Arduino+shield zijn spanning uit de USB stekker. De shield heeft voor het schakelen van groot-vermogen trekkende LEDs-strips zijn eigen voeding bovenop de print (zie foto), maar voor deze test (en deze kleine ledjes) haal ik de spanning direct van de +5V en de GND pin bovenop de shield (2x gele draad bovenop). Ik heb de werking van de LEDs en PWM-shield eerst getest door een Knight-rider sketch te laden. Dat was gelukt dus alles was goed verbonden
Uiteindelijk bleek het schakelen met ultrasoonsensoren niet zo lekker te verlopen. We denken dat valse echo’s de sensoren op willekeurige moment leek te storen zodat het looplicht vervolgens soms ook in de war raakte. Daarom leek het mij een mogelijk alternatief als ik PIR-sensoren gebruik in plaats van de ultrasoon. Het leek mij goed mogelijk dat deze sensoren minder vals-positieven geven en de gevoeligheid is op het PIR-printje ook nog eens aan te passen. De PIR print geeft gedurende een paar seconden een HOOG +5V signaal indien er bewegende warmte gevoeld wordt. Dat signaal wil ik nu graag gebruiken als nieuwe trigger voor het aansturen van de looplichtcode
Er is dus een looplicht code, gemaakt voor het herkennen van een trigger uit ultrasoonsensoren en daar in wil ik nu graag de code voor het herkennen van een hoog PIR-signaal hiervoor verwisselen. Ik heb 2 PIR sensoren die dus fysiek en softwarematig moeten worden verwisseld met de “ongewenste ultrasoon” sensoren/code.
Ik heb als test even een PIR sensor aangesloten op Pin2 en getest of deze ook goed werkt. Met een code van deze site
(https://learn.adafruit.com/pir-passive- ... -w-arduino)
kon ik dat bevestigen. De testschakelaar in de ene foto en de PIR sensor op de andere foto zijn een testopstelling om een code te maken om Pin2 HOOG te krijgen.
Nu moet ik dus in de nieuwe looplichtcode beschrijven dat er bvb een inputPin 2 is en dat als deze HOOG is, dat dan de looplicht subroutine gaan draaien als vanouds. Hetzelfde geldt dan natuurlijk ook voor de 2e PIR sensor aan de andere kant van de trap. Op zich hoeft er aan de grootste gedeelte van de code niks te veranderen. Op dit moment loopt die led-routine pas als de echoUpPin of echoDownPin hoog zijn. Pin 2 en 4 kan men volgens mij blijven gebruiken voor het meten van de toekomsttige boven- en ondersensor. Ik zou dus het onnodige ultrasoon-proximity-triggergedeelte uit mijn huidige code willen slopen en deze vervangen door de PIR subroutine/code (echoUpPin 5 en echoDownPin 3 moet worden omgebouwd tot PIR HOOG signalen) zodat het triggeren correct beschreven wordt. Ik heb zelf echter nog niet genoeg verstand van het programmeren om deze verwisseling toe te passen. Hieronder staat de code die had gewerkt met de ultrasoonsensoren.
Ik zou graag van iemand willen horen hoe ik deze code moet aanpassen zodat ik uiteindelijk de 2 PIR sensoren aan de praat krijg. Mocht iemand anders een soortgelijke PCA9685 schakeling al op de plank hebben liggen, dan bied ik mijn excuses aan en heb ik niet goed genoeg gezocht.
///////////////////////////////////////////////////////
///////////////////////////////////////////////////////
///////////// User settings, U may edit!! /////////////
///////////////////////////////////////////////////////
///////////////////////////////////////////////////////
de code komt in een 2e bericht (was te lang voor dit bericht)
De vraag staat overigens ook gesteld op
http://arduinoforum.nl/viewtopic.php?f=8&t=2876
om de kans op een bruikbaar antwoord te vergroten