Go Down

Topic: ldr en ir afstandbediening  (Read 247 times) previous topic - next topic

robmulder

hallo , ik heb een vraag die waarschijnlijk simpel zal zijn ,maar loop er zelf in vast
ik heb een code die ik wil combineren .

het volgende  wilde ik doen als het donker wordt zal een ldr het licht laten aan gaan (dit werkt nu) deze zet een aantal lampen aan .
ook heb ik middels een ir ontvanger (afstandbediening) een code gemaakt (van internet gehaald ) deze wil ik combineren , dat wil zeggen de afstandbediening zal de door de ldr aangezette lampen deel moeten kunnen uitzetten .
ik loop in dit laatste vast 

kan iemand mij op weg helpen .

als het goed is zit de code bij gesloten


gr Rob

MAS3

Hoi robmulder, welkom.

Ik begin met de dingen die me opvallen in je sketch, dat hoeven niet allemaal problemen te zijn maar verdienen wat mij betreft wel wat aandacht.
Want "ik loop vast" is "ambigious"; je vertelt wel wat, maar geen idee wat dat betekenen mag.
Dus leg eens uit wat dat vastlopen betekent.

Ik zie dingen zoals dit een paar maal voorbij komen:
Code: [Select]
int output1 = 38; // deur  paars 6

Daarmee maak je een variabele aan met een nogal abstracte naam (output1), en in het commentaar zet je vervolgens wat output1 is en met welke kleur draad (toch ?) die verbonden is.
Ik denk dat je je code gemakkelijker kunt lezen (en begrijpen) als je niet outputX gebruikt, maar gewoon zegt waar die output mee verbonden is.
Over die kleuren heb ik ook nog wel wat te miepen, maar dat zal ik voor nu even achterwege laten.

Verder zie ik dat je best wel wat delay() gebruikt.
Dat is niet erg efficiënt, en kan beter (à la blink without delay).
Daar is al een beetje een begin mee gemaakt, want je houdt de klok in de gaten (of wil dat doen).
Maar dat is niet of niet consequent doorgevoerd in je code.

Je hebt de stand van je lampen (aan of uit) in een array opgeslagen.
Je verandert de waarde na binnen komen van een commando, afhankelijk van de vorige waarde.
Dat kan ook efficienter, omdat de inhoud van maar 2 waardes kan hebben voor deze code.
Daarvoor reserveer je wel erg veel ruimte want je hebt ze een int gemaakt.
Een boolean is vordoende voor de huidige opzet.
En die kun je vervolgens aanpassen zonder dat je 'm eerst gaat uitlezen, waarmee elke case tot 2 regels bepekt kan worden.

Verder wordt de seriële verbinding ingeschakeld, en de ontvangen afstandbediening signalen worden daar overheen gestuurd (elke code heeft zijn eigen regel).
Heb je al via de seriële monitor meegekeken of de signalen die je verwacht, ook binnen komen ?


Dat is al veel commentaar op je code, zonder dat ik weet welk probleem je eigenlijk hebt.
Zie het als tips om de code te verbeteren, vooral ook voor jezelf.
Sommige zaken zullen ook zonder de gegeven tips werken.
En als je alles hebt verwerkt en aangepast hebt, dan zul je nog steeds dingen tegenkomen die beter kunnen.
Maar dat zien we dan wel weer.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

Koepel

Dus met een knop van de afstandsbediening de lampen weer uitzetten.
Voor hoelang, voor altijd ? Wanneer gaan de lampen dan weer aan ?
En wat als de lampen al uit zijn, kan de knop op de afstandsbediening ze dan ook "uitzetten" zodat de LDR ze niet meer aan kan zetten ?
Begrijp je het probleem ?

MAS3

Dat zijn dus van die zaken die je later zult tegen komen.
De IR afstandbediening kan ook nog heel interessante effecten hebben waar je dan rekening mee moet en kunt houden.
Maar das echt voor later.

Zoals de code nu is, kun je de betreffende lamp uit en aan zetten met de afstandbediening.
Dat is onafhankelijk van de LDR, want die stuurt de IR bediende lampen helemaal niet aan.
Dus inderdaad, als dat gecombineerd moet worden, dan moet er wel verteld worden welke voorwaarden daaraan verbonden zijn.
Rob zou dat eens op een stuk papier moeten zetten, want als je echt alles wat je wil op papier zet, kun je de code er ineens doorheen zien komen.
Old school misschien, maar beter dan alles uit het bolletje proberen te doen.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

robmulder

thanks ik ga eerst de boel maar eens bij werken.
maar het vreemde was dat als ik de ldr bij de ir code zet , dan wordt het geheel traag , en kan ik de a.b. niet bedien de aan uit knoppen werken niet .

ik wil de ldr als ware overrullen met de a.b om van tijd tot tijd de verlichting handmatig te kunnen schakelen .
het is namelijk de buiten verlichting die aangaat inclusief de verlichting onder mijn overkapping.
als ik daar zit hoef ik hier niet alle verlichting aan te zetten (voor de gezelligheid ) maar dat ze uit kunnen.
dit is mijn probleem , ben zelf aan het kijken hou dit te kunnen oplossen.
de kleuren die je ziet staan ,is voor mij een geheugen steun om bedrading goed te kunnen volgen.

ik hoop hier wat meer duidelijk te kunnen geven op waar ik op vast loop.

gr Rob

MAS3

Ik had al zo'n vermoeden dat de kleuren op draden duiden.
Maar gezien de genoemde kleuren, is daar al een standaard voor die dan slim is om aan te houden.
Ik heb het over de weerstand kleurcode tabel, waar kleuren aan adernummers (en bijvoorbeeld bij seriële verleng kabels vaak ook pin nummers) gekoppeld zijn.

Quote
...dan wordt het geheel traag , en kan ik de a.b. niet bedien de aan uit knoppen werken niet...
Verder zie ik dat je best wel wat delay() gebruikt.
Dat is niet erg efficiënt, en kan beter (à la blink without delay).
Daar is al een beetje een begin mee gemaakt, want je houdt de klok in de gaten (of wil dat doen).
Maar dat is niet of niet consequent doorgevoerd in je code.
Deze 2 knipsels hebben met elkaar te maken.
Lees mijn bijdrage (klik !) die bovenaan het Nederlandstalige forum staat maar eens door.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

robmulder

ik heb hem gelezen , het is een mooi stukje , nu denk waarom er soms een grote vertraging ontstaat als je codes gaat samen voegen .

ik ga hier mee eens aan de slag thanks
 

Go Up